2022年9月20日(火)と22日(木)夕刻、「Excelを使って「くじ引き」を作りましょう」企画を行いました。計13名の中学生の皆さんが参加してくださいました。
Excel、Numbers、spreadsheetの機能に「乱数」を作るという機能があります。今回は、Excelを使って「乱数」に順番をつけて、画面上でくじ引きを作ってみました。私はこれでクラスの席替えをしています。今回の内容はすでに何らかのアプリでできるという生徒さんが、全校に何人もいらっしゃいます。
今回のゴールはこの画面です。人名等の文字は「文字列」と呼び、B列、C列のように計算させる式は「数式」とか「関数」入力と言います。
A列 - 人名(文字列であれば何でもよい)
B列 - 乱数を発生させる列(コンピュータのくじ引きの本質)
C列 - 乱数の順番を自然数(1、2、3、4、5)と表示する
Excelでは枠に区切られた場所を「セル」と言います。英語では細胞という意味です。この一つ一つのセルに文字列、数式、数値を入れていきます。
続いて、B列には「=RAND()」と入力します。実際は途中までアルファベットを入力すると、下図のようなフキダシが出てきて、候補の関数を示してくれるのでその中から「RAND」を選択すると操作が早くなります。ちなみに、小文字で入力しても勝手に大文字に直してくれます。
どの行も全く同じ入力を行います。(数式のコピー・ペーストもできますが、今回は全て直接入力としました。)
C列の工夫
が少し難しいです。一旦、入力してみましょう。
C2セルに「=rank」と入力する途中、フキダシに「=RANK」と候補の数式が表示されますのでそれを選択します。C2セルには「=RANK(数値,参照,順序」と表示されます。(ほんとうは空白なし、すべて小文字ですが、見やすさの都合上、空白とダブルコロンを大文字表記しています)方法①「数値」をタップしてB2をタップする、あるいは方法②キーボードで「=RANK(B2, B2:B6, 0)」と入力します。同様に、方法①「参照」をタップしてB2:B6を選択する、方法②で順に入力していきます。それぞれの用語の意味は以下のとおりです。
- 最初のB2は、この数値(下の写真では「0.432457」)と全5つの数値と比べて
- 何番目に大きいかを調べるという指定です。
- 次の「B2:B6」は全5つの数値が書かれているセルの場所を示しています。
- 3つ目の「順序」には「0」を入力してください。これは、降順(B2が上から何番目)で表示するという意味です。昇順(下から何番目)のときは「1」を入力します。
このままC2の数式をれをC3からC6までコピー・ペーストすると、面倒なことが起きてしまいます。
青の表示は、B2 → B3 → B4 → B5 → B6と1つずつ下にずれていってオッケーですが、赤の表示B2:B6はずれると数値の表から外れていってしまい、困ってしまいます。そこで、赤の表示「B2:B6」を「$B$2:$B$6」へ変更します。パソコンでの操作は、単純に「$」を挿入していけばよいのですが、タブレットでは、「B2:B6」をタップして、フキダシを出して「参照の種類」→「$B$2:$B$6」を選んでください。
C列のこの数式の状態で、C3からC6までをコピー・ペーストしてください。
これで5人のくじ引きが完成しました。出来上がりを送ってくれたお2人の作品写真をご紹介します。
B列の小数の大きい順に、きれいに順位がついています。これが「くじ引き」の結果に相当するわけです。メニューの中を探すと「再計算」アイコン(電卓のイメージ)があり、それを押すたびに、出てくる乱数が変化します。くじ引きをやり直している操作にあたります。
実際には、この後、座席が割り当てられて、手書きやExcelへの直接入力でクラスの座席表が完成します。実はこの作業もExcelの数式を使って自動で割り当てることが可能です。
次の学びプロジェクトでは、座席表に名前を割り当てる「Vlookup関数」という数式を使った方法をご紹介します。
(数学科 園田毅)