計算欄位讓你能夠將新資料加入 Power Pivot 資料模型中的資料表。 你不是直接貼上或匯入欄位,而是建立一個資料 分析表達式 (DAX) 公式來定義欄位值。
例如,如果你需要在 factSales 表格的每一列中加入銷售利潤值。 透過新增計算欄位,並使用公式 =[SalesAmount]-[TotalCost]–[ReturnAmount],從 SalesAmount 欄位的每列減去 SalesAmount 欄位的值,即可計算出新值。 利潤欄位則可用於樞紐分析表、樞紐分析圖或 Power View 報告——就像其他欄位一樣。
此圖顯示出Power Pivot中計算出的欄位。
注意
雖然計算出的欄位和測度相似,因為各自依賴公式,但它們是不同的。 度量最常用於樞紐分析表或樞紐分析圖的 價值 區。 當你想將計算結果放在樞紐分析表的其他區域時,可以使用計算欄位,例如樞紐分析表中的欄位或列,或樞紐分析圖中的軸上。 欲了解更多衡量資訊,請參閱 《權力轉型中的衡量標準》。
理解計算欄位
計算欄位中的公式與你在 Excel 中建立的公式很像。 然而,你無法為表格中不同列建立不同的公式。 相反地,DAX 公式會自動套用到整欄。
當欄位包含公式時,會對每一列計算該值。 輸入公式後,結果會立即計算出欄位。 欄位值會視需要重新計算,例如底層資料刷新時。
你可以根據度量和其他計算欄位建立計算欄位。 舉例來說,你可以建立一個計算欄位,從文字串中提取一個數字,然後再用這個數字在另一個計算欄位中。
範例
你可以支援一個計算欄位,並將資料加入現有資料表。 例如,你可以選擇串接數值、執行加法、提取子字串,或比較其他欄位的數值。 要新增計算欄位,你應該至少已經在 Power Pivot 裡有一個表格。
請參考這個公式:
=EOMONTH ([起始日期],0])
利用 Contoso 範例資料,此公式可從升遷表中的 StartDate 欄位提取月份。 接著它會計算升遷表中每一列的月末值。 第二個參數指定 StartDate 月份前後的月份數;此時 0 表示同一個月。 例如,如果 StartDate 欄位的值是 6/1/2001,計算欄位的值則是 6/30/2001。
命名計算欄位
預設情況下,新的計算欄位會被加入到其他欄位的右側,欄位會自動被分配為 CalculatedColumn1、 CalculatedColumn2 等預設名稱。 建立欄位後,你可以根據需要重新排列和重新命名欄位。
對計算欄位的變更有一些限制:
- 每個欄位名稱在資料表中應該是唯一的。
- 避免使用同一工作簿中已用於度量的名稱。 雖然測度與計算欄位名稱相同,但若名稱不唯一,計算錯誤很容易發生。 為避免意外呼叫測度,引用欄位時務必使用完全限定的欄位參考。
- 在重新命名計算欄位時,也必須更新任何依賴現有欄位的公式。 除非你是手動更新模式,否則公式結果的更新會自動進行。 不過,這項行動可能需要一些時間。
- 有些字元無法用於欄位名稱或 Power Pivot 中其他物件名稱中。 欲了解更多資訊,請參閱 DAX 語法規範中的「命名要求」。
要重新命名或編輯已計算出的欄位:
|
|---|
變更資料型態
你可以像更改其他欄位的資料類型一樣,更改計算欄位的資料型態。 你不能做以下資料型別變更:從文字到十進位、從文字到整數、從文字到貨幣,以及從文字到日期。 你可以把文字改成布林值。
計算欄位的效能
計算出的欄位公式可能比用於測度的公式更耗費資源。 其中一個原因是計算出的欄位結果總是針對表格中的每一列計算,而測度則只計算樞紐分析表或樞紐分析圖中使用的儲存格。
例如,一個有百萬列的資料表,總會有一個計算出的欄位,包含百萬個結果,並對效能產生相應的影響。 然而,樞紐分析表通常透過套用列和欄標題來過濾資料。 這表示衡量僅針對樞紐分析表中每個儲存格中的子集資料進行計算。
公式會依賴於公式中的物件參考,例如其他欄位或用來評估值的表達式。 例如,一個基於另一欄的計算欄位,或包含帶有欄位參考的運算式,必須先評估另一欄。 預設情況下,自動刷新是啟用的。 所以要記得,公式依賴性會影響效能。
為避免建立計算欄位時的效能問題,請遵循以下指引:
- 與其建立包含多個複雜依賴關係的單一公式,不如分步驟建立公式,並將結果儲存在欄位中,這樣你才能驗證結果並評估效能變化。
- 資料的修改常常會導致計算欄位的更新。 你可以把重新計算模式設為手動來避免這種情況。 不過要注意,如果計算欄位有任何數值錯誤,該欄位會被停用,直到你重新整理並重新計算資料。
- 如果你更改或刪除了表格間的關聯,使用欄位的公式將失效。
- 如果你建立的公式包含循環或自我參照的依賴性,就會發生錯誤。
工作
欲了解更多關於計算欄位的操作資訊,請參閱 「建立計算欄位」。