DATESBETWEEN
Note
この関数は、意味のない結果を返す可能性があるため、ビジュアル計算で使用することはお勧めしません。
指定された開始日から始まり、指定された終了日まで続く日付の列が含まれるテーブルを返します。
この関数は、CALCULATE 関数にフィルターとして渡すことに適しています。 これを使用して、カスタムの日付範囲で式をフィルター処理します。
注意
月、四半期、年などの標準的な日付間隔を使用する場合は、より適した DATESINPERIOD 関数を使用することをお勧めします。
構文
DATESBETWEEN(<Dates>, <StartDate>, <EndDate>)
パラメーター
用語 | 定義 |
---|---|
Dates | 日付の列。 |
StartDate | 日付の式。 |
EndDate | 日付の式。 |
戻り値
日付値の単一列を含むテーブル。
解説
最も一般的なユース ケースでは、Dates は、マークされた日付テーブルの日付列への参照です。
StartDate が空白である場合、StartDate は Dates 列の最も早い値になります。
EndDate が空白である場合、EndDate は Dates 列の最新の値になります。
StartDate および EndDate として使用される日付は含まれます。 そのため、たとえば、StartDate 値が 2019 年 7 月 1 日である場合、その日付は返されるテーブルに含まれます (その日付が Dates 列に存在する場合)。
返されるテーブルに含まれるのは、Dates 列に格納されている日付のみです。 そのため、たとえば、Dates 列が 2017 年 7 月 1 日から始まり、StartDate 値が 2016 年 7 月 1 日の場合、返されるテーブルは 2017 年 7 月 1 日から始まります。
この関数は、計算列または行レベルのセキュリティ (RLS) ルールで使用される場合、DirectQuery モードでの使用はサポートされません。
例
次の Sales テーブルのメジャー定義では、life-to-date (LTD) 計算を行うために、DATESBETWEEN 関数が使用されます。 Life-to-date は、開始以降の時間の経過のメジャーの累積を表します。
この数式では、MAX 関数が使用されていることに注目してください。 この関数は、フィルター コンテキストにある最終の日付を返します。 そのため、DATESBETWEEN 関数は、最も古い日付から報告される最終日付までの日付のテーブルを返します。
この記事の例は、Adventure Works DW 2020 Power BI Desktop のサンプル モデルで使用できます。 モデルを取得するには、「DAX サンプル モデル」を参照してください。
Customers LTD =
CALCULATE(
DISTINCTCOUNT(Sales[CustomerKey]),
DATESBETWEEN(
'Date'[Date],
BLANK(),
MAX('Date'[Date])
)
)
Date テーブルに格納されている最も古い日付が 2017 年 7 月 1 日であるとします。 そのため、レポートで 2020 月 6 月によってメジャーがフィルター処理される場合、DATESBETWEEN 関数は、2017 年 7 月 1 日から 2020 年 6 月 30 日までの日付範囲を返します。