tana Blog

Excel 0から9までの数字をランダムに表示させる

やりたいこと

セルに0から9までの数字をランダムに表示させたい。
複数のセルに表示させる場合、数字は重複させない。
 

使用する関数

RAND関数 0から1の間で乱数(ランダムに出る数字)を発生させる。
RANK関数 数値をランク付けする。
IF関数 「10」を「0」に変換する。
 

練習:百マス計算をつくる

青の横軸10マス、緑の縦軸10マスに、それぞれ0~9までの数字がランダムに入る百マス計算を作る。
表はセルC3からM13までの11×11。
A・B列、1・2行目は関数が入るため空けておく。

 

乱数を発生させる

セルD1に「=RAND()」を入力。
すると、セルに0から1までの小さい数字がランダムに表示される。

セルD1が選択状態のとき、セルの右下■のところにマウスを合わせるとポインタが十字マークに変わるので、その状態でセルM1までドラッグする。(オートフィル)
D1からM1までに「=RAND()」が自動で入力され、それぞれのセルに数字がランダムに表示される。
同じように、セルA4にも「=RAND()」を入力し、セルA13まで縦にドラッグしてRAND関数を入力する。
 

乱数を整数に変える

RAND関数で発生させた乱数を、範囲内の数値を順位付けするRANK関数を利用して整数に変える。
まずは、セルD1の数値が、セルD1~M1までの範囲の中で何番目に大きい数値なのかをセルD2に表示させる。
使い方 「=RANK(順位を調べるセル番号,参照する範囲)」
セルD2に「=RANK(D1,$D$1:$M$1)」と入力。

参照する範囲は、セルD1からM1までをドラッグしたら、キーボードのF4を1回押して、列番号と行番号に「$」マークをつける。(絶対参照)
F4を2回、3回と押すと、「$」マークがつくのが列番号だけ、行番号だけとなるので注意。
範囲が絶対参照になっていないと、オートフィルで自動入力させたとき、範囲が1つづつ横にずれてしまう。
セルD2にRANK関数を入力したら、M2までオートフィルで連続コピーする。
同じようにセルB4に「=RANK(A4,$A$4:$A$13)」と入力し、B13までオートフィル。
横軸、縦軸に1~10までの数字がランダムに入力され、キーボードF9を押すと再計算される。

 

数字を変換する

「1~10」までで百マス計算を作りたい場合は、「=RANK()」をマスの中に直接入力すれば完成。
今回は「0~9」で作りたいので、「=IF()」を使用し、値が「10」の場合は「0」を表示させ、「10」以外の場合はそのまま表示させる。
マスの中、セルD3に「=IF(D2=10,0,D2)」を入力し、オートフィルでセルM3まで連続コピーする。
同じようにセルC4に「=IF(B4=10,0,B4)」を入力、オートフィルでセルC13までコピーする。
あとは数式が入っている部分を非表示にしたり、文字を白に変えたりして体裁を整えて完成。

コメントを残す

メールアドレスが公開されることはありません。