DATESBETWEEN

適用於:匯出數據行計算數據表量值視覺計算

注意

不建議將此函式用於 視覺計算,因為它可能會傳回毫無意義的結果。

對於日期欄輸入,傳回一個表格,其中包含以指定開始日期開頭並持續到指定結束日期的日期欄。

對於行事曆輸入,傳回以指定開始日期開始並持續到指定結束日期為止的表格。 表格包含所有主要標記欄和所有時間相關欄。

此函式適合當做篩選傳遞至 CALCULATE 函式。 使用它依自定義日期範圍來篩選表達式。

注意

如果你使用的是標準日期間隔,如天、月、季度或年份,請使用更合適的 DATESINPERIOD 函數。

語法

DATESBETWEEN(<dates or calendar>, <StartDate>, <EndDate>)

參數

術語 定義
dates or calendar 包含日期或行事曆參照的資料行
StartDate 日期/日期運算式。 如果你使用日曆語法,請使用與標記為「日」類別的主要欄位相同的資料類型。
EndDate 日期/日期運算式。 如果你使用日曆語法,請使用與標記為「日」類別的主要欄位相同的資料類型。

傳回值

對於日期欄輸入,包含單欄日期值的資料表。
對於行事曆輸入,包含所有主要標記欄和所有時間相關欄的表格。

言論

  • 在最常見的使用案例中,dates 是標示日期數據表之日期數據行的參考。

  • StartDate , BLANK則 StartDate 是該欄中最早的 dates 值。 對日曆來說,是標記為「日」的欄位中第一個值。

  • EndDate , BLANK則 EndDate 是該欄中 dates 最新的值。 對日曆來說,是標記為日期欄位的最後一個值。

  • 作為 StartDateEndDate 使用的日期是包含的。 舉例來說,如果值是 StartDate 2019 年 7 月 1 日,那麼該日期會包含在回傳的表格中(前提是該日期在欄位 dates 中)。

  • 對於日期欄輸入,傳回的表格只能包含儲存在欄中的 Dates 日期。 舉例來說,如果欄位 Dates 從 2017 年 7 月 1 日開始,且 StartDate 值是 2016 年 7 月 1 日,則回傳的表格會從 2017 年 7 月 1 日開始。

  • 對於日曆輸入,如果輸入日期不在標記的日期欄位中,則視為 BLANK,並使用第一個或最後一個值。

  • 對於行事曆輸入,請使用與開始日期和結束日期的標記日期欄相同的資料類型和格式。 例如,如果欄使用 YYYY-Sn-Qn-Mnn-Wnn-Dnn 格式(例如「2014-S2-Q4-M11-W45-D03」),則開始日期和結束日期必須遵循相同的格式(例如「2015-S2-Q4-M11-W45-D03」)。 否則,行為未定義。

  • 在匯出數據行或數據列層級安全性 (RLS) 規則中使用時,不支援在 DirectQuery 模式中使用此函式。

下列 Sales 資料表量值定義會使用 DATESBETWEEN 函數來產生 至今 (LTD) 計算。 生活到最新狀態代表自時間開始以來一段時間的量值累積。

該公式使用函 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 日的日期範圍。

行事曆型時間智慧範例

下列 Sales 資料表量值定義會使用 DATESBETWEEN 函數來產生 至今 (LTD) 計算。 生活到最新狀態代表自時間開始以來一段時間的量值累積。

該公式使用函 MAX 數。 此函式會傳回篩選內容中的最大日期索引鍵。 因此,DATESBETWEEN 函式會傳回從最早日期到報告最新日期的日期數據表。 我們以 DateKey 為例,說明「Day」類別可以標註非日期類型的欄位。

Customers LTD =
CALCULATE (
    DISTINCTCOUNT ( Sales[CustomerKey] ),
    DATESBETWEEN ( FiscalCalendar, BLANK (), MAX ( 'Date'[DateKey] ) )
)