BI探検ノート

Power BI で、前月比を出す方法(DATEADD)と、1月が「-100%」になる落とし穴

約4分

濵口 翔長崎で、Power BI のつまずきを記録しています
目次
  1. 前提
  2. 手順
  3. 結果の読み方
  4. 直し方: 前月売上が空のときは、空にする
  5. 合計の行は、意味のある値ではない
  6. 公式の記載との照合
  7. この記事で確認できたこと・できていないこと
  8. 参考

確認日2026年10月24日。Power BI Desktop(日本語版、2.159.883.0)で、ダミーのデータを使って確かめました。確認できていないことは、末尾にまとめました。

前の月と比べた増減(前月比)を、DAX で出しました。ただ、**いちばん最初の月(1月)が「-100.00%」**になりました。前の月のデータがないだけなのに、です。直す式も、確かめました。

結論(30秒版)

  • 前月売上 = CALCULATE([売上合計], DATEADD('月次売上'[月], -1, MONTH))、前月比 = DIVIDE([売上合計], [前月売上]) - 1 で、2月からは、前月比が出ました(2月は 18.92%)。
  • **1月は「-100.00%」**になりました。前月売上が空(BLANK)なので、DIVIDE が空を返し、空から 1 を引くと −1(−100%)になるためだと、私は読んでいます。
  • IF(ISBLANK(前月売上), BLANK(), …) で、前月売上が空のときは、空にすると、1月は空白になりました。

前提

ダミーの月次売上(2025年1月〜12月、12行)です。月の列は、毎月1日の日付で、日付テーブルとは、つないでいません。「売上合計 = SUM(‘月次売上’[売上])」のメジャーが、すでにあります。(売上は、3700、4400、3200、3900、4600、3400、4100、4800、3600、4300、3100、3800 です。)

手順

「新しいメジャー」で、2つ作ります。

前月売上 =
CALCULATE ( [売上合計], DATEADD ( '月次売上'[月], -1, MONTH ) )

前月比 = DIVIDE ( [売上合計], [前月売上] ) - 1

「前月比」は、書式を「%」にします。表のビジュアルに、「月」「売上合計」「前月売上」「前月比」を入れました。

結果の読み方

2月は、4400 ÷ 3700 − 1 = 0.1892 で、18.92% です。3月は、3200 ÷ 4400 − 1 = −27.27% でした。表の値と合っています。

**1月は、前月売上が空白なのに、前月比が「-100.00%」**になりました。

直し方: 前月売上が空のときは、空にする

前月比修正 =
VAR p = [前月売上]
RETURN
    IF ( ISBLANK ( p ), BLANK (), DIVIDE ( [売上合計], p ) - 1 )

結果は、1月が空白に、2月からは、前月比と同じ値になりました。

表のビジュアル。列は、月、売上合計、目標合計、達成率、目標との差、月別達成率の平均、前月売上、前月比、前月比修正。1月は、前月売上が空白、前月比が -100.00%、前月比修正が空白。2月は、前月売上 3700、前月比と前月比修正が 18.92%。3月は -27.27%。合計の行は、前月売上 43100、前月比と前月比修正が 8.82%

合計の行は、意味のある値ではない

表の「合計」の行は、前月売上が 43100、前月比が 8.82% になりました。43100 は、1月〜11月の売上の合計(46900 − 12月の 3800)です。8.82% は、46900 ÷ 43100 − 1 で、「12か月の合計」と「1〜11月の合計」の比です。前月比としては、意味のある値ではありません。合計の行は、見せないほうが、安全です。

公式の記載との照合

Microsoft Learn(英語版、確認日 2026年10月24日)と、私の観察を、突き合わせました。

  • DATEADD: 日付の列を、指定した期間だけずらした日付を返す、と書かれています。戻り値には、列にある日付だけが入る、とも書かれています。私のメジャーが、毎月1日だけの列で動いたことと、矛盾しません。
  • 連続した日付: 日付の列を使う書き方では、現在の文脈の日付が連続していないと、エラーになる、と書かれています。私のメジャーは、1か月ごとに、1つの月を選ぶ形(1つの日付)で使ったので、エラーにはなりませんでした。複数の月を選ぶ場合は、確かめていません。
  • PREVIOUSMONTH: 前の月の日付を返す関数として、別に書かれています。私は、試していません。
  • 日付テーブル: 公式は、時間インテリジェンス関数を使う前に、日付テーブルをマークする、と勧めています。この記事は、マークしていない月の列で、動きました。

この記事で確認できたこと・できていないこと

確認日: 2026年10月24日。Power BI Desktop(Windows、日本語版、2.159.883.0、未サインイン)、ダミーの月次売上 12行。

確認できたこと

  • DATEADD と DIVIDE で、前月売上と前月比が出ること(2月 18.92%、3月 −27.27%)
  • 1月が「-100.00%」になること
  • IF(ISBLANK(…), BLANK(), …) で、1月が空白になること
  • 合計の行が、前月比として意味のある値にならないこと

確認できていないこと

  • 日付テーブルを使った場合、毎日のデータの場合
  • 複数の月を選んだとき(DATEADD が、連続していない日付でエラーになるか)
  • PREVIOUSMONTH を使った書き方
  • 折れ線グラフや、カードでの見え方
  • Power BI サービスでの動作、英語版での名称

参考

この記事で使った用語

Power BI Desktop
Windows で動く、レポートを作るためのアプリです。データの取り込みとモデルの作成、レポートの作成に向いています。

用語集をすべて見る