【DAX】前月の値を表示する

データを可視化するときに前月差や前月比を出したいときは多いと思います。それらを出す前段階として必要な「前月の値」を持ってくる関数を作りたいと思います。

風場 輝


適当に作ったダミーデータでPower BI練習中。バージョンによっては画面がかなり変わることもあるのであしからず。
この記事作成時のPower BI Desktopバージョンは「バージョン: 2.142.928.0 64-bit (2025年4月)」

完成イメージはこんな感じ。

ぴ

2月の行には2月の売り上げと先月(1月)の売り上げが表示されているよ

も

これができたらあとは引き算するだけで前月差がわかるね!

前月の値を表示する

今回は売上が入っているテーブルと、売上日とリレーションを組んでいるカレンダーテーブルを用意しました。
2025_売上テーブルの「売上」列、カレンダーテーブルの「Date」列を使って前月の値を出していきます。

ぴ

結論から言うとDATEADD関数が使いやすいと思う

PREVIOUSMONTH関数

PREVIOUSMONTH関数というものを使ってみようと思います。関数名を見るとMONTHと入っていますが、実はこのほかに「PREVIOUSDAY(日)」「PREVIOUSQUARTER(四半期)」「PREVIOUSYEAR(年)」もあります。PREVIOUSはそのまま「前の」という意味です。見たい単位にあった関数を選んでくださいね。

カレンダーテーブルのDateを基準に前の月を出してください~という感じで関数自体が前月を表すのでわかりやすいなと思います。

売上合計の前月分を出す式は以下です。
カレンダー[Date]は売上日列とリレーションを組んでいるので、つまり売上日を基準に前月の売上合計が出ています。

前月値_PREVIOUSMONTH = CALCULATE(SUM('2025_売上'[売上]),PREVIOUSMONTH('カレンダー'[Date]))
ぷ

ちゃんと出てる~

DATEADD関数

今度はDATEADD関数を使います。さっきのPREVIOUSMONTH関数と違うのは何か月前のデータを持ってくるか指定ができるので汎用性が高いことです。

前月値_DATEADD = CALCULATE(SUM('2025_売上'[売上]),DATEADD('カレンダー'[Date],-1,MONTH))

DATEADD(‘カレンダー'[Date],-1,MONTH)の「-1」と「MONTH」のところは適宜変えることができます。

DATEADD(‘カレンダー'[Date],-3,MONTH)とすれば3か月前ですし、DATEADD(‘カレンダー'[Date],-1,DAY)にすれば1日前になります。「-(マイナス)」を付けなければ未来の値を持ってくることもできるので、3か月後や1年後と比較することもできます。

DATEADD関数も「MONTH(月)」の他に「DAY(日)」「QUARTER(四半期)」「YEAR(年)」を選べます。

PARALLELPERIOD関数

最後はPARALLELPERIOD関数です。式の見た目はDATEADD関数と同じです。ただ、DATEADD関数と違ってPARALLELPERIOD関数はどうやら「DAY」は選べないみたいですね。指定できる期間は「月」「四半期」「年」のみです。

前月値_PARALLELPERIOD = CALCULATE(SUM('2025_売上'[売上]),PARALLELPERIOD('カレンダー'[Date],-1,MONTH))

PREVIOUSMONTH関数やDATEADD関数との違いがあんまりピンとこなかったのですが、PREVIOUSMONTH関数は”前”月のみ出すことができるのに対し、PARALLELPERIOD関数は前月も来月も取ることができる。PREVIOUSMONTH関数よりは柔軟性がありDATEADD関数よりかは柔軟性がないみたいな理解でいいのかなと思っています。

柔軟性の高さ
DATEADD関数>>PARALLELPERIOD関数>PREVIOUSMONTH関数

も

とりあえずDATEADD関数を使っておけばいいかな

タイトルとURLをコピーしました