共用方式為


建立計算的公式

本主題描述在 PowerPivot for Excel 中建置公式的基本概念、示範建立導出資料行的範例,並說明如何使用資料表。本主題包括下列章節:

  • 量值和導出資料行

  • 公式基本概念

  • 使用資料表和資料行

  • 疑難排解公式中的錯誤

在閱讀過本主題之後,請參閱下列主題以獲得詳細資訊:

量值和導出資料行

在 PowerPivot 活頁簿中,您可以對「導出資料行」(Calculated Column) 和「量值」(Measure) 使用公式。

  • 導出資料行是由您加入現有 PowerPivot 資料表的資料行。您不必貼上或匯入資料行的值,而可以建立定義資料行值的 Data Analysis Expressions (DAX) 公式。如果您將 PowerPivot 資料表加入樞紐分析表 (或樞紐分析圖) 中,便能以如同使用任何其他資料行的方式使用導出資料行。

  • 量值是特別為了在使用 PowerPivot 資料的樞紐分析表 (或樞紐分析圖) 中使用而建立的公式。量值可以用標準彙總函式 (例如 COUNT 或 SUM) 做為基礎,或者,您也可以使用 DAX 自行定義公式。您應在樞紐分析表的 [值] 區域使用量值。如果想要將計算的結果放在樞紐分析表的其他區域,請改用導出資料行。

公式基本概念

PowerPivot for Excel 提供 DAX 這個新的公式語言以建立自訂計算。DAX 讓使用者得以在 PowerPivot 資料表和 Excel 樞紐分析表中定義自訂計算。DAX 包括使用於 Excel 公式中的一些函數,以及設計來處理關聯式資料及執行動態彙總的其他函數。如需詳細資訊,請參閱<Data Analysis Expressions (DAX) 概觀>。

公式可能會很複雜,但下表所示的基本公式可供您在 PowerPivot 導出資料行中使用。

公式

描述

=TODAY()

在資料行的每個資料列中插入今天的日期。

=3

在資料行的每個資料列中,插入 3 這個值。

=[Column1] + [Column2]

將 [Column1] 和 [Column2] 同一資料列中的值相加,並將結果放在導出資料行的相同資料列中。

導出資料行建置 PowerPivot 公式的方法與您在 Microsoft Excel 中建置公式很雷同。您可以使用下列其中一個對話方塊來建置量值的公式:量值設定對話方塊 (標準彙總)量值設定對話方塊 (自訂彙總)

當您要建置公式時,請使用下列步驟:

  1. 每個公式開頭都必須為等號。

  2. 您可以輸入或選取函數名稱,或輸入運算式。

  3. 開始輸入所需之函數或名稱的前幾個字母,「自動完成」就會顯示可用函數、資料表和資料行的清單。按 TAB 鍵從「自動完成」清單將項目加入至公式。

  4. 按一下 Fx 按鈕來顯示可用函數的清單。若要從下拉式清單中選取函數,使用方向鍵反白顯示該項目,然後按一下 [確定],就可以將該函數加入至公式中。

  5. 從可能之資料表和資料行的下拉式清單中選取引數,或輸入值來提供函數的引數。

  6. 檢查語法錯誤:請確認所有括號都有成對,而且資料行、資料表和值的參考都正確。

  7. 按下 ENTER 鍵接受公式。

    [!附註]

    在計算結果欄中,當您接受公式之後,資料行便會立即填滿值。在量值中,按下 ENTER 鍵便會儲存量值定義,而且若為新增的量值,PowerPivot 會自動將量值加入樞紐分析表的 [值] 區域。

建立簡單公式

以下範例示範如何根據下列資料,使用簡單公式建立導出資料行:

SalesDate

Subcategory

Product

Sales

Quantity

1/5/2009

Accessories

Carrying Case

254995

68

1/5/2009

Accessories

Mini Battery Charger

1099.56

44

1/5/2009

Digital

Slim Digital

6512

44

1/6/2009

Accessories

Telephoto Conversion Lens

1662.5

18

1/6/2009

Accessories

Tripod

938.34

18

1/6/2009

Accessories

USB Cable

1230.25

26

若要使用簡單公式建立導出資料行

  1. 從上述資料表選取並複製資料,包括資料表標題。

  2. 在 PowerPivot 視窗的 [主資料夾] 索引標籤上,按一下 [貼上]

  3. [貼上預覽] 對話方塊中,按一下 [確定]

  4. [設計] 索引標籤的 [資料行] 群組中,按一下 [加入]

  5. 在資料表上方的公式列中,輸入下列公式。

    =[Sales] / [Quantity]
  6. 按下 ENTER 鍵接受公式。

    導出資料行中的所有資料列會隨即填入值。

