Power BI を使いこなすうえで欠かせないのが DAX (Data Analysis Expressions) 関数です。DAX は Excel の関数と似た考え方を持ちながらも、Power BI 独自の高度な分析や集計を可能にする仕組みを備えています。この記事では「Power BI DAX 関数一覧」をテーマに、代表的な関数カテゴリーとその活用ポイントをわかりやすく解説します。
そもそも DAX 関数とは?
DAX 関数は、Power BI や Analysis Services、Excel の Power Pivot など、表形式モデルで使われる数式言語です。集計やフィルター、時間のシフト、条件付き集計など、従来の単純な関数だけでは表現しきれない複雑な分析ロジックを実現します。
- CALCULATE 関数でフィルターコンテキストを変更
- ALL や FILTERでデータに対して複雑な条件を設定
- DATEADD や SAMEPERIODLASTYEARで時系列分析を簡単に実装
など、多彩な関数が用意されています。
DAX 関数一覧:主要カテゴリー
1. 集計 (Aggregation) 関数
主な関数 | 役割 |
---|---|
SUM | 指定列の数値を合計 |
COUNT / COUNTROWS | 行数のカウント (COUNTROWS はテーブルの行数を数える) |
AVERAGE | 指定列の平均値 |
MIN / MAX | 指定列の最小値 / 最大値 |
ポイント:
基本的な集計関数ですが、他の DAX 関数(CALCULATE など)と組み合わせることで、特定の条件下のみの集計が容易になります。たとえば CALCULATE(SUM(Sales[Amount]), Sales[Region] = "東京")
のように使うと、東京だけの売上合計を簡単に取得可能。
2. 論理 (Logical) 関数
主な関数 | 役割 |
---|---|
IF | 条件に応じて異なる値を返す |
AND / OR | AND(かつ)、OR(または)の条件組み合わせに使用 |
SWITCH | 複数条件に応じて異なる値を返す (IF の多段ネストを回避) |
ポイント:
レポート上で条件付きの値を計算したり、複雑な条件分岐が必要な場合に使われます。IF の多段ネストは可読性が下がりがちなので、複数分岐が多い場合は SWITCH の活用がおすすめです。
3. フィルター (Filter) 関数
主な関数 | 役割 |
---|---|
FILTER | テーブルに対して行レベルの条件を適用し、フィルター後のテーブルを返す |
ALL | 指定されたテーブルや列のフィルターを無視または解除 |
ALLEXCEPT | 指定された列以外のフィルターを無視 (除外リストを作る) |
ALLSELECTED | レポートユーザーが選択したフィルターだけは適用し、それ以外は無効化 |
ポイント:CALCULATE()
と組み合わせるのが基本パターン。フィルターコンテキストを意図的に変更または解除することで、特定の条件に限定した計算を実現します。たとえば「全社売上に占める部門Aの割合を出す」「前年データを除外して分析する」など、多彩なユースケースに活用できます。
4. 時間知能 (Time Intelligence) 関数
主な関数 | 役割 |
---|---|
DATEADD | 日付を指定の期間だけ進めたり戻したりして、前日や前年などを算出 |
SAMEPERIODLASTYEAR | 前年の同じ期間に相当する日付を返す |
TOTALYTD / TOTALMTD / TOTALQTD | 年初来 / 月初来 / 四半期初来の合計を計算 |
PREVIOUSYEAR / PREVIOUSMONTH | 前年または前月の同期間を返す |
ポイント:
売上比較や成長率の算出に欠かせないカテゴリー。Date テーブル(カレンダー テーブル)を正しく用意し、日付列を関連付けることで、時系列に沿った集計や前年同月比などを手軽に実装できます。
5. テキスト (Text) 関数
主な関数 | 役割 |
---|---|
CONCATENATE / & | 文字列同士を連結する |
LEFT / RIGHT / MID | 文字列の左、右、中間部分を取り出す |
SEARCH | 指定した文字列を検索し、位置を返す |
ポイント:
よくあるシナリオとしては、製品コードや住所データなどを加工して表示したり、ラベル表示を動的に変更する用途で使われます。数字と文字列を組み合わせた表示(「売上: ¥100,000」など)にも便利です。
6. 日付 (Date) 関数
主な関数 | 役割 |
---|---|
YEAR / MONTH / DAY | 日付型から年、月、日を取り出す |
DATE | 年、月、日をもとに日付型の値を生成 |
EDATE | 指定した月数前/後の日付を返す |
ポイント:
「日付と数値を組み合わせたカスタム期間の計算」などで頻繁に利用されます。適切に日付テーブルを設定しておくと、Time Intelligence 関数との連携がスムーズです。
7. 数学・トリグ (Math & Trig) 関数
主な関数 | 役割 |
---|---|
ROUND / ROUNDUP / ROUNDDOWN | 数値の四捨五入や切り上げ、切り捨てを行う |
DIVIDE | 割り算(ゼロ除算回避のために推奨) |
ABS | 絶対値を返す |
ポイント:
売上単価の四捨五入や、歩留まり率の計算などで役立ちます。特に DIVIDE()
はゼロ除算エラーを回避できるため、数値計算を安全に行いたい場合に重宝します。
8. 情報 (Information) 関数
主な関数 | 役割 |
---|---|
ISBLANK | 値が BLANK(NULL 相当)かどうかを判定 |
ISERROR | 値がエラーかどうかを判定 |
IFERROR | エラーの場合に指定した値を返す |
ポイント:
データクレンジングやエラー回避、BLANK 値の対応などに使います。これらをうまく活用すると、可視化時にエラー表示が出ないように制御でき、見やすいレポートを維持できます。
代表的な DAX 関数の組み合わせ例
CALCULATE + FILTER
- 効果: 「東京」地域の売上合計を抽出し、他のフィルターやスライサーに関係なく常に東京だけを集計する。
SAMEPERIODLASTYEAR + CALCULATE
- 効果: 前年同期間の売上を計算し、前年同月比 などの差分を確認する際に利用できる。
IF + DIVIDE
- 効果: 売上が 0 のときはエラーを返さず BLANK を返すように制御しながら、利益率を計算する。
もし困り事があるなら、まずは無料相談を
「DAX 関数が多すぎてどれを使えばいいか分からない」「複雑なロジックを組みたいけれど、エラーが出て解決できない」「会社全体で DAX を学習したい」など、Power BI やデータ活用でお悩みの方はぜひお気軽にご相談ください。
もし困り事があるなら、まずは無料相談はこちら
コンサルサービスの詳細や成功事例なども合わせてご紹介いたします。
社内にデータ活用のノウハウや専門人材が十分いない場合でも、弊社が伴走しながら最短ルートで成果を出せるようサポートいたします。
セミナーで学ぶ!DAX 関数の実践スキル
📊 Power BIでより効率的なレポート作成を!
Power BIハンズオンセミナー初級編では、短時間でデータモデリングのノウハウを学び、ビジネスに活かせるレポート作成を実践形式で習得できます。
- 少人数制のため、定員になり次第締切!
👉 セミナー詳細を今すぐチェック
📈 Power BIスキルを次のレベルへ!
DAX 関数 × データモデル設計 で、複雑なデータ分析やレポート作成もスムーズに!
Power BIハンズオンセミナー中級編 なら、実践形式で学べるから即戦力に。
業務効率をアップし、社内での評価を高めるチャンス!
- 今こそスキルアップのタイミング!
👉 詳細はこちら
DAX を使いこなすことで、Power BI の真価を最大限に引き出し、より高度な分析をスムーズに進めることができます。実践的な知識を身につけて、組織のデータドリブンな文化をリードしましょう。
まとめ
DAX 関数は数多く存在しますが、カテゴリごとの特徴や代表的な関数を把握しておくと、必要なときにすばやく目的のロジックを組み立てられるようになります。特に CALCULATE と FILTER、Time Intelligence 関数 は、ビジネスの現場で頻繁に用いられる定番の組み合わせです。
「どの関数を使うべきか」「フィルターコンテキストをどう扱うか」といった疑問があれば、無料相談やセミナーなどを活用し、実践的なアドバイスを得ると良いでしょう。DAX の理解が深まれば、Power BI レポートの分析力は飛躍的に高まります。
コメント