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 公式。

  • 執行複雜的計算

  • 使用文字和日期

  • 條件值和錯誤測試

  • 使用時間智慧

  • 排名和比較值

本文內容

開始使用

請造訪 DAX 資源中心 Wiki ,您可以在這裡找到各種關於 DAX 的資訊,包括由業界頂尖專業人員和 Microsoft 提供的部落格、範例、白皮書和影片。

案例:執行複雜計算

DAX 公式可以執行複雜的計算,包括自定義匯總、篩選及使用條件值。 本節提供如何開始使用自定義計算的範例。

Create 數據透視表的自定義計算

CALCULATE 和 CALCULATETABLE 是功能強大且彈性的函數,可用於定義導出字段。 這些函數可讓您變更執行計算的上下文。 您也可以自定義要執行的匯總或數學運算類型。 如需範例,請參閱下列主題。

將篩選套用至公式

在 DAX 函數採用表格做為自變數的大部分位置,您通常可以改用篩選的數據表,方法是改用 FILTER 函數而非數據表名稱,或將篩選表達式指定為函數自變數之一。 下列主題提供如何建立篩選以及篩選如何影響公式結果的範例。 如需詳細資訊,請參閱 篩選 DAX 公式中的數據

FILTER 函數可讓您使用表達式指定篩選準則,而其他函數則是特別設計來篩選空白值。

選擇性地移除篩選以建立動態比例

透過在公式中建立動態篩選,您可以輕鬆回答如下所示的問題:

  • 目前產品銷售額占當年總銷售額的貢獻為何?

  • 與其他部門相比,這個部門對所有營運年度的總利潤貢獻多少?

您在數據透視表中使用的公式可能會受到數據透視表上下文的影響,但您可以透過新增或移除篩選來選擇性地變更上下文。 ALL 主題中的範例會示範如何執行此動作。 若要找出特定經銷商的銷售比例與所有經銷商的銷售比例,您必須建立一個量值,以計算目前上下文的值,除以 ALL 上下文的值。

ALLEXCEPT 主題提供範例,說明如何選擇性地清除公式上的篩選。 這兩個範例都會根據數據透視表的設計,逐步引導您了解結果的變更方式。

如需如何計算比例和百分比的其他範例,請參閱下列主題:

使用外部迴圈的值

除了在計算中使用目前上下文的值之外,DAX 還可以使用前一個迴圈的值來建立一組相關的計算。 下列主題提供如何建立參照外部迴圈中值的公式的逐步解說。 EARLIER 函數最多支援兩個巢狀循環層級。

若要深入瞭解列上下文和相關表格,以及如何在公式中使用此概念,請參閱 DAX 公式中的上下文

案例:使用文字和日期

本節提供 DAX 參考主題的連結,其中包含使用文字、擷取及撰寫日期和時間值,或根據條件建立值的常見案例範例。

串連 Create 索引鍵欄

Power Pivot 不允許複合索引鍵;因此,如果您的數據源中有複合索引鍵,您可能需要將它們合併成單一索引鍵欄。 下列主題提供一個範例,說明如何根據複合索引鍵建立計算結果列。

根據從文字日期擷取的日期部分撰寫日期

Power Pivot 使用 SQL Server 日期/時間數據類型來處理日期;因此,如果您的外部數據包含格式不同的日期,例如,如果日期是以 Power Pivot 數據引擎無法辨識的地區日期格式撰寫,或是您的數據使用整數替代索引鍵,您可能需要使用 DAX 公式來擷取日期部分,然後將部分撰寫為有效的日期/時間表示。

例如,如果您有一欄日期已經以整數表示,然後匯入為文字字串,您可以使用下列公式將字串轉換為日期/時間值:

=DATE (RIGHT ([Value1],4) ,LEFT ([Value1],2) ,MID ([Value1],2) )

Value1

結果

01032009

1/3/2009

12132008

12/13/2008

06252007

6/25/2007

下列主題提供用於擷取及撰寫日期之函數的詳細資訊。

定義自訂日期或數位格式

如果您的資料包含不是以標準 Windows 文字格式之一表示的日期或數位,您可以定義自訂格式以確保正確處理值。 這些格式會在將值轉換為字串或從字串轉換時使用。 下列主題也會提供可處理日期和數位之預先定義格式的詳細清單。

使用公式變更數據類型

在 Power Pivot中,輸出的數據類型是由來源欄決定,而且您無法明確指定結果的數據類型,因為最佳數據類型是由 Power Pivot決定。 不過,您可以使用 Power Pivot 執行的隱含數據類型轉換來操作輸出數據類型。 

  • 若要將日期或數位字串轉換成數位,請乘以 1.0。 例如,下列公式會計算目前日期減 3 天,然後輸出對應的整數值。

    = (TODAY () -3) *1.0

  • 若要將日期、數位或貨幣值轉換為字串,請使用空字串串連值。 例如,下列公式會以字串的形式傳回今天的日期。

    =“”& TODAY ()

下列函數也可以用來確保傳回特定的數據類型:

將實數轉換成整數

案例:條件式值和錯誤測試

和 Excel 一樣,DAX 的函數可讓您測試數據中的值,並根據條件傳回不同的值。 例如,您可以建立將經銷商標示為[ 慣用 ] 或 [ ] 的計算結果列,視每年銷售量而定。 測試值的函數也很適合用來檢查值的範圍或類型,以避免意外的數據錯誤破壞計算。

