DATESINPERIOD

指定された開始日で始まり、指定された数と種類の日付間隔で継続する日付の列を含むテーブルを返します。

この関数は、CALCULATE 関数にフィルターとして渡すことに適しています。 日、月、四半期、年などの標準の日付間隔で式をフィルター処理する場合に使用します。

構文

DATESINPERIOD(<dates>, <start_date>, <number_of_intervals>, <interval>)

パラメーター

用語 定義
dates 日付の列。
start_date 日付の式。
number_of_intervals 日付に対して加算または減算する間隔の数を指定する整数。
interval 日付をシフトする間隔。 interval の値は、DAYMONTHQUARTERYEAR のいずれかにすることができます

戻り値

日付値の単一列を含むテーブル。

解説

  • 最も一般的なユース ケースでは、dates は、マークされた日付テーブルの日付列への参照です。

  • number_of_intervals に指定された数値が正の場合、日付は時間的に進みます。数値が負の場合、日付は時間的に戻ります。

  • interval パラメーターは列挙型です。 有効な値は、DAYMONTHQUARTERYEAR です。 列挙型であるため、値は文字列として渡されません。 そのため、引用符で囲まないでください。

  • 返されるテーブルに含まれるのは、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 年です。

タイム インテリジェンス関数 (DAX)
日付と時刻の関数 (DAX)
DATESBETWEEN 関数 (DAX)