英数字やコード値、日付などのテストデータを作成する時に、何を使ったりしますか?
私はエクセルで自動生成して、エクセルで管理も行っています。
管理も?という部分は後半にお伝えするとして、まずは、大量のテスト用データをエクセルで生成するテクニックについて共有します。
エクセルの数式でテストデータを作成する方法いろいろ
例えば、年齢などで、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関数で文字列としてくっつけます。