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 模型使用。 若要取得模型,請參閱 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 日開始的日期值年份。