EXCELの関数で問題解決

[EXCEL]エクセルでおみくじ作りRANDBETWEEN関数

コンピュータにおみくじをさせれば、人間が行う「くじ」より公平かもしれません。

たくさんのデータからサンプルデータを無作為に抽出したり、名簿等の中から代表者を選出する場合に「まあエクセルでやってることだから」と、目視や手作業でやってしまいがちですが、「公平なデータ抽出」に関してはコンピュータの歴史からも古くから存在するということは、需要が多いことを示しています。

エクセルで乱数を発生させるには、RAND関数が用意されていますが、結果が0以上1未満の小数なので整数化するための加工(10倍して整数化する伝統的手法)が必要なので、一般オフィスではあまり活用されていません。

エクセル2010以降のバージョンでRANDBETWEEN関数が登場し、指定した範囲で整数の乱数を発生させることができるようになりました。これなら加工も不要、エクセル向きなので活躍の機会も増えるはずです。

理解しやすいよう「RANDBETWEEN関数でできること」ではなく、「おみくじ作りにRANDBETWEEN関数を利用する」という解説をします。おみくじは公平でなくてはなりません、その意味ではコンピュータが出す乱数はまったく規則性が無く公平です。エクセルおみくじ作りを体験して業務改善のヒントとしてください。

エクセルは道具、シンプルに考えながら焦らず、階段を上がるように1つ1つ解決して行くようにしましょう。「目の前の実務を解決」することをくり返すうちに、解決手法の引き出しも整理されて行くはずです。

RAND関数とRANDBETWEEN関数

0以上1未満の乱数を発生させるRAND

RAND()

0以上1未満の乱数を発生させます。再計算の度に書き替えられます。

最小値~最大値が指定できるRANDBETWEEN

RANDBETWEEN(最小値,最大値)

指定した範囲で一様に分布する整数の乱数を返します。

RAND関数の動き

①RAND関数では0以上1未満の乱数を発生させるため、図のように1~10の整数の乱数に置き換えるためには INTと組み合わせて「=INT(RAND()*10+1)」としなければなりません。INTは小数点以下を消去して整数化する関数です。

RANDBETWEEN関数の動き

②指定した範囲で整数の乱数を発生させるRANDBETWEEN関数を使えば INTを組み合わせる手間が必要ありません、よりエクセル向きです。

セルB2へ「=RANDBETWEEN(1,10)」と入力すれば、1~10の間で乱数を発生します。

結果を 1~5 にしたい

おみくじは、大吉  吉  中吉  小吉  凶 の5段階です。

③1~5 の乱数を取得したいので、セルB2は「=RANDBETWEEN(1,5)」とします。

CHOOSE関数で文字に変換する

④セルB3へ「=CHOOSE(B2,”大吉”,”吉”,”中吉”,”小吉”,”凶”)」と入力します。セルB2に表示された 1~5 の値に応じた順位の「吉凶文字」が表示されます。

式をひとつにまとめる

CHOOSE関数の中へ、乱数発生の式を組み込みます。

⑦セルB2の式「=CHOOSE(RANDBETWEEN(1,5),”大吉”,”吉”,”中吉”,”小吉”,”凶”)」

更新のタイミング

「ブックを読み込んだ時」「どれかセルを編集した時」に乱数が更新され、おみくじが引き直されます。

[F9]ボタンでブックの全シートを再計算しますので、乱数も更新され、おみくじが引き直されます。

スポンサーリンク