共用方式為


教學課程:在 Power BI Desktop 中建立計算資料行

有時,您正在分析的資料不包含取得所需結果所需的特定欄位。 計算資料行 對於這種情況很有用。 計算資料行會使用資料分析運算式 (DAX) 公式來定義資料行的值。 此工具適用於從將幾個不同列中的文字值放在一起到從其他值計算數值的任何事情。 例如,假設您的資料有 CityState 欄位,但您想要一個同時具有兩者的 Location 欄位,例如 “Miami, FL”。

計算資料行與 量值 類似,兩者都是以 DAX 公式為基礎,但它們的使用方式不同。 您經常在視覺化的 「值」 區域中使用量值,以根據其他欄位計算結果。 您可以使用計算欄作為視覺化資料列、軸、圖例和群組區域中的新 欄位

本教學課程會引導您瞭解和建立一些計算資料行,並在 Power BI Desktop 的報表視覺效果中使用它們。

先決條件

  • 本教學課程適用於已熟悉使用 Power BI Desktop 建立更進階模型的 Power BI 使用者。 您應該已經知道如何使用 [取得資料] 和 [Power Query 編輯器] 來匯入資料、使用多個相關資料表,以及將欄位新增至 [報表] 畫布。 如果您是 Power BI Desktop 的新手,請務必查看 Power BI Desktop 快速入門

  • 本教學課程會使用 Power BI Desktop 的 Contoso Sales 範例,與在 Power BI Desktop 中建立您自己的量值 教學課程所使用的範例相同。 來自虛構公司 Contoso, Inc. 的此銷售資料是從資料庫匯入的。 您將無法連線到資料來源,也無法在 Power Query 編輯器中檢視資料來源。 在您自己的電腦上下載並解壓縮檔案,然後在 Power BI Desktop 中開啟它。

在銷售報告中,您想要將產品類別和子類別顯示為單一值,例如「行動電話 – 配件」、「行動電話 – 智慧型手機和 PDA」等。 [ 欄位] 清單中沒有提供該資料的欄位,但有一個 ProductCategory 欄位和一個 ProductSubcategory 欄位,每個欄位都在自己的資料表中。 您可以建立計算資料行,以結合這兩欄的值。 DAX 公式可以使用您已有模型的完整功能,包括已存在的不同資料表之間的關聯性。

