PL-300 練習ドリル(非公式) / 領域2 データのモデル化 / 択一
ロールプレイングの日付と非アクティブな関係
ケース スタディ: 売上と日付のモデル(状況と資料を見る)
あなたは、店舗の売上のレポートを作っている。モデルには、売上テーブルと、日付テーブルがある。
売上テーブルには、注文日と出荷日の2つの日付の列がある。日付テーブルは、DAX の CALENDAR 関数で作った(列名は Date)。
「資料」タブに、データと、モデルの状態がある。この状態のまま、次の3問に答える。
売上テーブル(rp_sales)
| 注文日 | 出荷日 | 店舗 | 売上 |
|---|---|---|---|
| 2026/10/20 | 2026/11/02 | 渋谷 | 1200 |
| 2026/10/28 | 2026/11/05 | 新宿 | 800 |
| 2026/11/03 | 2026/11/10 | 梅田 | 1500 |
| 2026/11/15 | 2026/11/25 | 難波 | 900 |
| 2026/11/20 | 2026/12/02 | 博多 | 1800 |
モデルの状態
- 日付テーブルの Date と、売上テーブルの注文日、出荷日を、どちらもリレーションシップでつないだ。
- 1本は実線、もう1本は点線で表示されている。
- 「売上合計」は SUM(rp_sales[売上]) のメジャー。月ごとの表に、日付テーブルの月と売上合計を並べた。
前年比のデータ(sales3)
売上は、2025年1月〜2026年3月の51行。
日付テーブルは 2025年1月〜2026年12月。
前年売上 = CALCULATE([売上合計], SAMEPERIODLASTYEAR(日付テーブル[Date]))
前年比 = DIVIDE([売上合計], [前年売上])売上テーブルの「注文日」と「出荷日」を、どちらも日付テーブルの Date につないだ。
1本は実線、もう1本は点線になった。
月ごとの表に、売上合計を出すと、注文日の月で集計された。
出荷日の月ごとの売上を出すには、どうするか。
- A. (正解)
CALCULATE([売上合計], USERELATIONSHIP(rp_sales[出荷日], 日付テーブル[Date]))のメジャーを作る
正しい。実機で、出荷日の月ごとに、11月 4,400、12月 1,800 になった(どちらの合計も 6,200 で一致)。 - B. (不正解) 2本のリレーションシップを、どちらもアクティブにする
誤り。2つのテーブルの間で、ふだん使うリレーションシップ(アクティブ)は、1本だけ。実機でも、2本目を作る画面で、「このリレーションシップをアクティブにする」は、最初からオフだった。 - C. (不正解) 今の「売上合計」のメジャーを、そのまま使う(出荷日で集計されるように変わる)
誤り。実機で、実線の側(注文日)で集計され、10月 2,000、11月 4,200 になった。
解き方
アクティブなリレーションシップは、1本だけです。点線の側で集計したいときは、メジャーの中で、CALCULATE と USERELATIONSHIP を使って、その計算の間だけ、点線を使います。
根拠(確かめたこと)
- 実機(記事 powerbi-role-playing-dimension-inactive-relationship)。
- 公式: USERELATIONSHIP 関数、アクティブ・非アクティブのリレーションシップのガイダンス。
公式ドキュメント
Microsoft 公式の教材ではなく、非公式の練習問題です。確認日: 2026-11-04。一覧に戻る / ドリルを始める