PowerBIで仕掛日数や在庫、LT(リードタイム)を管理する際に、日付の差分を日や週で取得したいときがあります。ただ、日付を単純に引き算するとうまくいきません…。そんなときに便利なDAX関数がDATEDIFF関数です。
・DATEDIFF関数は日付の差を計算できる
・DATEDIFF関数で日付の差を計算して仕掛日数、在庫管理表を作成できる
DATEADIFF関数は日付の差を年や月、週、日などの任意の間隔で指定できるので、売れずに残っている製品を把握できる在庫管理表の作成に必須の関数です!
日付の差を計算するDATEDIFF関数
PowerBIで日付の差を計算させるDAX関数はDATEADIFF関数です。
DATEDIFF関数はその名の通り、
DATE(データ)のDIFFERENCE(違い)を計算できる関数です。
【DATEDIFF関数】
2つの日付間の差を計算する関数
・構文
DATEDIFF(<Date1>, <Date2>, <Interval>)
=DATEDIFF(開始日付,終了日付,間隔)
開始、終了日付:日付列などを指定
間隔:比較するときに指定する間隔
year、quarter、month、week、day など
つまり、
2つの日付の差分を指定した間隔で計算できる関数
例えば、
=DATEDIFF(2025/01/01,2025/01/05,DAY)
は計算結果に「4」が返ってきます。
=DATEDIFF(2025/01/01,2025/03/01,MONTH)
は計算結果に「2」が返ってきます。
日付の差の間隔は下記の任意な値を指定できます。
【間隔の種類】
– 秒:SECOND
– 分:MINUTE
– 時間:HOUR
– 日:DAY
– 週:WEEK
– 月:MONTH
– 四半期:QUARTER
– 年:YEAR
つまり、DATEDIFF関数を使えば、2つの日付の差分を簡単に計算させることができます。
ちなみによく似ている関数でDATEADD関数があります。こちらは、日付から指定した数値を任意の間隔で引いたり、足したりできる関数です。前年、前月比の売上データを計算する際に便利です。2つの日付間の差を計算したいときは「DATEDIFF関数」、日付を足したり引いたりしたい場合は「DATEADD関数」と覚えておきましょう!
▶DATEADD関数で指定した日数や月数を足し算、引き算
▶DATEADD関数で前年比、前月比の計算(日付の引き算)
今回はDATEDIFF関数を用いて、入庫日と出荷日の差から仕掛日数を取得する方法を説明していきます。
◆入庫日、出荷日の差から仕掛日数を表で表示

【結論】
・DATEDIFF関数を使えば、2つの日付の差を計算できる
・使い方はDATEDIFF(開始日付,終了日付,間隔)
応用編として、DATEDIFF関数を用いて、行同士を比較して前回購入日からの購入間隔を計算する方法を解説しています。合わせてご参考ください!
◆【応用】PowerBIで行の計算(行を比較し日付間隔を計算)
DATEDIFF関数で日付の差分から仕掛日数を取得
それでは、DATEADIFF関数の具体的な使い方として、入庫日、出荷日から差分である仕掛日数を取得していきます。
◆使用するデータ
データは下記の、「製番」「入庫日」「出荷日」の仕掛データをPowerBIにインポートしている場合を想定します。

【関連記事】
▶PowerBIにデータをインポート(取り込み)、グラフ化
◆DATEDIFF関数で仕掛日数の列を追加
「ホーム」→「新しい列」をクリックし、DATEDIFF関数で仕掛日数の列を追加します。

仕掛日数 = DATEDIFF('仕掛データ'[入庫日],'仕掛データ'[出荷日],DAY)
列名:仕掛日数
関数:DATEDIFF関数
DATEDIFF(入庫日,出荷日,DAY)
入庫日と出荷日の差分を日で計算していることになります。
仕掛日数の列を追加することができました!

間隔であるDAYの部分を変えれば、日付の差を月や週で計算することも可能です。入荷して売れ残っている期間を日数だけでなく、月や週でも算出することができました!
仕掛月数 = DATEDIFF('仕掛データ'[入庫日],'仕掛データ'[出荷日],MONTH)
仕掛週数 = DATEDIFF('仕掛データ'[入庫日],'仕掛データ'[出荷日],WEEK)

【関連記事】日付の計算系は下記をご参考ください!
▶FORMAT関数で日付から年/月/日/曜日を取得
▶パワークエリで関数を使わずに年/月/週/曜日、年度の取得
▶EOMONTH関数で日付の月末日や月初日を取得
▶PowerBIで自動カレンダーテーブルの作成(テンプレ公開)
【結論】
DATEDIFF(開始日付,終了日付,間隔)を入れるだけで差分を取得できる!
DATEDIFF関数で在庫管理表の作成
作成したデータを使って、売れずに残っている日数を見える化する在庫管理テーブルをPowerBIのレポート画面で作成していきます。
◆レポート画面で在庫管理表の作成
作成した仕掛日数の列を使ってレポート画面で在庫管理表を作成していきます。
①ビジュアルからテーブルを追加
②表示したい順にデータを追加
ここに、先ほどDATEDIFF関数で作成した仕掛日数も追加します。

分かりやすいように、仕掛日数の大きいものが赤色になるグラデーションを条件付き書式でつけています。条件付き書式の設定方法は、下記の通りです。
①ビジュアルの書式設定
②セルの要素から仕掛日数を選択
③背景色をオン
④条件付き書式のボタンをクリック

すると、条件設定のページが開くので、任意の色に設定すればOKです。

今回のグラデーション設定以外にも、「100日以上を赤色に表示」「アイコンで表示」「設定した条件のフォント色を変更」など様々な設定ができます。
【参考記事】
▶PowerBIでテーブル表の作成と条件付き書式の設定
▶PowerBIでマトリックス表の作成、ヒートマップ的な在庫管理表の作成
【結論】DATEDIFF関数で作成した仕掛日数をテーブル表示して在庫管理表ができる!
PowerBIで日付の差分を計算 まとめ
今回はDATEDIFF関数を用いて、入庫日と出荷日の差から仕掛日数を取得する方法を説明しました。
今回のまとめ
・DATEDIFF関数は日付の差を計算できる
・DATEDIFF(開始日付,終了日付,間隔)を指定する!
・DATEDIFF関数で日付の差を計算して在庫管理表を作成できる
日付のデータ形式の計算は意外とやっかいですよね…。DATEDIFF関数やDATEADD関数はそんな日付の計算にもってこいなDAX関数です。日付の差からリードタイム(LT)や仕掛日数、保有日数、在庫管理など様々な活用が可能かと思いますので、ぜひご参考ください。
下記でPowerBIの便利機能やDAX関数一覧をまとめています。ぜひご参考下さい!
最後まで読んでいただきありがとうございました!
記事が良ければクリック応援☟よろしくお願いします!!
コメント