欄位清單中欄的螢幕擷取畫面。

  1. 若要在 [ProductSubcategory] 資料表中建立新資料行,請以滑鼠右鍵按一下或選取 [欄位] 窗格中 [ProductSubcategory] 旁的省略符號 ...,然後從功能表中選擇 [新增資料行]。

    下拉選單中新欄的螢幕截圖。

    當您選擇 新增欄位 時,公式列 會出現在報表畫布的頂端,讓您可以命名欄位並輸入 DAX 公式。

    公式欄的屏幕截圖。

  2. 根據預設,新的計算資料行會命名為 [資料行]。 如果您不重新命名它,新資料行將命名為 [資料行 2]、[ 資料行 3],依此類推。 您想讓您的 Column 更易於識別,因此當公式列中已經高亮顯示了Column名稱時,請輸入ProductFullCategory 來重新命名,然後輸入等號(=)。

  3. 您想要新資料行中的值以 ProductCategory 欄位中的名稱開頭。 因為此資料行位於不同但相關的資料表中,所以您可以使用 RELATED 函數來協助取得它。

    在等號之後,鍵入 r。 下拉式建議清單會顯示所有以字母 R 開頭的 DAX 函式。選取每個函式會顯示其效果的描述。 當您輸入時,建議清單會縮放到更接近您需要的功能。 選取 [ 相關],然後按 Enter 鍵

    在公式列中選擇“RELATED”的螢幕截圖。

    一個左括號出現,並顯示可以傳遞給 RELATED 函數的相關欄位的建議清單,其中包括預期參數的說明和詳細資料。

    在 [相關] 函數的公式列中選擇的 ProductCategory 螢幕擷取畫面。

  4. 您想要 ProductCategory 表中的 ProductCategory 欄。 選取 ProductCategory[ProductCategory],按 Enter,然後輸入右括號。

    小提示

    語法錯誤通常是因為右括弧遺失或放錯位置所造成,不過有時 Power BI Desktop 會為您新增它。

  5. 您想要破折號和空格來分隔新值中的ProductCategoriesProductSubcategories,因此在第一個運算式的右括弧之後,輸入一個空格、&符號(&)、雙引號(")、空格、破折號(-)、另一個空格、另一個雙引號("),再輸入另一個&符號。 您的公式現在應該如下所示:

    ProductFullCategory = RELATED(ProductCategory[ProductCategory]) & " - " &

    小提示

    如果您需要更多空間,請選取公式列右側的向下 V 形以展開公式編輯器。 在編輯器中,按 Alt + Enter 向下移動一行,按 Tab 移動內容。

  6. 輸入左括號 ([),然後選取 [ProductSubcategory] 欄以完成公式。

    公式選擇的產品類別螢幕擷取畫面。

    您不需要使用另一個 RELATED 函式來呼叫第二個運算式中的 ProductSubcategory 資料表,因為您正在此資料表中建立計算資料行。 您可以輸入 [ProductSubcategory] 與資料表名稱前置詞 (完整) 或不帶資料表名稱前置詞 (非限定) 。

  7. Enter 鍵或選取公式列中的核取記號來完成公式。 公式會進行驗證,且 ProductFullCategory 資料行名稱會出現在 [欄位] 窗格的 ProductSubcategory 資料表中。

    完成 ProductFullCategory 欄位的螢幕截圖。

    備註

    在 Power BI Desktop 中,計算資料行的 [欄位] 窗格中有一個特殊圖示,顯示它們包含公式。 在 Power BI 服務 (您的 Power BI 網站) 中,無法變更公式,因此計算資料行沒有圖示。

在報表中使用新欄位

現在,您可以使用新的 ProductFullCategory 資料行來依 ProductFullCategory 查看 SalesAmount

  1. 選取或將 ProductFullCategory 資料行從 ProductSubcategory 資料表拖曳到 [報表] 畫布上,以建立顯示所有 ProductFullCategory 名稱的資料表。

    ProductFullCategory 資料表的螢幕擷取畫面。

  2. 選取或將 SalesAmount 欄位從 Sales 資料表拖曳到資料表中,以顯示每個 ProductFullCategorySalesAmount

    SalesAmount by ProductFullCategory 資料表的螢幕擷取畫面。

建立使用 IF 函數的計算資料行

Contoso Sales 範例包含營業中和非營業中商店的銷售資料。 您想要透過建立 Active StoreName 欄位,確保在報表中將有效商店銷售與非使用中商店銷售清楚區分開來。 在新的 Active StoreName 計算欄中,您希望每個在用中商店都以商店的全名顯示,並將非使用中商店的銷售額分組到一個名為 Inactive 的明細項目中。

幸運的是, Stores 資料表有一個名為 Status 的資料行,作用中商店的值為「On」,非作用中商店的值為「Off」,我們可以使用它來為新的 Active StoreName 資料行建立值。 您的 DAX 公式可以使用邏輯 IF 函數來測試每個商店的 狀態 ,並根據結果傳回特定值。 如果商店的 狀態 為「開啟」,則公式會傳回商店名稱。 如果為 “Off”,則公式會指派 Active StoreName 為 “Inactive”。

  1. Stores 資料表中建立新的計算資料行,並在編輯列中將其命名為 Active StoreName

  2. 在符號=之後,開始輸入 IF。 建議清單會顯示您可以新增的內容。 選取 [IF]

    在公式列中選取的 IF 螢幕擷取畫面。

  3. IF 的第一個參數是對商店 Status 是否為「開啟」進行邏輯測試。 輸入左括號 [,系統將列出 Stores 表格中的列,然後選擇 [Status]

    在編輯列中為 IF 函數選取的狀態螢幕擷取畫面。

  4. [Status] 之後,輸入 =“On”,然後輸入逗號 () 以結束引數。 工具提示建議您需要新增一個值,當結果為 TRUE 時傳回。

    On 的螢幕擷取畫面新增至公式。

  5. 如果商店的狀態為「開啟」,則您想要顯示商店的名稱。 輸入左方括號 ([) 並選取 [StoreName] 欄,然後輸入另一個逗號。 工具提示現在顯示當計算結果為 FALSE 時,您需要添加一個返回值。

    新增至公式的 StoreName 資料行螢幕擷取畫面。

  6. 您想要將值設為 “Inactive”,因此輸入 “Inactive”,然後按 Enter 鍵或選取編輯列中的核取記號來完成公式。 公式會驗證,而新資料行的名稱會出現在 商店 資料表的 欄位 窗格中。

    已完成公式和 Active StoreName 資料行新增至 [欄位] 窗格的螢幕擷取畫面。

  7. 您可以在視覺效果中使用新的 Active StoreName 欄,就像任何其他欄位一樣。 若要依 Active StoreName 顯示 SalesAmounts,請選取 [Active StoreName] 欄位或將它拖曳到 [報表] 畫布上,然後選擇 [SalesAmount] 欄位或將它拖曳到資料表中。 在此表格中,作用中存放區會依名稱個別顯示,但非作用中存放區會在結尾分組為 「非作用中」。

    依作用中 StoreName 資料表的 SalesAmount 螢幕擷取畫面。

您已學到的內容

計算欄可以豐富您的資料並提供更輕鬆的見解。 您已瞭解如何在 [欄位] 窗格和編輯列中建立計算資料行、使用建議清單和工具提示來協助建構公式、使用適當的引數呼叫 DAX 函數 (例如 RELATED 和 IF),以及在報表視覺效果中使用計算資料行。

如果您想要深入了解 DAX 公式,並使用更進階的公式建立計算資料行,請參閱 Power BI Desktop 中的 DAX 基本概念。 本文著重於 DAX 中的基本概念,例如語法、函式,以及對內容的更透徹理解。

請務必將 資料分析運算式 (DAX) 參考 新增至您的最愛。 在此參考中,您可以找到有關 DAX 語法、運算子和 200 多個 DAX 函數的詳細資訊。

其他感興趣的文章: