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

Simple Factoryパターンについて

今回はデザインパターンの一種であるSimple Factoryパターンに関して。 Contents1 Simple Factoryパターンとは2 サンプルコード3 解説 Simple Factoryパ …

no image

DIが役に立つ場面はやはりテスト

システム開発において、密結合とか疎結合なんて言葉が使われたりします。 密結合・・システム間の構成要素の関連性が高く、結びつきが密なこと 疎結合・・システム間の構成要素の関連性が弱く、結びつきが疎なこと …

no image

Encypter、Decrypeterについて

独自の鍵を使ってencrypt,decrptメソッドを実装したので、メモを。 Contents1 参考ソース2 encrypt,decrptの内部について3 base64エンコーディングについて 参考 …

no image

ユーザーに見せるエラーメッセージに関する考察

プログラムで難しいことの3つは テスト ログ エラーハンドリング とかいてきましたが、ユーザー側に見せるエラーメッセージについて考察して見ました。 Contents1 ログとエラーメッセージの違い2 …

no image

データ構造の基礎知識 中編 ハッシュ

前回の続きです。 前回は配列、連結リストについて学習したので今回はハッシュについて学習します。 Contents1 ハッシュとは?1.1 メリット1.2 デメリット ハッシュとは? key-value …

アーカイブ