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

メモリに関して 静的領域、スタック、ヒープなど

実務でメモリの調査をしましたが、肝心のメモリについてほとんどわかっていないのでメモ。 メモリの領域を大きく分けると静的、スタック、ヒープに別れる。 Contents1 静的2 スタック3 ヒープ4 そ …

no image

オブジェクト指向設計 単一責任のクラスの設計

オブジェクト指向をするうえでの大事なポイントなど Contents1 単一責任のクラス設計1.1 メモ1.2 実際のコーディング上のコツ1.3 感想1.4 参考文献 単一責任のクラス設計 メモ 単一責 …

no image

Webの高速化に関して

Webの高速化に関してメモ。 高速化って言っても幅広いんですけどね。自分が行なっている対策に関して。 一応LAMP環境を前提にしてます。 Contents1 一番大事なのは測定2 DB対策3 フロント …

no image

PCクラッシュ時に備えて

先日、ずっとメインで使っていた会社のノートPCがクラッシュし、再起不能になりました。ファイルなんかはクラウドで管理していたものが多かったので実害はあまりなかったんですが、当然ゼロではありませんでした。 …

no image

コードの抽象化

リーダブルコードも終盤に少しずつ近づいてきました。 今まではどちらかというとコードの点や線の技術に注目してきましたが、これからは面的な要素に注目していきます。 リーダブルコードでは「無関係の下位問題を …