DATESINPERIOD
Note
この関数は、意味のない結果を返す可能性があるため、ビジュアル計算で使用することはお勧めしません。
指定された開始日で始まり、指定された数と種類の日付間隔で継続する日付の列を含むテーブルを返します。
この関数は、CALCULATE 関数にフィルターとして渡すことに適しています。 日、月、四半期、年などの標準の日付間隔で式をフィルター処理する場合に使用します。
構文
DATESINPERIOD(<dates>, <start_date>, <number_of_intervals>, <interval>)
パラメーター
用語 | 定義 |
---|---|
dates | 日付の列。 |
start_date | 日付の式。 |
number_of_intervals | 日付に対して加算または減算する間隔の数を指定する整数。 |
interval | 日付をシフトする間隔。 interval の値は、DAY 、MONTH 、QUARTER 、YEAR のいずれかにすることができます |
戻り値
日付値の単一列を含むテーブル。
解説
最も一般的なユース ケースでは、dates は、マークされた日付テーブルの日付列への参照です。
number_of_intervals に指定された数値が正の場合、日付は時間的に進みます。数値が負の場合、日付は時間的に戻ります。
interval パラメーターは列挙型です。 有効な値は、
DAY
、MONTH
、QUARTER
、YEAR
です。 列挙型であるため、値は文字列として渡されません。 そのため、引用符で囲まないでください。返されるテーブルに含まれるのは、dates 列に格納されている日付のみです。 そのため、たとえば、dates 列が 2017 年 7 月 1 日から始まり、start_date 値が 2016 年 7 月 1 日から始まる場合、返されるテーブルは 2017 年 7 月 1 日から始まります。
この関数は、計算列または行レベルのセキュリティ (RLS) ルールで使用される場合、DirectQuery モードでの使用はサポートされません。
例
次の Sales テーブルのメジャー定義では、前年度 (PY) の収益を計算するために、DATESINPERIOD 関数が使用されます。
この数式では、MAX 関数が使用されていることに注目してください。 この関数は、フィルター コンテキストにある最終の日付を返します。 そのため、DATESINPERIOD 関数は、前年度の最終の日付から始まる日付のテーブルを返します。
この記事の例は、Adventure Works DW 2020 Power BI Desktop のサンプル モデルで使用できます。 モデルを取得するには、「DAX サンプル モデル」を参照してください。
Revenue PY =
CALCULATE(
SUM(Sales[Sales Amount]),
DATESINPERIOD(
'Date'[Date],
MAX('Date'[Date]),
-1,
YEAR
)
)
レポートが 2020 年 6 月でフィルター処理されているとします。 MAX 関数は、2020 年 6 月 30 日を返します。 したがって、DATESINPERIOD 関数は、2019 年 7 月 1 日から 2020 年 6 月 30 日までの日付範囲を返します。 前年度の 2020 年 6 月 30 日から始まる日付値の 1 年です。