skillup

技術ブログ

プログラミング全般

Excelでのテストデータ作り

投稿日:

ExcelVBAでテストデータを作るときに役に立った関数などを紹介させていただきます。

user_id time
2143 2017/1/16 3:35
6724 2017/1/2 6:05
4528 2017/1/21 9:42
2143 2017/1/19 0:56
6724 2017/1/4 18:34

やりたいことは単純で下記2点です。

user_idをあるマスタから取得し、ランダムでデータを作りたい。

timeにある地点からスタートした一定範囲内の時間をランダムに発生させたい(例えば2017/1/1 から 30日間の時間を任意に作り出す)

user_idは下記マスタより参照します。

user_id
2143
4528
6724

この場合のExcelの関数ですが、user_idには下記関数が入ります。

一定範囲内の乱数の発生のさせ方

INDEX(マスタの範囲,RANDBETWEEN(1,2))

マスタの範囲にはA1:C1などセルの範囲になります。RANDBETWEENは最小値と、最大値を定義してその間で乱数を発生させます上記の例だと1か2になります。

INDEXは対象配列の番号をもとにデータを作成します。例えばINDEX(マスタの範囲,2)であればuser_idマスタの2番目である4528がヒットするという仕組みです。

任意時間の作り方

任意の時間の発生時間ですが、下記の式で作り出すことができます。

RANDBETWEEN(開始日, 終了日)+TIME(RANDBETWEEN(1,24),RANDBETWEEN(1,60),0)

RANDBETWEENは通常の数字だけでなく、時間でも作れます。このままでもTIMEをつけなくてもいいのですが、そうすると時分秒がすべて00:00:00になってしまいます。TIMEは時分秒をいれることで、時間に変換できる関数です。TIME(15,10,0)= PM3:10などと表記してくれます。

この性質を利用し、上記関数を作ると任意の時間を作り出すことができます。

-プログラミング全般
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

テストのダミーデータ作成

データベースに大量のデータを作りたいときにいつもあああやhoge,aaaですとデータという感じがしないですし、抽出や集計ができません。 なるべく自然に近いデータが欲しいのですが、簡単に作れる方法があり …

no image

Eclipseでのソースフォーマットでの自動改行を防ぐ

小ネタ。Eclipseのソースフォーマッタはディフォルトでは一定の字数で改行されしまい、大変見にくくなったりします。 またHTMLなどでは改行してほしいタグが改行されないなど思ったとおりに動いてくれま …

no image

プログラミングを習得するときに必要な2つの大事なこと

元々私は塾で仕事をしていましたが、いろいろ紆余曲折ありましていまではWEBエンジニアとして仕事をしております。 エンジニアとしてのキャリアは3年ぐらいなので正直あまりないのですが、開発者と平行してプロ …

no image

ファジープロジェクト対策 その2

前回に引き続き、大事だと思ったこと。一部単なるフレームワークの作り方的な内容になっているかも。 Contents1 テンプレート共通化2 バリデーション3 ログ出し4 異常系の処理5 新規プラグイン+ …

no image

シェルスクリプト ファイル読み込み・switchなど

以前のエントリーに引き続き、シェルスクリプトでログを解析する処理があってそこで覚えたことなどをまとめておきます。 Contents1 ファイル読み込み2 switch文2.1 基本パターン2.2 条件 …