ピボットテーブルの練習に最適!Excel VBAでテストデータ作成【データダウンロード可】

Excel

今回は、VBAで5万行のテストデータを一気に作るマクロを紹介するね。テストデータはピボットテーブルの練習にも便利だよ。

「ピボットテーブルの練習したいけど、ちょうどいいデータが見つからない…」

そんな悩み、ありませんか?

この記事では、Excel VBAを使って、ピボットテーブルの練習・集計・フィルター・クロス集計のトレーニングに最適なテストデータを自動で作る方法をご紹介します。

すぐに使えるサンプルファイルもダウンロードOKなので、練習したいときにすぐ始められます。

ピボットテーブルをこれから覚えたい人にも、繰り返し操作を試したい人にもピッタリなのはもちろん、VBAのコードは簡単な解説付きなので、VBAの参考にもなりますよ!

「とりあえずデータ作って試してみたいな〜」って人、ぜひ気軽にどうぞ!

サンプルコード

このVBAマクロでは、2020年から2024年の期間でランダムな日付を生成し、架空の担当者、取引先、商品、数量などを組み合わせて5万件の売上データを作成しています。

初期設定で処理を高速化

大量のデータを処理する際は、画面の更新・再計算・イベント発生を一時的にオフにすることで処理が高速になります。

乱数の初期化とワークシートの準備

Randomize で毎回異なるランダムな数値を生成。これを設定しないと、毎回同じ乱数パターンになるため、データの偏りが発生する可能性があります。

ws.Cells.Clear で前回のデータをすっきりクリア。

データセットの定義

担当者・取引先・商品と単価を配列で用意。これによりランダム選択が高速に行えます。

見出しとデータ格納用配列の準備

A1~H1 に見出しを一括で設定。

作成したデータは一時的に dataArray に格納して後でまとめてシートに書き込みます。

メインのデータ生成ループ

Do...Loop While で土日を減らし、平日中心のデータに。

各列のデータを整えて dataArray(i, 列) に格納。

Int((最大+1)*Rnd) で配列インデックスをランダム化。

一括でシートに書き込み

この一行で、5万行 × 8列 のデータを一気に書き出します。ループで1行ずつ書くより圧倒的に高速。

処理を元に戻して完了

高速化の設定を戻し、通常モードに。

サンプルファイルダウンロード

このサンプルファイルは、VBAで生成した5万行の売上テストデータです。

日付・曜日・担当者名・取引先・商品・単価・数量・売上 の情報が含まれており、 データ分析やシステムテストなどに活用できます。

  • ファイル名: sales_test_data_50000rows.csv
  • データ件数: 50,000行
  • ファイル形式: CSV (Comma Separated Values)
  • エンコーディング: UTF-8
  • 区切り文字: カンマ ,
日付取引日付 (YYYY/MM/DD 形式)
曜日取引日付の曜日 (日曜日~土曜日)
担当者名取引を担当したスタッフの名前
取引先商品を購入した企業名
商品購入された商品の名前
単価商品の価格(円)
数量取引された商品の個数
売上単価 × 数量 で計算された売上金額(円)
データ使用の注意事項
  1. 本データは、架空の企業・スタッフ・商品の情報です。
  2. 本データは、個人用のテスト目的で使用してください。
  3. 本データは、ピボットテーブルやPower Queryの練習を目的として作成されたサンプルデータです。 情報の正確性や完全性について保証するものではありません。 本データを使用したことによるいかなる損害、誤動作、トラブルについて、作成者および提供者は 一切の責任を負いません
  4. 本データを活用する際は、ご自身の責任で適切に検証・管理してください。

まとめ

今回は、Excel VBAを使って5万件のダミーの売上データを一括生成する方法をご紹介しました。

平日中心にデータを作るちょっとした工夫や、処理を速くする設定も入っているので、実用性もバッチリです。

今回のコードは、

  • ピボットテーブルの練習データが欲しいとき
  • VBAのサンプルとして参考にしたいとき

にぴったりな内容になっています。

「ちょうどいいデータが手元にない…」なんてときは、ぜひこの記事のコードやサンプルファイルを活用してみてくださいね!

こういうの作っておくと、ピボットテーブルや集計の練習がサクッとできて助かりますねっ!