計算欄中可讓您在表格式模型中新增新數據至模型。 您不需要將值貼上或匯入數據行,而是建立定義數據行數據列層級值的 DAX 公式。 然後,計算結果列就可以用於報表、數據透視表或樞紐分析圖,就像任何其他數據行一樣。
備註
DirectQuery 模式中的表格式模型不支援計算欄位。 如需詳細資訊,請參閱 DirectQuery 模式(SSAS 表格式)。
本主題中的章節:
優點
匯出數據行中的公式與 Excel 中的公式非常類似。 不過,不同於 Excel,您無法為數據表中的不同數據列建立不同的公式;相反地,DAX 公式會自動套用至整個數據行。
當數據行包含公式時,會計算每個數據列的值。 當您輸入有效的公式時,會針對數據行計算結果。 然後,數據行值會視需要重新計算,例如重新整理基礎數據時。
您可以建立以量值和其他計算欄位為基礎的計算欄位。 例如,您可以建立一個匯出數據行,從文字字串中擷取數位,然後在另一個計算結果列中使用該數位。
計算列是基於您已經在現有表格中的數據,或是利用 DAX 公式建立的。 例如,您可以選擇串連值、執行加法、擷取子字串,或比較其他欄位中的值。 若要新增計算結果列,您必須在模型中至少有一個數據表。
這個例子展示了計算欄中的簡單公式:
=EOMONTH([StartDate],0])
此公式會從 StartDate 數據行擷取月份。 接著,它會計算數據表中每個數據行的月底值。 第二個參數會指定 StartDate 中月份之前或之後的月份數;在此情況下,0 表示同一個月。 例如,如果 StartDate 資料行中的值為 6/1/2001,匯出數據行中的值將會是 6/30/2001。
命名計算列
根據預設,新的導出數據行會新增至數據表中其他數據行的右邊,而且數據行會自動指派 CalculatedColumn1、CalculatedColumn2 的預設名稱等等。 您也可以以滑鼠右鍵按兩下資料行,然後按下 [插入資料行] 在兩個現有資料行之間建立新的資料行。 您可以按下和拖曳來重新排列相同數據表中的數據行,而且您可以在建立數據行之後重新命名數據行;不過,您應該注意下列計算結果列變更的限制:
每個數據行名稱在數據表內都必須是唯一的。
請避免使用已在相同模型中使用過的度量名稱。 雖然度量值和計算欄可能會有相同的名稱,但如果名稱不唯一,則可能會發生計算錯誤。 為了避免不小心叫用度量值,參考欄位時一律使用完整的欄位參考。
當您重新命名計算結果列時,任何依賴數據行的公式都必須手動更新。 除非您處於手動更新模式,否則會自動更新公式的結果。 不過,這項作業可能需要一些時間。
某些字元無法在數據行的名稱內使用。 如需詳細資訊,請參閱 PowerPivot 的 DAX 語法規格中的「命名需求」。
計算結果列的效能
計算列的公式可能比度量值所使用的公式更需要大量資源。 其中一個原因是,計算列的結果總是針對數據表中的每一列計算,而量值則只會針對報表、數據透視表或樞紐分析圖中所用篩選定義的單元格進行計算。 例如,具有百萬個資料列的資料表總會有百萬個結果的計算欄位,以及相應的效能影響。 不過,數據透視表通常會套用數據列和數據行標題來篩選數據;因此,量值只會針對數據透視表中每個數據格中的數據子集進行計算。
公式具有依存關係,與公式中所參考的物件相關,例如用於計算值的其他欄位或運算式。 例如,以另一個欄為基礎的計算欄,或者包含具有欄參考的表達式的計算,必須在其他欄被評估後才能進行評估。 根據預設,會在活頁簿中啟用自動重新整理;因此,當值更新並重新整理公式時,所有這類相依性都可能會影響效能。
若要避免在建立匯出數據行時發生效能問題,請遵循下列指導方針:
與其建立包含許多複雜相依性的單一公式,請在步驟中建立公式,並將結果儲存至數據行,以便您可以驗證結果並評估效能。
修改數據通常需要重新計算計算欄位。 您可以將重新計算模式設定為手動來防止此狀況;不過,如果計算結果列中的任何值不正確,數據行將會呈現灰色,直到您重新整理並重新計算數據為止。
如果您變更或刪除資料表之間的關聯性,在這些數據表中使用數據行的公式將會變成無效。
如果您建立的公式包含迴圈或自我參考相依性,則會發生錯誤。
相關工作
| 主題 | 說明 |
|---|---|
| 建立計算資料行 (SSAS 表格) | 本主題中的工作描述如何將新的計算結果列新增至數據表。 |