データ分析をするうえで、足し算やかけ算、平均といった演算はよく使われますが、意外と忘れがちなのが「引き算(差分)」を上手に活用することです。引き算は売上やコストの差異分析、昨年比・前年同月比の増減など、多様なビジネスシーンで必要となる重要な計算です。この記事では、Power BI の DAX 関数を使った引き算の方法やよくある活用例、注意点をわかりやすくまとめました。
DAX での基本的な「引き算」の考え方
DAX では、シンプルに 「列名1 – 列名2」 や 「メジャー1 – メジャー2」 と記述するだけで引き算が可能です。Excel と同様に演算子(-)を使います。例を挙げると、次のような場面で利用されることが多いです。
- 売上利益計算:売上高 - 原価 = 利益
- 昨年同期間との差額:今年の売上 - 昨年の売上 = 増減額
- 在庫管理:入庫数 - 出庫数 = 現在庫量
特に「差」を分析することで、“いつ”“どこで”“どのように” パフォーマンスが変わったかを可視化でき、経営上の意思決定に大いに役立ちます。
基本的な例:列同士の引き算
1. 計算列 (Calculated Column) での引き算
テーブルに「売上 (SalesAmount)」と「原価 (CostAmount)」の列があり、同じ行(行単位)で「粗利益 (GrossProfit)」を求めたいケースを想定します。
- Power BI Desktop の [モデル] または [レポート] ビューで、該当テーブルを選択し、[列の追加] をクリック。
- 式入力バーに次のように記述します。
- 同一テーブル内の列同士なので、通常の「-」演算子で引き算可能です。
- 計算列では、テーブルの各行に対して計算が行われます。
2. メジャー (Measure) での引き算
より推奨される方法は、「メジャー」を使って集計した数値どうしを引き算するパターンです。レポート上で動的にフィルターやスライサーが変わっても、メジャーなら自動的に再計算されます。
例)売上合計メジャーと原価合計メジャーを差し引いて粗利益を計算する場合
- [Total Sales] は
SUM('SalesTable'[SalesAmount])
- [Total Cost] は
SUM('SalesTable'[CostAmount])
- [Gross Profit] は 2 つのメジャーを引き算したもの
レポートで [Gross Profit] をグラフやカードビジュアルに追加すれば、地域や期間の切り替えに応じて粗利益が自動で変化します。
前年や他期間との差分を出す
売上比較や成長率の算出などで頻繁に使われるのが、「別期間との差分」です。Time Intelligence 関数(例: SAMEPERIODLASTYEAR
, DATEADD
など)と組み合わせて引き算するパターンが多いです。
例:前年同月比の差額
- Total Sales (今年の売上合計)のメジャーを作成
- Sales Last Year (前年売上合計)を作成
- 差額 (Difference) メジャーを作成
こうすることで、たとえば「2025 年 3 月」のフィルターがかかっている状態では、「2025 年 3 月の売上」と「2024 年 3 月の売上」の差をビジュアルに表示できるようになります。
ロールアップ単位が違う計算の場合
Power BI では、スライサーやビジュアルごとに集計レベル(年月、四半期、地域など)が動的に変化します。計算列やメジャーが「年単位の合計」と「月単位の合計」など異なるレベルの集計を比較する場合にも、基本的な引き算の考え方は同じです。ただし、フィルターコンテキストの仕組みを理解していないと、意図しない集計結果が出ることもあります。
ポイント
- メジャー同士の引き算:コンテキストに応じて自動的に集計粒度が変わる。
- 計算列同士の引き算:テーブルの行単位での演算なので、集計粒度よりもデータそのものの構造に依存。
もしも正しい値が得られない場合は、CALCULATE
+ FILTER
や ALLSELECTED
などでコンテキストを指定し直すと解決するケースが多いです。
「引き算」を活かすビジネスシーンの例
- 予算 vs. 実績の差額
Budget - Actual
で差異を見える化し、赤字・黒字や目標未達状態をすぐ把握。
- 売上予測 vs. 実際の売上
- 予想と実績の乖離を見ることで、需要予測の精度を改善。
- 在庫数・受注数の差
- 在庫が受注に追いついているかどうかを常にモニタリング。
- 生産台数 vs. 不良品数
- 稼働率や不良率をリアルタイムに把握し、製造工程の改善に役立てる。
引き算で注意すべきポイント
-
NULL や BLANK 値への対応
列に NULL(または BLANK)が含まれる場合、期待した値が計算されないことがあります。IFERROR
やISBLANK
などでエラーハンドリングを行うのがおすすめです。 -
負の値が想定されるかどうか
「引き算の結果がマイナスになる」可能性がある場合、グラフやカードビジュアルでの表現をわかりやすく工夫する。赤文字で強調するなどの可視化手法が有用です。 -
フィルターコンテキストの理解
同じメジャーでも、ページフィルターやスライサーが変われば計算結果も変化します。必要に応じてCALCULATE
関数でフィルターを固定化したり、ALL
系の関数で一部のフィルターを無視したりする設定が必要になるかもしれません。
もし困り事があるなら、まずは無料相談を
「売上と原価の差を出したいのに、うまくいかない」「前年同月比の差分が合わない」「フィルターやロールレベルセキュリティと絡めて計算したい」など、Power BI やデータ活用でお悩みの方はぜひお気軽にご相談ください。
もし困り事があるなら、まずは無料相談はこちら
コンサルサービスの詳細や成功事例なども合わせてご紹介いたします。
社内にデータ活用のノウハウや専門人材が十分いない場合でも、弊社が伴走しながら最短ルートで成果を出せるようサポートいたします。
セミナーで学ぶ!DAX 関数の実践スキル
📊 Power BI でより効率的なレポート作成を!
DAX 関数をマスターして、実務で使えるスキルを身につけませんか?
Power BIハンズオンセミナー中級編 では、短時間でデータモデリングのノウハウを学び、ビジネスに活かせるレポート作成を 実践形式 で習得できます。
- 少人数制のため、定員になり次第締切!
👉 セミナー詳細を今すぐチェック
📈 Power BI スキルを次のレベルへ!
DAX 関数 × データモデル設計 で、複雑なデータ分析やレポート作成もスムーズに!
Power BIハンズオンセミナー中級編 なら、実践形式で学べるから即戦力に。
業務効率をアップし、社内での評価を高めるチャンス!
- 今こそスキルアップのタイミング!
👉 詳細はこちら
DAX での引き算は基本的な演算ですが、実務レベルで活用するにはフィルターコンテキストの理解や、他の関数との組み合わせが欠かせません。セミナーに参加すれば、こうしたポイントを効率よく学ぶことができます。
まとめ
Power BI の DAX 関数で「引き算」を活用すると、売上やコスト、前年・前年同月との比較などを簡単に行え、ビジネス上の課題や改善点を素早く見つけやすくなります。シンプルな「-」演算子から、CALCULATE
・SAMEPERIODLASTYEAR
・DATEADD
といった関数との組み合わせまで、さまざまなシーンで差異分析を実現できます。
ただし、フィルターコンテキストをはじめとする DAX の仕組みをしっかり理解していないと、思わぬ計算結果になったり、エラーが生じたりすることも。無料相談やハンズオンセミナーなどを上手に活用し、実務ですぐに役立つスキルを身につけてみてください。差分の分析を武器に、データドリブンな組織を目指しましょう。
コメント