■はじめに
Power BIを使い始めると、多くの方がDAX(メジャー)の活用で戸惑う場面があります。
- Excelと同じように計算式を書いたのに結果が違う
- 合計は合うのに割合が合わない
- フィルターをかけると数値が変わってしまう
といった声を耳にすることがあります。
これらは不具合ではなく、Power BIの計算の仕組みに起因するケースが多くあります。
本記事では、Power BIの分析機能を支えるDAXについて、
初心者がつまずきやすいポイントを整理しながら紹介します。
■DAXとは
DAX(Data Analysis Expressions)は、フィルター条件に応じて結果を計算・制御する計算式です。
例えば、以下のように記述します。
売上合計 = SUM(売上[金額])
見た目はExcelの関数に似ていますが、考え方には違いがあります。Excelがセル単位で計算を行うのに対し、Power BIでは、現在の表示条件(フィルター)に応じて集計結果が変化するという特徴があります。
■初心者がつまずくポイント①
Excelと同じ感覚で考えてしまう
Excelでは、各セルに対して値が固定されています。
一方、Power BIでは、レポート上で選択されている条件によって計算結果が変わります。例えば、
- 年度
- 担当者
- 顧客
- 商品
といった条件によって、同じ計算式でも結果が変化します。
そのため、「同じメジャーなのに値が変わる」といった現象が発生しますが、これは仕様によるものです。
DAXでは、計算式そのものだけでなく、どの条件が適用されているかを意識することが重要です。
■初心者がつまずくポイント②
フィルター条件によって結果が変わる仕組みを理解していない
DAXを難しく感じる要因の一つに、フィルター条件によって計算結果が変わる仕組みがあります。この仕組みを、DAXではフィルターコンテキストと呼びます。
- 特定顧客の売上
- 前年売上
- 累計売上
- 構成比
といった指標は、レポート上で選択されている条件によって計算結果が変わります。
実務で見られる、
- 前年比が合わない
- 累計の値が意図と異なる
- 割合が100%にならない
といったケースの多くは、このフィルターコンテキストの影響によるものです。
- どの年度で見ているか
- どの担当者で絞っているか
- どの商品を選択しているか
など、どの条件が適用されているかを整理することが、正しい計算結果を得るためのポイントとなります。
この考え方を理解しておくと、次に説明する計算列とメジャーの使い分けも理解しやすくなります。
■初心者がつまずくポイント③
計算列とメジャーの違いが分からない
Power BIには、
- 計算列(Calculated Column)
- メジャー(Measure)
の2種類の計算方法があります。
それぞれの違いは以下の通りです。
- 計算列:データ取り込み時に行単位で計算される
- メジャー:レポート表示時に集計単位で計算される
初心者の方は計算列で対応しようとするケースも多く見られますが、データ容量の増加や処理速度の低下につながる可能性があります。
用途に応じてメジャーと計算列を使い分けることが重要です。
■CALCULATE関数が理解のポイント
DAXの中でも頻繁に使用されるのが、CALCULATE関数です。
CALCULATEは、集計時の条件(フィルター)を変更するための関数であり、
- 前年比較
- 累計
- 特定条件での集計
など、さまざまな分析で利用されます。初めは扱いが難しいと感じることもありますが、CALCULATEの挙動を理解できるようになると、実現できる分析の幅が広がります。
■DAX上達のポイント
DAXでは、関数を個別に覚えることよりも、計算の前提を整理することが重要です。
具体的には、
- 何を集計したいのか
- どの条件で集計したいのか
を明確にしておくことで、式の理解がしやすくなります。計算結果が想定と異なる場合は、「どの条件が適用されているか」を確認すると、原因特定につながりやすくなります。
■まとめ
DAXは単なる計算式ではなく、
フィルター条件に応じて集計結果が変化する仕組みです。
Power BIのレポートでは、表示されている数値がフィルターや表示条件によって変わるため、計算式だけでなく「どの条件で集計されているのか」を意識する必要があります。
DAXの考え方を理解できるようになると、意図した分析結果を再現しやすくなります。
次回は、Power BIの中でもつまずきやすいポイントの一つである「リレーション」について紹介します。
技術とノウハウでデジタルシフトをサポート
中小企業の頼れるパートナー
執筆者: 村瀬 俊昭(株式会社クロスディーズ システム技術統括エンジニア)
前職では社内システムの運用、サーバーの監視、システム運用業務の構築、システム開発業務といった業務に幅広く携わる。2021年より株式会社佐々木総研にてロボットの設計・開発、社内SEとして従事している。釣りが趣味で、大のビール好き。
