DATESINPERIOD
手記
この関数は、意味のない結果を返す可能性があるため、視覚的な計算
指定した開始日から始まり、指定した日付の間隔の数と種類に対して継続する日付の列を含むテーブルを返します。
この関数は、CALCULATE 関数にフィルターとして渡す場合に適しています。 これを使用して、日、月、四半期、年などの標準の日付間隔で式をフィルター処理します。
構文
DATESINPERIOD(<dates>, <start_date>, <number_of_intervals>, <interval>)
パラメーター
用語 | 定義 |
---|---|
dates |
日付列。 |
start_date |
日付式。 |
number_of_intervals |
日付を加算または減算する間隔の数を指定する整数。 |
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 テーブルメジャー定義では、DATESINPERIOD 関数を使用して前年度 (PY) の収益を計算します。
数式で MAX 関数が使用されていることに注意してください。 この関数は、フィルター コンテキスト内の最新の日付を返します。 したがって、DATESINPERIOD 関数は、昨年の最新の日付から始まる日付のテーブルを返します。
この記事の例は、Adventure Works DW 2020 Power BI Desktop モデルのサンプルと共に使用できます。 モデルを取得するには、サンプル モデル
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 日から始まる日付値の年です。