なんでもエクセル(Nandemo Excel)

何でもエクセルでやってしまう そこのあなた。ようこそ

数式/関数:ランダムに抽出する

いっぺんに全部書こうかと思ったけど、長くなるので何回かに分けて説明することにした。最終的にはランダムに何候補かを並べて出題する漢字の読みテストを作ろうと思う。

ひとまず Excel2021以上/Microsoft365では、ランダム抽出自体はとても簡単。基のデータが縦方向に並んでいるとしたら

=TAKE(SORTBY(範囲,RANDARRAY(ROWS(範囲))),表示数)

これだけでいい。

では本題。習う学年に合わせて漢字をランダム抽出するにはどうすればいいか。まずは学年別漢字配当表(1026字)が必要なのでそれは作る必要がある。

こんな感じ。あくまでサンプルなので、ひとまず読みはひとつだけ入れている。作ったテーブルはテーブル名を「学年別漢字配当表」に変更しておく。

続いて抽出用のシートを準備。学年と抽出個数を入力するセルを用意しておく。

それでは学年指定でランダム抽出してみよう。

=LET(
    学年,B1,
    個数,B2,
    漢字読み列,学年別漢字配当表[[漢字]:[読み]],
    学年列,学年別漢字配当表[学年],
    抽出,FILTER(漢字読み列,学年列=学年),
    TAKE(SORTBY(抽出,RANDARRAY(ROWS(抽出))),個数)
)

丁寧にやるとこんな感じ。TAKE関数が使えないバージョンでは最後の式を、

    INDEX(SORTBY(抽出,RANDARRAY(ROWS(抽出))),SEQUENCE(個数),{1,2})

みたいにする必要がある。Excel2021でもこの辺までならそれほど手間なくできるかな。