Power BI で、前月比を出す方法(DATEADD)と、1月が「-100%」になる落とし穴
濵口 翔長崎で、Power BI のつまずきを記録しています確認日2026年10月24日。
Power BI Desktop(日本語版、 2.159.883.0)で、 ダミーの データを 使って 確かめました。 確認できていない ことは、 末尾に まとめました。
前の
結論
(30秒版)
前月売上 = CALCULATE([売上合計], DATEADD('月次売上'[月], -1, MONTH))、前月比 = DIVIDE([売上合計], [前月売上]) - 1で、2月からは、 前月比が 出ました (2月は 18.92%)。 - **1月は
「-100.00%」 **に なりました。 前月売上が 空(BLANK)なので、 DIVIDEが空を 返し、 空から 1 を 引くと −1(−100%)に なる ためだと、 私は 読んでいます。 IF(ISBLANK(前月売上), BLANK(), …)で、前月売上が 空の ときは、 空に すると、 1月は 空白に なりました。
前提
ダミーの
手順
「新しい
前月売上 =
CALCULATE ( [売上合計], DATEADD ( '月次売上'[月], -1, MONTH ) )
前月比 = DIVIDE ( [売上合計], [前月売上] ) - 1
「前月比」は、
結果の読み方
2月は、
**1月は、
直し方: 前月売上が空のときは、空にする
前月比修正 =
VAR p = [前月売上]
RETURN
IF ( ISBLANK ( p ), BLANK (), DIVIDE ( [売上合計], p ) - 1 )
結果は、

合計の行は、意味のある値ではない
表の
公式の記載との照合
Microsoft Learn(英語版、
- DATEADD: 日付の
列を、 指定した 期間だけずらした 日付を 返す、 と 書かれています。 戻り値には、 列に ある 日付だけが 入る、 とも 書かれています。 私の メジャーが、 毎月 1日だけの 列で 動いた ことと、 矛盾しません。 - 連続した
日付 : 日付の列を 使う 書き方では、 現在の 文脈の 日付が 連続していないと、 エラーに なる、と 書かれています。 私の メジャーは、 1か 月ごとに、 1つの 月を 選ぶ形(1つの 日付)で 使ったので、 エラーには なりませんでした。 複数の 月を 選ぶ 場合は、 確かめていません。 - PREVIOUSMONTH: 前の
月の 日付を 返す関数と して、 別に 書かれています。 私は、 試していません。 - 日付テーブル: 公式は、
時間インテリジェンス関数を 使う 前に、 日付テーブルを マークする、 と 勧めています。 この 記事は、 マークしていない 月の 列で、 動きました。
この記事で確認できたこと・できていないこと
確認日: 2026年10月24日。
確認できた
DATEADDとDIVIDEで、前月売上と 前月比が 出る こと (2月 18.92%、 3月 −27.27%) - 1月が
「-100.00%」に なる こと IF(ISBLANK(…), BLANK(), …)で、1月が 空白に なる こと - 合計の
行が、 前月比と して 意味の ある 値に ならない こと
確認できていない
- 日付テーブルを
使った 場合、 毎日の データの 場合 - 複数の
月を 選んだ とき (DATEADD が、 連続していない 日付で エラーに なるか) PREVIOUSMONTHを使った 書き方 - 折れ線グラフや、
カードでの 見え方 - Power BI サービスでの
動作、 英語版での 名称
参考
- DATEADD(Microsoft Learn、
英語版) 。確認日 2026年10月24日。 - PREVIOUSMONTH(Microsoft Learn、
英語版) 。確認日 2026年10月24日。
この記事で使った用語
- Power BI Desktop
- Windows で動く、レポートを作るためのアプリです。データの取り込みとモデルの作成、レポートの作成に向いています。