曜日と時間帯の比率を指定できる日時ジェネレータ(ExcelVBA)

ダミーデータなんだけど、そこそこリアリティがあって分析グラフのサンプルまで作れるもの! という、ものすごいニッチな目的で作ったんですが、もしかして誰かの役立つかもしれないからシェア。
開発のお供、ダミーデータ
データベース関連の開発しようとするとダミーデータで検証したいですよね? わたしがよくお世話になっている、人名や性別、生年月日など、人に関するダミーデータを生成してくれるサービスがこちらです!
いつもありがとうございます!
日時の比率を指定したダミーデータが欲しい
で、今回は販売実績について作りたかったんですが…、曜日とか時間の比率が指定できるようなジェネレータはないのかな…! と、探してみたところ、日時系はあんまりドンピシャなものが見当たらず。無ければ作ってしまえばいいじゃないとばかりに自作することにしました。作っておけば今後も使えそうだし。
目的としては、ダミーデータだけど分析してグラフとかにしてみると、木曜定休で土日が売上数多いんですねとか、営業時間外はデータなしでお昼と夕方が売上多いんですねとか、そういうのが読み取れるようなデータになっているのがいいな、と。
ダミーにそこまでのリアリティを追求するのもどうかという話もあるでしょうが、そういうのが欲しい時もあるので、作ってみて損はないかなと思いました。Excelですけど!
使い方

こんな感じになっておりまして、水色のセルが要指定部分です。「日付」と「時間」は別々に出します。どちらか一方ずつでも出せるし、両方揃ったデータが欲しい時は「日付」「時間」の順番で出します。
比率設定が目的で作りましたが、全部1にすると均等に出すこともできます。
ダウンロード
Excel2016で作りました。.xlsm形式です。
曜日比率を指定した日付データの出し方

赤丸部分を指定して、「日付」ボタンを押します。比率設定する場合は全部で100になるように、しない場合は全部1で合計7にしてください。

「結果」シートに出力されます。総件数に対する比率で、曜日ごとの件数を算出して出力します。上の設定だとは木曜定休のつもりでゼロにしたので、木曜は算出されていません。
「件数揺れ」は、算出した曜日ごとの件数(月曜は3件、火曜は5件、など)をブレさせます。同じ10%でも総件数が少ないとブレが大きくなりますし、総件数が多いと10%だとブレが少なく感じるかもしれません。お好みのデータになるように何度か出力し直して調整してください。
「件数揺れ」をゼロにすると曜日ごとの件数は一定になりますが、最終的に総件数に合うようにランダムで増減させるので、全部がまったく同じ数にはなりません。
なお、曜日でしか判定しないので、祝日とかまでは考慮しておりません。
比率を指定した時間データの出し方

赤丸部分を指定して、「時間」ボタンを押します。比率設定する場合は全部で100になるように、しない場合は全部1で合計24にしてください。
「結果」シートのA, B列に日付データが入っている場合は、同じ日付をひとつの範囲として時間を算出・日付があるぶんだけ出力し、「件数」よりも優先されます。

日付のデータが入っている状態で、時間を出力するとこんな形になります。上の設定だとお昼と夕方が多くなるように設定したので、こんな感じに。日付と時間を一つのセルにしたい場合は任意のセルに「=A1+C1」のように書いてください。
同じ日付が多いほど時間比率の精度が増すことだけご注意ください。(せっかく時間比率を設定しても、同じ日付が1件とか2件しかなければ、比率を実感できるほどのデータ数になりません。)
「クリア」ボタンを押してから「時間」ボタンを押すと、指定件数の時間データのみ出力できます。
以上です! 開発のお供に、必要であれば使ってみてくださいー。
ExcelVBAに興味をお持ちの方は、こちらの記事もどうぞ!
- これからExcelのマクロを始めたいという方に!簡単な練習問題作りました。
- 私がExcelVBAでよく使う便利なコード・スニペットまとめ
- プログラム初心者さんへ贈る、エラーが起きたら試してみて欲しいこと
- ExcelVBAのクラスモジュールって何?という人向けの使い方まとめ
書籍を執筆しています。

コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)
YouTubeでQ&Aコンテンツを企画しています
運営しているYouTubeチャンネルで、ご相談やご質問を募集しています。動画のコメントやお問い合わせページからお気軽にご相談をお寄せください。