Power BIでモデリングを行っていると、「ファクトテーブルからディメンションテーブルを作りたい!」という場面、ありますよね。
そんなとき、Power Queryで「複製」するべきか「参照」するべきか、迷ったことはありませんか?
私自身、どちらを選ぶべきか判断に悩んだので、整理してみました。
🧪 今回の検証の前提
- 元になるのはファクトテーブル(たとえば、売上データ)
- そこから、ディメンションテーブル(たとえば、商品一覧)を作成したい
- Power Query上で「複製」または「参照」を使ってテーブルを作成する
💡 「複製」と「参照」の違い
操作 | 内容 |
---|---|
複製 | 元テーブルのステップをそのままコピーする。以降は別の独立したテーブルとして動く。 |
参照 | 元テーブルの現在の状態を参照する形で新しいステップが追加される。元テーブルとつながった関係になる。 |
🔍 実際に検証してみた
元のファクトテーブルにあたるコピー元テーブル「特定のカテゴリでフィルターをかける」というステップをあとから追加してみました。
そのとき、ディメンションテーブルにあたる複製/参照で作ったテーブルがどうなるかを見てみると、以下の結果に。
方法 | 結果 |
---|---|
複製 | フィルター処理は反映されない。複製元とは別物として動く。 |
参照 | フィルター処理は反映される。参照元とつながっているため。 |
元テーブルフィルター前の複製・参照テーブル
元テーブルフィルター操作
元テーブルフィルター後の複製・参照テーブル
✅ まとめ
項目 | 複製 | 参照 |
---|---|---|
元テーブルの影響を受けるか | 受けない | 受ける |
安定性 | 高い | 低い(依存関係がある) |
おすすめ | ✅ | △ 要件次第 |
Power BIのモデル設計では、依存関係を意識することが非常に重要です。
参照でテーブルを作ると、元のステップが変わるたびに影響を受けるので、管理が煩雑になる可能性もあります。
特にディメンションテーブルのように「安定した構造」が求められる場合は、複製のほうが無難です。
✏️ おわりに
ファクトテーブルからディメンションテーブルを作る方法はさまざまですが、「複製」と「参照」の挙動を理解して使い分けることが大切です。
同じように悩んでいた方の参考になれば嬉しいです!
よければLGTM&フォローよろしくお願いします🙌