導出資料行

本主題示範如何根據 DAX 範例活頁簿中的資料建立「導出資料行」(Calculated Column),並且包含關於在建置公式時使用「自動完成」的資訊。 如需公式的詳細資訊,請參閱<建置計算公式>。

了解導出資料行

導出資料行是由您加入現有 PowerPivot 資料表的資料行。 您不必貼上或匯入資料行的值,而可以建立定義資料行值的 DAX 公式。 導出資料行可以在樞紐分析表、樞紐分析圖或 Power View 報表中使用,就如同任何其他資料行一樣。

導出資料行中的公式與您在 Excel 中建立的公式非常類似。 然而與 Excel 不同的是,您不能為資料表中不同的資料列建立不同的公式,DAX 公式會自動套用到整個資料行。

當資料行包含公式時,會針對每個資料列計算其值。 在您一建立公式之後,便會隨即計算資料行的結果。 資料行值日後將視需要進行重新計算,例如當基礎資料重新整理之時。

您可以根據量值及其他導出資料行,建立導出資料行。 例如,您可以建立一個導出資料行,以便從文字字串中擷取數字,然後將該數字使用在另一個導出資料行中。

建立導出資料行

導出資料行依據的是您已加入至現有資料表中的資料。 例如,您可以選擇串連值、執行加法、擷取子字串,或比較其他欄位中的值。 若要加入導出資料行,您必須已至少將一個資料表加入 PowerPivot 活頁簿。

本範例示範如何使用「自動完成」建置用於新導出資料行中的簡單公式。 公式的內文如下:

=EOMONTH([StartDate],0])

此公式會從 DAX 範例活頁簿的 Promotion 資料表中,擷取 StartDate 資料行的月份。 接著再計算 Promotion 資料表中每個資料列的月底值。 第二個參數會指定在 StartDate 當月之前或之後的月數,本例為 0 即表示同一個月份。 例如,若 StartDate 資料行的值為 6/1/2001,則導出資料行的值將是 6/30/2001。

如需範例活頁簿的詳細資訊,請參閱<取得 PowerPivot 的範例資料>。

[!附註]

在 Windows Vista 和 Windows 7 中,PowerPivot 視窗中的功能在功能區中都有提供,本主題會對此加以說明。 在 Windows XP 中,功能都是從一組功能表使用的。 如果您是使用 Windows XP,而且想要了解功能表命令如何與功能區命令相關,請參閱<Windows XP 中的 PowerPivot UI>。

