DAX (的資料分析運算式) 35 個函數,專門用於匯總及比較一段時間的資料。 與 DAX 的日期和時間函數不同,Time-intelligence 函數在函數Excel。 這是因為時間智慧函數會處理持續變更的資料,這取決於您在樞紐分析表和 Power View 視覺效果中選取的上下文。

若要使用時間智慧函數,您必須在資料模型中包含日期資料表。 日期資料表必須包含一欄,資料中每年每一天都有一列。 此欄會視為日期欄 (雖然您可以以任何您喜歡的名稱命名) 。 許多時間智慧函數都需要日期欄,才能根據您選取為報表欄位的日期來計算。 例如,如果您有使用 CLOSINGBALANCEQTR 函數來計算完結季尾餘額的量值,Power Pivot 若要知道該季何時結束,則必須參照日期資料表中的日期欄,才能知道該季何時開始及結束。 若要深入瞭解日期資料表,請看一下瞭解及在Power Pivot中建立Excel。

函數

返回單一日期的函數

此類別中的函數會返回單一日期。 然後,結果可做為其他函數的引數。

此類別中的前兩個函數會以目前上下文Date_Column中第一個或最後一個日期。 當您想要尋找您擁有特定類型交易的第一個或最後一個日期時,這項功能會很有用。 這些函數只會使用一個引數,即日期資料表中的日期欄名稱。

此類別中的後兩個函數會找出第一個或最後一個 (或任何其他資料行值,) 運算式有非空白值。 這是最常見的使用方式,例如庫存,您想要取得最後一個庫存量,而您不知道最後一個庫存何時被取用。

還有六個函數會返回單一日期,這些函數會根據計算目前上下文,將月份、季或年的第一個或最後一個日期返回。

會返回日期表的函數

有 16 個時間智慧函數會返回日期表。 這些函數通常會用來做為 CALCULATE 函數的 SetFilter 引數 。 就像 DAX 中所有時間智慧函數一樣,每個函數會以日期欄做為引數之一。

此類別中的前八個函數會以目前上下文的日期欄開始。 例如,如果在樞紐分析表中使用量值,則欄標籤或列標籤上可能有一個月或一年。 淨效果是篩選日期欄,只包含目前上下文的日期。 從目前的上下文開始,這八個函數接著會計算上一個 (或下一個) 天、月、季或年,然後以單一資料行資料表的形式返回這些日期。 「上一個」函數會從目前上下文的第一個日期往後工作,而「下一個」函數會從目前上下文的最後一個日期向前移動。

此類別中接下來四個函數是相似的,但除了計算上一個 (或下一個) 期間外,這些函數會計算 "月到日期" (或季至日期、年至今或上一年) 的同一期間中的一組日期。 這些函數都使用目前環境中的最後一個日期來執行計算。 請注意,SAMEPERIODLASTYEAR 要求目前的上下文包含一組連續的日期。 如果目前的上下文不是連續的日期集,則 SAMEPERIODLASTYEAR 會返回錯誤。

此類別中的最後四個函數有點複雜,而且功能也比較強大。 這些函數是用來從目前上下文的日期集移轉至新的一組日期。

  • DATEADD (Date_Column、Number_of_Intervals、間隔)

  • DATESBETWEEN (Date_Column, Start_Date, End_Date)

  • DATESINPERIOD (Date_Column、Start_Date、Number_of_Intervals、間隔)

DATEBETWEEN 會計算指定開始日期和結束日期之間的一組日期。 其餘的三個函數會從目前上下文移轉一些時間間隔。 間隔可以是日、月、季或年。 這些函數可輕鬆地將計算時間間隔由下列任一項移動:

  • 回到兩年

  • 返回一個月

  • 往前三季

  • 返回 14 天

  • 前轉 28 天

在每一種情況下,您只需要指定哪一個間隔,以及要移轉的間隔數。 正間隔會以時間向前移動,而負間隔會往後移。 間隔本身是由 DAY、MONTH、QUARTER 或 YEAR 的關鍵字所指定。 這些關鍵字不是字串,因此不應使用引號。

評估一段時程表達式的函數

此函數類別會評估指定時段的運算式。 您可以使用 CALCULATE 和其他時間智慧函數來完成相同的工作。 例如,

= TOTALMTD (運算式,Date_Column [, SetFilter])

與以下完全相同:

= CALCULATE (運算式,DATESMTD (Date_Column) [, SetFilter])

不過,當這些時間智慧函數非常適合需要解決的問題時,更容易使用這些時間智慧函數:

  • TOTALMTD (運算式,Date_Column [, SetFilter])

  • TOTALQTD (運算式,Date_Column [, SetFilter])

  • TOTALYTD (運算式,Date_Column [, SetFilter] [,YE_Date]) *

此外,此類別中還有一組函數,可計算開啟和結算餘額。 您應該使用這些特定函數瞭解某些概念。 首先,您可能認為顯而易見,任何期間的期初餘額都和上一期的期末餘額相同。 期末餘額包含期間結束時的所有資料,而期首餘額不包含目前期間內的任何資料。

這些函數一直會返回評估特定時間點之運算式的值。 我們關心的時間點一直是一個日曆週期中最後一個可能的日期值。 期首餘額是以上一個期間的最後一天為基礎,而期末餘額則以目前期間的最後一天為基礎。 目前期間一直由目前日期上下文的最後一個日期決定。

其他資源

文章:瞭解及建立 Power Pivot中的日期資料表Excel

參考:Office.com上的 DAX 函數參照

範例:使用 Microsoft PowerPivot中的損益資料Excel

需要更多協助?

擴展您的技能
探索訓練

這項資訊有幫助嗎?

您對語言品質的滿意度如何?
以下何者是您會在意的事項?

感謝您的意見反應!

×