ランダムな値を作る関数。当選者を決めたいときなどに使える。基本的な使い方に加えて、仕事に役立つ実例も紹介する。

乱数を作るRAND(ランド)

 RAND関数を使えば、乱数が作れる。とはいえ、「それは何に使うの?」と思われる方も多いはず。典型例としては、会員一覧に乱数を割り振り、乱数の大きい2人を当選者にする、といった使い方になる。

書式

書式 RAND()
※引数はない

基本的な使い方

 では、早速、会員に乱数を割り当ててみよう。RAND関数を使うと、0以上1未満のランダムな数値を作成できる。引数もないので、記述は「RAND()」だけといたって簡単だ。この乱数を使って当選者を決めるには、「IF」関数や「RANK.EQ」関数を使う必要がある。それらについては、「仕事での使い方」で解説する。

「RAND()」と記述し、下方向にコピーすれば乱数の割り当ては終了だ
「RAND()」と記述し、下方向にコピーすれば乱数の割り当ては終了だ

【仕事での使い方】プレゼント当選者をランダムに選ぶ

プレゼント応募者の中から、当選者を決めたい。公平な抽選をしたいときは、ランダムな値を作成するRAND関数を使う
プレゼント応募者の中から、当選者を決めたい。公平な抽選をしたいときは、ランダムな値を作成するRAND関数を使う

 公平な抽選で当選者を決めたい──。こんなときはRAND関数で0以上1未満のランダムな数値(乱数)を作成し、その数字を基に抽選すればよい。

 まずは当選者を決めるルールを「乱数の大きい順に2人」とする。続いて、「乱数」の列を追加して、「基本的な使い方」と同様の手順で乱数を割り振る。ここまでは簡単だろう。

 余談にはなるが、実はRAND 関数は、他のセルに数式が入力されるたびに値が更新される。シートにすべての式を入力し終えるまで、乱数が繰り返し更新されるため、当選者は最後まで分からない。

 当選かどうかを判断する「結果」の列の記述を確認する。「伊藤孝弘」が当選しているかどうかを判定するC3セルの記述内容は、IF関数とRANK.EQ関数を組み合わせたものになる。

 具体的には、RANK.EQ関数で「乱数」列の降順(大きい順)の順位を求め、IF関数で順位が「2以下」の場合に、「当選」と表示するように記載する。C3セルの実際の記載内容は下図を確認してほしい。

今回は、乱数の値が大きい上位2人を当選とするため、IF関数で「順位が2以下」のとき(1位と2位)に「当選」と表示する記述をする。順位はRANK.EQ関数で求める
今回は、乱数の値が大きい上位2人を当選とするため、IF関数で「順位が2以下」のとき(1位と2位)に「当選」と表示する記述をする。順位はRANK.EQ関数で求める

 厄介なのは前述した通り、RAND関数の結果は、セルを編集するたびに変わってしまうこと。厳正な1回の結果を残すために、当選者が決まったら表全体を値のコピーで残しておくことをお勧めする。

結果を残すため、表全体(A2~C8セル)をコピーし、別の場所を選択して「ホーム」タブ→「貼り付け」の下の「▼」→「値」を選び、値として貼り付ける
結果を残すため、表全体(A2~C8セル)をコピーし、別の場所を選択して「ホーム」タブ→「貼り付け」の下の「▼」→「値」を選び、値として貼り付ける