使用自動完成的秘訣

  • 您可以透過巢狀函數,在現有的公式中間使用「公式自動完成」功能。插入點前方的文字用於顯示下拉式清單中的值,而在插入點之後的所有文字則維持不變。

  • PowerPivot 不會加入函數的右括號,也不會自動比對括號。您必須確定每個函數的語法都正確,否則不能儲存或使用公式。PowerPivot 會醒目提示括號,讓您可以輕易檢查是否已適當加上右括號。

如需有關使用自動完成的詳細資訊,請參閱<建立導出資料行>和<建立量值>。

使用資料表和資料行

PowerPivot 資料表的外觀就像 Excel 資料表,但其搭配資料與公式使用的方式有所不同:

  • 公式只能搭配資料表和資料行運作,而不能搭配個別的資料格、範圍參考或陣列。

  • 公式可以使用關聯性從相關的資料表取得值。擷取的值永遠都會與目前的資料列值相關聯。

  • 您不能將 Data Analysis Expressions (DAX) 公式貼入 Excel 活頁簿,反之亦然。

  • 您不能像是在 Excel 工作表一樣,擁有不規則或「不完全」的資料,資料表中的每個資料列都必須包含相同數目的資料行。不過,在某些資料行中可以有空白值。Excel 資料表和 PowerPivot 資料表不能互換,但您可以從 PowerPivot 連結到 Excel 資料表,也可將 Excel 資料貼入 PowerPivot。如需詳細資訊,請參閱<使用 Excel 連結資料表加入資料>和<複製及貼上資料至 PowerPivot>。

在公式和運算式中參照資料表和資料行

您可以使用名稱來參照任何資料表和資料行。例如,下列公式說明如何使用「完整」(Fully Qualified) 名稱,參照兩個資料表的資料行:

=SUM('New Sales'[Amount]) + SUM('Past Sales'[Amount])

評估公式時,PowerPivot for Excel 會先檢查一般語法,然後對照目前內容中可能的資料行和資料表來檢查您提供的資料行和資料表名稱。如果名稱模稜兩可,或是找不到資料行或資料表,公式就會出現錯誤 (發生錯誤的資料格將顯示 #ERROR 字串而非資料值)。如需有關資料表、資料行及其他物件之命名需求的詳細資訊,請參閱<PowerPivot 的 DAX 語法規格>中的<命名需求>。

[!附註]

內容是 PowerPivot 活頁簿的重要功能,這個功能可讓您建置動態公式。內容是由活頁簿中的資料表、資料表之間的關聯性,以及已套用的任何篩選所決定。如需詳細資訊,請參閱<DAX 公式中的內容>。

資料表關聯性

資料表可以與其他資料表相關聯。藉由建立關聯性,您能夠查閱其他資料表中的資料,並使用相關聯的值來執行複雜的計算。例如,您可以使用導出資料行,查閱與目前轉售商相關的所有送貨記錄,然後加總各記錄的送貨成本。其效果就像是參數化的查詢:您可以針對目前資料表中的每個資料列計算出不同的總和。

許多 DAX 函數都需要在資料表之間,或是在多個資料表中存在關聯性,才能找到您所參考的資料行,並且傳合理的結果。其他函數會嘗試識別關聯性。不過,如需達成最佳的結果,您都應該盡可能多加建立關聯性。如需詳細資訊,請參閱下列主題:

使用樞紐分析表時,將樞紐分析表中使用的所有資料表連接尤其重要,這樣才能正確地計算摘要資料。如需詳細資訊,請參閱<使用樞紐分析表中的關聯性>。

疑難排解公式中的錯誤

如果您在定義導出資料行時出現錯誤,該公式可能包含「語法錯誤」(Syntactic Error) 或「語意錯誤」(Semantic Error)。

語法錯誤最容易解決。它們通常與遺漏括號或逗號有關。如需個別函數之語法的說明,請參閱<PowerPivot 的 DAX 函數參考>。

語法正確,但值或參考的資料行在公式的內容中沒有意義時,會發生其他類型的錯誤。這種語意錯誤可能是由下列任何問題所造成:

  • 公式參考不存在的資料行、資料表或函數。

  • 公式似乎正確,但是 PowerPivot 資料引擎擷取到它發現類型不符並引發錯誤的資料。

  • 公式傳遞給函數的參數個數或類型不正確。

  • 公式參考的另一個資料行有錯誤,因而其值無效。

  • 公式參考尚未經過處理的資料行。如果您將活頁簿變更為手動模式、進行變更,然後永遠不重新整理資料或更新計算,可能會發生這個情況。

在前四種情況下,DAX 會針對包含無效公式的整個資料行加上旗標。在最後一種情況下,DAX 會使資料行呈灰色,表示該資料行處於尚未處理的狀態。