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

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

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

no image

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

5月ぐらいから着手していたプロジェクト(顧客管理ソフト)が終焉を迎え、検証段階に入ったので、記して置きたいことなど。 数ヶ月程度ですが、自分が携わったプロジェクトの中では過去最大クラスのものでした。 …

no image

webの仕組み その1 Webの基本的なイメージ

Webの仕組みについて基礎からちょっと勉強しようかと。自分用なのでまとまってません(爆) Contents1 Webの基本的なイメージ2 HTTPメソッド Webの基本的なイメージ ネットワーク上のリ …

no image

データ構造の基礎知識 前編 メモリとポインタ、配列と連結リスト

WEB+DB(vol91)で使えそうな連載記事がありますのでブログにメモリます。 テーマはデータ構造です。 Contents1 データ構造とは?2 計算量3 プログラムとメモリ4 配列について4.1 …

no image

APIに関して

RESTAPIのルーティングで気をつけることなんぞを。 直近のプロジェクトではRESTAPIを作ることが多かったんですが気をつけることなんぞを。 Contents1 仕様書はソースから2 ツール3 命 …