Applies ToMicrosoft 365 Excel Excel 2024 Excel 2021 Excel 2019 Excel 2016

DAX) (數據分析表達式具有 35 個專門用來匯總及比較一段時間數據的函數。 與 DAX 的日期和時間函數不同,時間智慧函數在 Excel 中並沒有類似的函數。 這是因為時間智慧函數會根據您在數據透視表和 Power View 視覺效果中選取的上下文而持續變更的數據運作。

若要使用時間智慧函數,您必須在數據模型中包含日期數據表。 日期數據表必須包含一個數據行,其中包含您數據中每個年度每天的一列。 雖然您可以將此欄命名為您喜歡) ,但會被視為 [日期] 欄 (。 許多時間智慧函數都需要日期數據行,才能根據您在報表中選取為字段的日期來計算。 例如,如果您有使用 CLOSINGBALANCEQTR 函數來計算結帳季度餘額的量值,為了讓 Power Pivot 知道該季的結束時間確實是,它必須參照日期數據表中的日期數據行,以瞭解該季的開始和結束時間。 若要深入瞭解日期數據表,請參閱 瞭解並在 Excel 的 Power Pivot 中建立日期數據表

函數

傳回單一日期的函數

此類別中的函數會傳回單一日期。 然後,該結果就可以用來做為其他函數的自變數。

此類別的前兩個函數會傳回目前內容中Date_Column的第一個或最後一個日期。 當您想要尋找交易特定類型的第一個或最後一個日期時,這個選項非常實用。 這些函數只需要一個自變數,即日期數據表中日期數據行的名稱。

此類別中的下兩個函數會尋找第一個或最後一個日期 (或任何其他數據行值,以及表達式具有非空白值的) 。 最常用於庫存等情況下,您想要取得最後一個庫存量,而且您不知道上次的庫存時間。

再傳回單一日期的六個函數,就是傳回計算目前上下文中一個月、一季或一年的第一個或最後一個日期的函數。

傳回日期數據表的函數

有十六種時間智慧函數可傳回日期數據表。 這些函數通常會做為 CALCULATE 函數 的 SetFilter 自變數使用。 就像 DAX 中的所有時間智慧函數一樣,每個函數都會使用日期數據行做為其自變數之一。

此類別的前八個函數是從目前上下文中的日期數據行開始。 例如,如果在數據透視表中使用量值,欄卷標或列卷標可能有一個月或一年。 淨效果是指篩選日期列,只包含目前內容的日期。 從目前內容開始,這八個函數接著會計算前 (或後) 日、月、季或年份,並以單一數據行數據表的形式傳回這些日期。 「上一個」函數會從目前內容中的第一個日期往後運作,而「下一個」函數會從目前上下文中的最後一個日期往後移動。

此類別中的接下來四個函數是類似的,但除了計算前一個 (或下一個) 期間以外,他們計算的是「月份到日期」 (或四分之一到日期,或是每年到日期,或是前一年的相同期間) 的日期集合。 這些函數都會使用目前上下文中的最後一個日期來執行計算。 請注意,SAMEPERIODLASTYEAR 要求目前的上下文包含一組連續的日期。 如果目前的內容不是一組連續的日期,則 SAMEPERIODLASTYEAR 會傳回錯誤。

此類別中的最後四個函數比較複雜,而且功能也更強大一些。 這些函數是用來從目前內容中的一組日期,改為一組新的日期。

  • DATEADD (Date_Column、Number_of_Intervals、Interval)

  • DATESBETWEEN (Date_Column、Start_Date、End_Date)

  • DATESINPERIOD (Date_Column、Start_Date、Number_of_Intervals、Interval)

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

  • 返回 兩年

  • 返回 一個月

  • 往前移四季

  • 返回 14 天

  • 向前移動 28 天

在每種情況下,您只需要指定要換班的間隔時間,以及要換班的間隔數目。 正區間會在時間內向前移動,而負區間會回到時間。 interval 本身是由 DAY、MONTH、QUARTER 或 YEAR 的關鍵詞所指定。 這些關鍵詞不是字串,因此不應以引弧括住。

一段時間內評估表達式的函數

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

= TOTALMTD (expression, Date_Column [, SetFilter])

與以下完全相同:

= CALCULATE (expression, DATESMTD (Date_Column) [, SetFilter])

不過,當這些時間智慧函數符合需要解決的問題時,使用這些時間智慧函數會比較容易:

  • TOTALMTD (expression, Date_Column [, SetFilter])

  • TOTALQTD (expression, Date_Column [, SetFilter])

  • TOTALYTD (Expression, Date_Column [, SetFilter] [,YE_Date]) *

此外,在這個類別中,還有一組函數可計算開啟與結案餘額。 在這些特定函數中,您應該瞭解某些概念。 首先,您可能會認為明顯而言,任何期間的開啟餘額都與上一期的結帳餘額相同。 結帳餘額包含期間結束的所有數據,而開啟餘額不包含目前期間內的任何數據。

這些函數一律會傳回針對特定時間點評估的表達式值。 我們關注的時間點一律是行事曆期間中最後一個可能的日期值。 開啟餘額是根據上一個期間的最後一個日期,而結帳餘額則是根據目前期間的最後一個日期。 目前期間一律由目前日期內容中的最後一個日期決定。

其他資源

文章: 瞭解並建立 Excel 中的 Power Pivot 日期數據表

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

範例: 使用 Excel 中的 Microsoft PowerPivot 建立損益數據模型和分析

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。