若要使用「自動完成」建立導出資料行

  1. 在 [PowerPivot] 視窗中,按一下包含 Promotion 資料表的索引標籤。 您可能需要按一下所顯示之索引標籤右邊的向下箭頭,才看得見 [Promotion] 索引標籤。

  2. 在 [PowerPivot] 視窗的 [設計] 索引標籤上,按一下 [資料行] 群組中的 [加入]

    [加入資料行] 將反白顯示於最右側空白資料行,而且游標會移到公式列。

  3. 輸入等號,然後按一下函數按鈕 (fx)。

  4. EOMONTH 是日期和時間函數,因此請從 [選取類別目錄] 下拉式清單中選取 [日期及時間]

    可從 [插入函數] 對話方塊取得的 DAX 函數會依類別目錄分組。 您可以選取 [全部] 來檢視可用函數的完整清單。

    • 按下 TAB 鍵可在函數類別目錄的下拉式清單、函數的下拉式清單,以及 [確定][取消] 按紐之間移動。

    • 按向上和向下鍵可以選取函數的類別目錄或個別的函數。

    • 當您選取每個函數時,PowerPivot 會顯示該函數的說明,包括必要與選用引數的描述與清單。

  5. [選取函數] 下拉式清單中,選取 EOMONTH,然後按一下 [確定]

    公式列會更新以顯示函數與左括號,而游標會自動放置在您將輸入下一個引數的位置:

    =EOMONTH( 

    公式列下方的工具提示會指出 EOMONTH 函數需要兩個引數,第一個是日期,而第二個是表示月份的數值。

  6. 輸入左方括號 [ 來顯示目前資料表中的資料行清單。

    提示:如果資料行位於其他資料表中,請輸入該資料行所屬資料表之名稱的前幾個字母,然後從清單中選取完整的資料行名稱。

    在此範例中,選取清單中的 [[StartDate]],然後按下 TAB 鍵。

    資料行名稱就會插入公式中,如下所示:

    =EOMONTH ([StartDate]
  7. 依序輸入逗號、值 0 以及右括號。

    最終的公式應如下所示:

    =EOMONTH([StartDate], 0)
  8. 按下 ENTER 鍵接受公式。

    整個資料行都會填入公式,而且會針對每個資料列計算值。

為導出資料行命名

根據預設,新的導出資料行會加入至工作表中其他資料行的右邊,而且將自動為這類資料行指派預設名稱 CalculatedColumn1、CalculatedColumn2,依此類推。 建立資料行之後,您可以將其重新排列和重新命名。 請注意,變更導出資料行名稱有下列限制:

  • 每個資料行名稱在資料表中都必須是唯一的。

  • 在相同的活頁簿中,請避免使用已經用於量值的名稱。 雖然量值和導出資料行可能可以有相同的名稱,但如果這些名稱不是唯一的,您就可以輕易地發現計算錯誤。 為避免不小心叫用量值,如果指的是資料行,請務必使用完整的資料行參考。

  • 當您重新命名導出資料行時,必須更新依賴現有資料行的所有公式。 只要您不是處於手動更新模式,公式的結果都會自動更新。 不過,這項作業可能需要花一些時間。

  • PowerPivot 活頁簿內的資料行名稱或物件名稱之中不能使用某些字元。 如需詳細資訊,請參閱<PowerPivot 的 DAX 語法規格>中的<命名需求>。

若要重新命名或編輯現有的導出資料行

  1. [PowerPivot] 視窗中,以滑鼠右鍵按一下您要重新命名之導出資料行的標題,然後按一下 [重新命名資料行]

  2. 輸入新名稱,然後按下 ENTER 以接受新名稱。

變更資料類型

您可以用相同的方式變更導出資料行的資料類型,以及所有非導出資料行的資料類型。 但是,您無法進行下列資料類型變更:從文字變更為十進位、從文字變更為整數、從文字變更為貨幣,以及從文字變更為日期。 不過,您可以從文字變更為布林值。

了解導出資料行的效能

導出資料行的公式可能會比量值所使用的公式更耗費資源。 其中一個原因是;導出資料行的結果永遠是針對資料表中的每個資料列計算,而量值僅針對樞紐分析表或樞紐分析圖中所使用的資料格計算。

例如,包含一百萬個資料列的資料表所擁有的導出資料行永遠都會有一百萬個結果,在效能上也會有對應的影響。 但是,樞紐分析表通常會套用資料列和資料行標題來篩選資料,因此,只會針對樞紐分析表內每一個資料格中的資料子集來計算量值。

公式通常與該公式中參考之物件具有相依性,例如評估值的其他資料行或運算式。 舉例來說,以另一個資料行做為根據的導出資料行或是包含具有資料行參考之運算式的計算,必須等到評估另一個資料行的結果之後,才會評估出結果。 預設情況下,活頁簿會啟用自動重新整理,因此在更新值或重新整理公式時,任何這類相依性都有可能影響效能。

為了避免當您在建立導出資料行時發生效能問題,請遵循以下指導方針:

  • 分多個步驟建立公式並將結果儲存到資料行,讓您能夠驗證結果及評估效能,而不要建立包含許多複雜相依性的單一公式。

  • 修改資料通常需要重新計算導出資料行。 您可以將重新計算模式設定為手動來防止重新計算;不過,如果導出資料行中有任何不正確的值,則該資料行將呈灰色,直到您重新整理與重新計算資料為止。

  • 如果您變更或刪除資料表之間的關聯性,使用這些資料表中之資料行的公式將會變成無效。

  • 如果您建立包含循環相依性或自我參考相依性的公式,將會發生錯誤。

請參閱

概念

加入計算至報表、圖表及樞紐分析表

建置計算公式

Data Analysis Expressions (DAX) 概觀

公式中的彙總

其他資源

資料表之間的關聯性