大量テストデータの自動生成をエクセルで行う方法

英数字やコード値、日付などのテストデータを作成する時に、何を使ったりしますか?

私はエクセルで自動生成して、エクセルで管理も行っています。

管理も?という部分は後半にお伝えするとして、まずは、大量のテスト用データをエクセルで生成するテクニックについて共有します。

エクセルの数式でテストデータを作成する方法いろいろ

年齢のランダム生成

例えば、年齢などで、10歳から65歳までの数字のデータを作る場合です。

この場合、

=RANDBETWEEN(10, 65)

という数式を使えます。

決まったコード値のランダム生成

例えば、性別で「1:女、2:男、3:その他」というデータを作る場合です。

この場合、

=CHOOSE(RANDBETWEEN(1,7),"1","1","1","1","2","2","3")

という数式を使えます。

「”1″,”1″,”1″,”1″,”2″,”2″,”3″の7つの文字からランダムに選び出す」という意味になります。

あえて7個の文字を指定しているのは、数字にかたよりを与えるためです。

1が3個、2が2個、3が1個あるので、3:2:1の確率で出現します。

1の女性のコードを多く出現させたいなーというときに役立ちます。

年月日の生成

例えば、2018年1月1日~2020年6月30日までの日付をランダムに生成したい場合です。

この場合、

=RANDBETWEEN(DATE(2018,1,1),DATE(2020,6,30))

という数式を使えます。

DATE(2018,1,1) で2018/1/1の日付型の値が生成されますので、それを、書式の設定で、「YYY-MM-DD」の形に表示しています。

ここを変更すれば、「YYYY/MM/DD」や、そのほかの形式にもできます。

時間の生成

例えば、24時間のうちの時間をランダムに生成したい場合です。

この場合、

=TIME(RANDBETWEEN(0,23),RANDBETWEEN(0,59),RANDBETWEEN(0,59))

という数式を使えます。

日本標準時などの書式に合わせた日時

例えば、「YYY-MM-DD hh:mm:ss+09」とか「YYY/MM/DD hh:mm:ss」など、年月日のフォーマットが決まっているデータを作らないといけないこともあるでしょう。

この場合、

=CONCATENATE(TEXT(AA11, "yyy-mm-dd")," ",TEXT(AC11, "hh:mm:ss"),"+09")

という数式を使えます。

ここで、「AA11」は上記の年月日のセル、「AC11」は上記の時間のセルです。

それぞれのセルで年月日と時間をランダムに生成した後、「TEXT関数」で自分の好きなフォーマットに変更して、CONCATENATE関数で文字列としてくっつけます。