Power BI で前年比を出す方法(SAMEPERIODLASTYEAR)
濵口 翔長崎で、Power BI のつまずきを記録しています確認日2026年10月20日。
Power BI Desktop(日本語版、 2.159.883.0)で、 ダミーの データを 使って 確かめました。 確認できていない ことは、 末尾に まとめました。
月ごとの
結論
(30秒版)
前年売上 = CALCULATE([売上合計], SAMEPERIODLASTYEAR('日付テーブル'[Date]))と、前年比 = DIVIDE([売上合計], [前年売上])で、前年比が 出ました。 - 前の
年の データが ない 行(私の データでは 2025年)は、 前年売上も 前年比も、 空白に なりました。 - 売上の
ない 月(2026年4月〜12月)にも、前年売上は、 値が 前年比は、出ます。 空白です。 合計行の 前年比は、 年の 比較ではないので、 読み方に 注意が 必要です。
前提
日付テーブルを、
日付テーブルを
データは、売上合計 = SUM(sales3[売上]) の
練習用の CSV で、はじめから作る(画面つき)
練習問題のsales_yoy.csv、sales_yoy です。sales3)の
1. CSV を

2. 日付テーブルを
日付テーブル = CALENDAR(DATE(2025,1,1), DATE(2026,12,31))
![]()
3. 売上の

4. 日付テーブルと
5. メジャーを
![]()
6. 表に年 = YEAR('日付テーブル'[Date])、月 = MONTH('日付テーブル'[Date]))を、

手順
「モデリング」タブの
前年売上 =
CALCULATE (
[売上合計],
SAMEPERIODLASTYEAR ( '日付テーブル'[Date] )
)
前年比 = DIVIDE ( [売上合計], [前年売上] )

テーブルの

結果の読み方
- 2025年の
行 : 売上合計はありますが、 前年売上と 前年比は、 空白でした。 前の 年(2024年)の データが、 ないためです。 - 2026年1〜3月: 前年比は、
1月が 1.16、 2月が 1.45、 3月が 0.81 でした (1月は、 4573 ÷ 3931 です)。 - 2026年4〜12月: 売上合計は
空白ですが、前年売上は、 2025年の (4月は同じ月の 値が 出ます 4150 など)。 前年比は、 売上合計が 空白なので、 空白に なります。 「売上が ない 月に、 前年売上だけ出る」ことに、 驚かないようにします。 - 合計行: 前年比が
1.23 に なっています。 これは、 全期間の 売上合計(75874)を、 前年売上の 合計(61508、 2025年だけ)で 割った 値で、 年どうしの 比較ではありません。 この 値を、 そのまま 報告に 使わないようにします。
公式の記載との照合
Microsoft Learn(日本語版)の
- 引数: 公式では、
datesの引数に、 日付/時刻列への 参照を 指定できる、と 書かれています。 売上の テーブルの 日付の 列でも、 日付テーブルの 列でも、 同じ 結果だった、 私の 観察と 合っています。 - 返す日付: 公式では、
DATEADD(dates, -1, year)が返す日付と 同じ、と 書かれています。 - 月末の
特殊な : 選択に、動作 月の 最後の 2日が 含まれる 場合は、 月末までの 日数が 含まれる、と 公式に 書かれています (例: 2月27日と 28日を 選ぶと、 前年の 2月27日から 29日)。 この 記事では、 確認していません。 - 使えない
場合 : 公式では、DirectQuery の 計算列や、 行レベル セキュリティの 規則では、 使えない、と 書かれています。 また、 ビジュアル計算での 使用は、 意味の ない 結果に なることが ある ため、 お勧めしない、と 書かれています。 - 日付テーブル: 公式では、
クラシックな タイム インテリジェンス関数を 使う 場合は、 日付テーブルを マークする 必要が ある、とされています (日付テーブルの 記事 )。
この記事で確認できたこと・できていないこと
確認日: 2026年10月20日。
確認できた
- 上の
2つの メジャーで、 2026年1〜3月に、 前年売上と 前年比が 出た こと - 前年の
データが ない 行が、 空白に なる こと - 売上の
ない 月にも、 前年売上が 出る こと - 合計行の
前年比が、 年の 比較ではない こと
確認できていない
- 日付テーブルを
使わないと、 失敗するのか。 SAMEPERIODLASTYEARの引数を、 売上の テーブルの 日付の 列に しても、 私の 環境では、 同じ 結果でした。 失敗する 条件は、 再現できていません。 - リレーションシップが
ない 場合の 動き - 日付が
重複する テーブルでの、 エラーの 文言( 今回は、 エラーが 出ませんでした ) - 英語版での
名称
参考
- SAMEPERIODLASTYEAR 関数 (DAX)(Microsoft Learn)。
確認日 2026年10月20日。 - Power BI Desktop で
日付テーブルを 。設定し、 使用する (Microsoft Learn) 確認日 2026年10月20日。
この記事で使った用語
- Power BI Desktop
- Windows で動く、レポートを作るためのアプリです。データの取り込みとモデルの作成、レポートの作成に向いています。
- セマンティックモデル
- レポートやグラフに使える状態に整えた、データの元です。作り方の1つは、モデルを含む Desktop のファイルを、Power BI サービスにアップロードすることです。