本文將探討在 Power Pivot 中為 計算 欄位與 度量 建立計算公式的基本原理。 如果你是 DAX 新手,務必參考 QuickStart:30 分鐘內學習 DAX 基礎。
公式基礎
Power Pivot 提供資料分析表達式 (DAX) ,用於在 Power Pivot 表格及 Excel 樞紐分析表中建立自訂計算。 DAX 包含部分 Excel 公式中使用的函式,以及設計用於關聯資料並執行動態聚合的額外函式。
以下是一些可用於計算欄位的基本公式:
| 公式 | 描述 |
|---|---|
| =TODAY() | 在欄位的每一列中插入今天的日期。 |
| =3 | 在欄位的每一列中插入值 3。 |
| =[第1欄] + [第2欄] | 將數值相加於 [Column1] 與 [Column2] 的同一列,並將結果置於計算欄位的同一列。 |
你可以像在 Microsoft Excel 裡建立公式一樣,為計算欄位建立 Power Pivot 公式。
建立公式時請使用以下步驟:
- 每個公式必須以等號開頭。
- 你可以輸入或選擇函式名稱,或輸入表達式。
- 開始輸入你想要的函式或名稱的前幾個字母,自動補全會顯示出可用的函式、表格和欄位清單。 按 TAB 鍵即可將自動補全清單中的項目加入公式中。
- 點擊 Fx 按鈕可顯示可用功能清單。 要從下拉選單中選擇函式,請使用箭頭鍵將項目高亮,然後點擊 確定 將函式加入公式。
- 可透過下拉選單的可能資料表與欄位,或輸入數值或其他函式來提供函式參數。
- 檢查語法錯誤:確保所有括號都已關閉,欄位、表格和值的引用也正確。
- 按下 ENTER 接受公式。
注意
在計算過的欄位中,一旦你接受該公式,欄位就會被填入數值。 在小節中,按下 ENTER 鍵即可保存小節定義。
創造一個簡單的公式
| 用簡單公式建立計算欄位 銷售日期子類別產品銷售數量 2009年1月5日配件 攜帶盒254995681/5/2009配件迷你電池充電器1099.56441/5/2009 DigitalSlim Digital6512444/2009/6/2009 配件 長焦轉換鏡頭 1662.5181/6/2009 配件三腳架938.34181/6/2009配件 USB 線1230.2526
|
|---|
使用自動完成的技巧
- 你可以在已有公式中途使用公式自動補全,並搭配巢狀函式。 插入點前的文字用於下拉列表中的值,插入點之後的所有文字保持不變。
- Power Pivot 不會新增函式的結尾括號,也不會自動匹配括號。 你必須確保每個函式在語法上正確,否則無法儲存或使用該公式。 Power Pivot 會標示括號,這讓你更容易檢查括號是否正確關閉。
處理表格與欄位
Power Pivot 表格外觀類似 Excel 表格,但在資料與公式的運作方式上有所不同:
- Power Pivot 中的公式僅適用於表格和欄位,無法處理單一儲存格、範圍參考或陣列。
- 公式可以利用關係來從相關資料表取得數值。 被檢索的值總是與當前列值相關。
- 你不能把 Power Pivot 公式貼到 Excel 工作表裡,反之亦然。
- 你不能像 Excel 工作表那樣,出現不規則或「零散」的資料。 表格中的每一列必須包含相同數量的欄位。 不過,有些欄位的值可能會是空的。 Excel 資料表和 Power Pivot 的資料表不能互換,但你可以連結到 Power Pivot 的 Excel 資料表,然後把 Excel 資料貼到 Power Pivot。 欲了解更多資訊,請參閱 使用 linked table 將工作表資料加入資料模型 ,以及 在 Power Pivot 中複製並貼上資料模型資料列。
公式與表達式中對表格與欄位的指涉
你可以用任何表格和欄位名稱來參考。 例如,以下公式說明如何使用全限定名稱來指涉兩個表格的欄位:
=SUM (『新銷售額』[金額]) + SUM (『過去銷售額』[金額])
當公式被評估時,Power Pivot 會先檢查一般語法,然後檢查你提供的欄位和表格名稱,與當前上下文中可能的欄位和表格進行比對。 如果名稱不清楚,或找不到欄位或表格,錯誤) 的儲存格中,公式會 (#ERROR 字串而非資料值。 欲了解更多關於資料表、欄位及其他物件命名需求的資訊,請參閱「Power Pivot 的 DAX 語法規範中的命名要求。
注意
情境是 Power Pivot 資料模型的重要功能,讓你能建立動態公式。 情境由資料模型中的資料表、資料表間的關係以及已套用的篩選條件決定。 欲了解更多資訊,請參閱 DAX 公式中的情境。
表格關係
表格可以相互關聯到其他表格。 透過建立關聯,你能在另一個表格中查找資料,並利用相關值進行複雜計算。 例如,你可以用計算欄位查詢所有與當前經銷商相關的運送紀錄,然後將每個經銷商的運費加總。 這個效果就像一個參數化的查詢:你可以為目前表格中的每一列計算不同的總和。
許多 DAX 函式要求資料表之間或多個資料表之間存在關係,才能找到你參考的欄位並回傳合理的結果。 其他函數則會嘗試識別該關係;不過,為了達到最佳效果,你應該盡可能建立關係。
使用樞紐分析表時,特別重要的是要連結樞紐分析表中所有使用的資料表,這樣摘要資料才能正確計算。 欲了解更多資訊,請參閱 「在樞紐分析表中處理關係」。
公式錯誤故障排除
如果你在定義計算欄位時遇到錯誤,公式可能包含語法錯誤或語意錯誤。
句法錯誤是最容易解決的。 它們通常包含缺少括號或逗號。 如需個別函式語法的協助,請參閱 DAX 函式參考。
另一種錯誤發生在語法正確,但所引用的值或欄位在公式上下文中不合邏輯時。 此類語意錯誤可能由以下任一問題引起:
- 此公式指的是不存在的欄位、表格或函式。
- 公式看似正確,但當 Power Pivot 取得資料時發現型別不匹配,並產生錯誤。
- 該公式會傳遞錯誤數量或參數類型給函數。
- 該公式指的是另一欄有錯誤,因此其值無效。
- 該公式指的是尚未處理的欄位。 如果你把工作簿改成手動模式,做了修改,卻從未刷新資料或更新計算,可能會發生這種情況。
在前四個案例中,DAX 會標記包含無效公式的整個欄位。 在最後一種情況下,DAX 會將欄位變灰,表示該欄位處於未處理狀態。