Azure認定資格 WEB問題集&徹底解説

DP-900:Microsoft Azure Data Fundamentals

正解 B問題
分野4:分析ワークロードの説明 タスクステートメント4.3:Microsoft Power BI でのデータの視覚化の説明
合格に向けて、もっと深く学習する
豊富な問題と詳細なAzureサービス解説を、1 時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
あるアパレル小売企業の分析担当者は、Power BI のレポート上で売上推移を「年 → 四半期 → 月 → 日」の順に段階的に掘り下げて確認できるビジュアルを用意したいと考えている。データモデルの日付テーブルには、年・四半期・月・日の各列が既に用意されている。
この要件を満たすために、Power BI のデータモデルで設定すべき機能として最も適切なものはどれか。
  • SUM 関数を使った売上合計を返すメジャー(Measure)を新規に定義する
  • 日付テーブルの列をレベルとしてまとめた階層(Hierarchy)を作成する
  • 売上テーブルと日付テーブルの間にリレーションシップ(Relationship)を新規作成する
  • DAX 式で四半期の値を算出する計算列(Calculated Column)を追加する
解説 頻出度★★★★★
この問題は、「年・四半期・月・日の列は既にある × 段階的に掘り下げたい」という要件で、列をレベルとして順序付ける階層(Hierarchy)を選べるかがポイント。データモデルを形づくる 4 つの要素(メジャー・階層・リレーションシップ・計算列)がそれぞれ何を定義するかの区別が問われています。

A. SUM 関数を使った売上合計を返すメジャー(Measure)を新規に定義する

メジャーは、売上合計のように分析・レポートの対象とする数値を定義するもので、ディメンション(製品・顧客・時間など)に沿って集計される値そのものです。
集計する売上の値を用意することはできても、「年 → 四半期 → 月 → 日」という掘り下げの順序は定義しません。どれだけメジャーを定義しても、ドリルダウンの経路は生まれないため不適です。

正解

B. 日付テーブルの列をレベルとしてまとめた階層(Hierarchy)を作成する

Power BI でデータモデルとして定義するものは、Microsoft Fabric と同じくセマンティック モデル(従来の OLAP でいうキューブに相当する分析モデル)と呼ばれ、メジャーとディメンションで構成されます。階層はこのモデルの中で、ディメンション テーブルの列をレベルとして順序付けてまとめたものです。Learn は「階層を使用すると、ディメンションのさまざまなレベルで集計値をドリルアップまたはドリルダウンできる」と説明しています。
日付テーブルの年・四半期・月・日の列から階層を作成してビジュアルに配置すれば、年別の合計から四半期・月・日へと段階的に掘り下げられ、各レベルの集計値はクエリ時に計算されます。列が既にそろっている本問で足りないのは、この順序付けの定義です。

C. 売上テーブルと日付テーブルの間にリレーションシップ(Relationship)を新規作成する

リレーションシップは、ファクト テーブル(売上)とディメンション テーブル(日付)をキー列で関連付ける設定で、日付の属性で売上を絞り込んだり集計したりするための土台になります。
しかしリレーションシップが定めるのはテーブルどうしのつながりであって、日付テーブルの中で年・四半期・月・日をどの順に掘り下げるかは定義しません。テーブルを関連付けただけでは、段階的な掘り下げの経路は生まれないため不適です。

D. DAX 式で四半期の値を算出する計算列(Calculated Column)を追加する

計算列は、DAX 式で行ごとの値を計算してテーブルに新しい列を追加する機能で、たとえば日付から四半期を算出したい場合に使います。
しかし本問の日付テーブルには年・四半期・月・日の各列が既に用意されているため、四半期の列を新たに作る必要はありません。列を増やしても掘り下げの順序は定義されず、ドリルダウンには結局階層が必要です。

これだけ覚える(記憶フック)
段階的な掘り下げ(ドリルダウン)=階層。メジャーは数値、計算列は列、リレーションシップはテーブルのつながり。
正解への思考ルート 問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。
要件 判断ポイント
「年 → 四半期 → 月 → 日」の順に段階的に掘り下げたい 掘り下げの順序(レベル)を定義し、ドリルアップ/ドリルダウンを可能にするモデル設定を探す
→選択肢(B)は候補
年・四半期・月・日の各列が既に用意されている 列を作る計算列は不要。足りないのは列ではなく、列の並び順の定義
→選択肢(D)を消す
必要なのは集計する数値ではなく、掘り下げの経路 メジャーは集計する値の定義で、掘り下げの順序を持たない
→選択肢(A)を消す
テーブル間のつながりではなく、日付テーブル内のレベル構造が問われている リレーションシップはテーブルを関連付けるだけで、レベルの順序は定義しない
→選択肢(C)を消す
残る設定 日付テーブルの列をレベルとしてまとめた階層
→選択肢(B)が正解
ひっかけポイント
  • リレーションシップは「売上を日付で分析する」ための土台なので必要そうに見えるが、テーブルのつながりを作る設定と掘り下げの順序を作る設定は別物
  • 「四半期」という語から、DAX で四半期を算出する計算列を連想させる選択肢。問題文の「各列が既に用意されている」という前提を読み落とさない
  • メジャー・計算列・リレーションシップ・階層はいずれも Power BI のモデル ビューで扱う用語。「数値」「列」「つながり」「レベルの順序」のどれを定義するかで区別する
出題バリエーション 同じ知識が本番では条件を変えて出題されます。
問題文がこう変わったら 正解はこう変わる
「日付テーブルに四半期の列が無く、日付から四半期を求めて掘り下げに含めたい」 まず計算列で四半期を算出し、そのうえで階層を作成する。
「売上テーブルと日付テーブルが関連付けられておらず、日付の属性で売上を集計できない」 リレーションシップの作成が正解に変わる。
「前年比の伸び率など、集計結果から算出する指標をレポートに表示したい」 メジャーの定義が正解に変わる。
「商品をカテゴリー → 商品の順に掘り下げたい」 製品ディメンションの列で階層を作成する(階層は時間以外のディメンションにも作れる)。
「OneLake 上の Delta テーブルを、モデルにデータをコピーせずにメモリ内で高速にクエリしたい」 Direct Lake ストレージ モードが正解軸に。
関連サービスの解説 Microsoft Power BI
リファレンス この問題を解くために必要な知識を扱う公式ドキュメントです。
知識項目 公式ドキュメント
セマンティック モデル、メジャーとディメンション、属性階層によるドリルアップ/ドリルダウン、Power BI のモデル ビュー データ モデリングの主要概念について説明する - Training | Microsoft Learn
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 0%
No.13 解説
あるアパレル小売企業の分析担当者は、Power BI のレポート上で売上推移を「年 → 四半期 → 月 → 日」の順に段階的に掘り下げて確認できるビジュアルを用意したいと考えている。データモデルの日付テーブルには、年・四半期・月・日の各列が既に用意されている。
この要件を満たすために、Power BI のデータモデルで設定すべき機能として最も適切なものはどれか。
  • SUM 関数を使った売上合計を返すメジャー(Measure)を新規に定義する
  • 日付テーブルの列をレベルとしてまとめた階層(Hierarchy)を作成する
  • 売上テーブルと日付テーブルの間にリレーションシップ(Relationship)を新規作成する
  • DAX 式で四半期の値を算出する計算列(Calculated Column)を追加する

(会員限定)当問題の評価をお願いします。改善に活用します。