根據條件 Create 值

您可以使用巢狀 IF 條件來測試值,並條件化產生新的值。 下列主題包含一些條件式處理和條件值的簡單範例:

測試公式中的錯誤

不同於 Excel,您無法在計算結果列的一列中有有效的值,在另一列中不能有無效的值。 也就是說,如果 Power Pivot 欄的任何部分發生錯誤,整個欄都會加上錯誤標幟,因此您必須一律更正導致無效值的公式錯誤。

例如,如果您建立的公式除以零,您可能會得到無限結果或錯誤。 如果函數在預期數值時遇到空白值,部分公式也會失敗。 當您正在開發數據模型時,最好允許顯示錯誤,以便按兩下郵件並疑難解答問題。 不過,發佈活頁簿時,您應該納入錯誤處理,以防止非預期的值造成計算失敗。

為了避免傳回計算結果列中的錯誤,您可以使用邏輯和資訊函數的組合來測試錯誤,並一律傳回有效的值。 下列主題提供一些簡單的範例,說明如何在DAX中執行此動作:

案例:使用時間智慧

DAX 時間智慧函數包含可協助您從數據擷取日期或日期範圍的函數。 然後,您可以使用這些日期或日期範圍來計算類似期間的值。 時間智慧函數也包含可搭配標準日期間隔使用的函數,可讓您比較月、年或季的值。 您也可以建立一個公式,比較指定期間中第一個和最後一個日期的值。

如需所有時間智慧函數的清單,請參閱 時間智慧函數 (DAX)。 如需如何在 Power Pivot 分析中有效使用日期和時間的秘訣,請參閱 Power Pivot 中的日期

計算累計銷售額

下列主題包含如何計算結帳和開啟餘額的範例。 這些範例可讓您建立跨天、月、季或年等不同間隔的執行餘額。

比較一段時間的值

下列主題包含如何比較不同時段的總和的範例。 DAX 支援的預設時段為月、季和年。

計算自定義日期範圍的值

請參閱下列主題以瞭解如何擷取自定義日期範圍的範例,例如促銷活動開始后的前15天。

如果您使用時間智慧函數來擷取一組自定義的日期,您可以使用該日期集做為執行計算之函數的輸入,以建立跨時段的自定義匯總。 如需如何執行此動作的範例,請參閱下列主題:

  • PARALLELPERIOD 函數

    附註: 如果您不需要指定自定義的日期範圍,但使用標準的會計單位,例如月、季或年,建議您使用為此目的所設計的時間智慧函數來執行計算,例如 TOTALQTD、TOTALMTD、TOTALQTD 等。

案例:排名和比較值

若只要顯示欄或數據透視表中的前 n 個項目數,您有幾個選項:

  • 您可以使用 Excel 2010 中的功能來建立 [頂端] 篩選。 您也可以在數據透視表中選取一些頂端或底部的值。 本節的第一部分說明如何篩選數據透視表中前 10 個專案。 如需詳細資訊,請參閱 Excel 檔。

  • 您可以建立公式,以動態方式為值排名,然後根據排名值進行篩選,或使用排名值做為交叉分析篩選器。 本節的第二部分說明如何建立此公式,然後在交叉分析篩選器中使用該排名。

每種方法都有優缺點。

  • Excel 頂端篩選很容易使用,但篩選僅供顯示之用。 如果數據透視表的基礎數據變更,您必須手動重新整理數據透視表才能看到變更。 如果您需要動態處理排名,可以使用DAX建立公式,將值與欄中的其他值進行比較。

  • DAX 公式更強大;此外,您可以將排名值新增至交叉分析篩選器,只要按下交叉分析篩選器即可變更顯示的頂端值數目。 不過,計算的成本高,而且這個方法可能不適合具有許多數據列的數據表。

僅顯示數據透視表中的前十個專案

顯示數據透視表中頂端或底部的值

  1. 在數據透視表中,按兩下 [ 列卷標 ] 標題中的向下箭號。

  2. 選取 [值篩選> 前 10 名

  3. 在 [ 前 10 個篩選] <欄名稱> ] 對話框中,選擇要排名的欄和值的數目,如下所示:

    1. 取 [上 ],查看含有最高值的單元格或 [ 下] 以查看具有最低值的單元格。

    2. 輸入您要查看的頂端或底部值數目。 預設值為 10。

    3. 選取您要顯示值的方式:

名稱

說明

項目

選取此選項可篩選資料透視表,以依其值只顯示頂端或底部項目的清單。

百分比

選取此選項可篩選資料透視表,只顯示加總到指定百分比的專案。

Sum

選取此選項以顯示頂端或底部專案的值總和。

  1. 選取包含您要排名之值的欄。

  2. 按一下 [確定]。

使用公式動態排序專案

下列主題包含如何使用 DAX 建立儲存在計算結果列中的排名的範例。 由於 DAX 公式是以動態方式計算,因此即使基礎數據已變更,您隨時都可以確定排名正確無誤。 此外,由於公式是在計算結果列中使用,因此您可以使用交叉分析篩選器中的排名,然後選取前 5 名、前 10 名或甚至前 100 個值。

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!

×