Sign in with Microsoft
Sign in or create an account.
Hello,
Select a different account.
You have multiple accounts
Choose the account you want to sign in with.

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 建立損益數據模型和分析

Need more help?

Want more options?

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

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

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?
By pressing submit, your feedback will be used to improve Microsoft products and services. Your IT admin will be able to collect this data. Privacy Statement.

Thank you for your feedback!

×