最近、MS-Office に触れる機会がめっきり増えました。
新規開発のテストでデータを作成する際、Excel に便利な関数が用意されていることを知ったのでご紹介します。
- rand()
- randbetween()
RAND 関数
RAND 関数はその名の通り、乱数を生成する関数です。
ここでの乱数とは「不規則な並び順の数字」を指します。
base on RAND 関数 - Office サポート
RAND では、0 以上で 1 より小さい実数の乱数を返します。 ワークシートが計算されるたびに、新しい実数の乱数が返されます。
## 書式
RAND()
RAND 関数の書式には引数はありません。
この RAND 関数は 1 未満の小数を生成します。
(説明に 0 以上とあるので、ちょうど 0 もあるようです ・・・ 見たことはありませんが)。
使用例
セル入力
=RAND()
※ RAND 関数には引数を指定できないので、上記の書き方しか出来ません。
結果
手元の環境で「=RAND()」を実行した結果、以下のようになりました。
- 0.343775238
加えて、再計算を3度実行すると以下のようになりました。
- 0.23115533
- 0.664837087
- 0.862942973
RANDBETWEEN 関数
RANDBETWEEN 関数は、さしづめ RAND 関数に開始値-終了値を指定できるようにしたものになります。
base on RANDBETWEEN 関数 - Office サポート
指定された範囲内の整数の乱数を返します。 ワークシートが再計算されるたびに、新しい整数の乱数が返されます。
書式
RANDBETWEEN(最小値, 最大値)
使用例
セル入力例
以下のようにすると、1 〜 9 の値を得ることが出来ます。
=RANDBETWEEN(1, 9)
※RANDBETWEEN 関数も RAND 関数同様に、再計算やブックを開くタイミングで再生成されます。
テストデータを作成する際は、以下のようにすると便利です。
=(1-(RANDBETWEEN(1, 9)/100))*A1
RANDBETWEEN で 1 〜 9 の値を生成した後に 100 で割って最後に 1 から引くと、ばらつきの小さな係数が出来上がります。
A1 に元となる値を入力しておけば、幅の小さなデータ群を得ることが出来ます。
後は、オートフィルで連続データを生成すれば、大抵のデータは作成できるのではないでしょうか。
RAND 関数は使いどころによっては便利だと思いますが、振れ幅が大きいので今回のテストデータ作成では使いませんでした。
結果
以下、上記式((1-(RANDBETWEEN(1, 9)/100))*A1)で生成した結果です。
- 960
- 940
- 920
- 910
- 930