DATESBETWEEN

適用対象:計算列計算テーブルメジャービジュアル計算

Note

この関数は、意味のない結果を返す可能性があるため、ビジュアル計算で使用することはお勧めしません。

指定された開始日から始まり、指定された終了日まで続く日付の列が含まれるテーブルを返します。

この関数は、CALCULATE 関数にフィルターとして渡すことに適しています。 これを使用して、カスタムの日付範囲で式をフィルター処理します。

注意

月、四半期、年などの標準的な日付間隔を使用する場合は、より適した DATESINPERIOD 関数を使用することをお勧めします。

構文

DATESBETWEEN(<Dates>, <StartDate>, <EndDate>)

パラメーター

用語 定義
Dates 日付の列。
StartDate 日付の式。
EndDate 日付の式。

戻り値

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

解説

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

  • StartDate が空白である場合、StartDateDates 列の最も早い値になります。

  • EndDate が空白である場合、EndDateDates 列の最新の値になります。

  • 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 日までの日付範囲を返します。