教學課程:在 Power BI Desktop 中建立計算結果欄

有時候您要分析的數據不包含您需要取得所需結果的特定欄位。 計算結果列 對這種情況很有用。 匯出數據行會使用數據分析表達式 (DAX) 公式來定義數據行的值。 此工具適用於將來自數個不同數據行的文字值組合在一起,以計算來自其他值之數值的任何專案。 例如,假設您的數據具有 City 和 State 欄位,但您想要有一個同時具有 「Miami, FL」 的單一位置字段。

計算結果列類似於 兩者都以 DAX 公式為基礎的量 值,但它們的使用方式不同。 您通常會在視覺效果的 [值 ] 區域中使用量值,根據其他欄位來計算結果。 您可以使用匯出資料行作為視覺效果資料列、軸、圖例和群組區域中的新 欄位

本教學課程將引導您瞭解和建立一些導出數據行,並在Power BI Desktop的報表視覺效果中使用這些數據行。

必要條件

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

  • 本教學課程使用適用於 Power BI Desktop 的 Contoso 銷售範例,這是用於在 Power BI Desktop 中建立您自己的量值教學課程的相同範例。 虛構公司 Contoso, Inc. 的銷售數據是從資料庫匯入的。 您將無法連線到數據源,或在 Power Query 編輯器 中檢視數據源。 下載並解壓縮您自己的計算機上檔案,然後在Power BI Desktop 中開啟它。

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

[欄位] 清單中的 [資料行] 螢幕快照。

  1. 若要在 ProductSubcategory 數據表中建立新的數據行,請以滑鼠右鍵按兩下或選取[字段] 窗格中 ProductSubcategory的省略號 ...,然後從功能表中選擇 [新增] 資料行

    下拉功能表中 [新增數據行] 的螢幕快照。

    當您選擇 [ 新增] 資料行時, [報表] 畫布頂端會出現 [公式列 ],可供您命名數據行並輸入DAX公式。

    公式列的螢幕快照。

  2. 根據預設,新的計算結果列會命名為 Column。 如果您未將它重新命名,新的數據行將會命名為 Column 2Column 3 等等。 您想要讓數據行更容易識別,因此,當公式列中已醒目提示數據行名稱時,請鍵入 ProductFullCategory 來重新命名它,然後輸入等號 (=) 符號。

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

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

    公式列中所選 RELATED 的螢幕快照。

    左括號隨即出現,以及您可以傳遞至 RELATED 函式之相關數據行的另一個建議清單,以及預期的參數描述和詳細數據。

    [相關] 函式公式列中所選 ProductCategory 的螢幕快照。

  4. 您想要 ProductCategory 數據表中的 ProductCategory 數據行。 選取 [ProductCategory[ProductCategory],按 Enter,然後輸入右括弧。

    提示

    語法錯誤通常是因為遺漏或錯放的右括弧所造成,但有時候 Power BI Desktop 會為您新增。

  5. 您想要在新的值中分隔 ProductCategories 和 ProductSubcategories,因此在第一個表達式的右括號之後,輸入空格、ampersand (&)、雙引號 ()、空格、虛線-)、另一個空格、另一個雙引號和另一個雙引號。 您的公式現在看起來應該像這樣:

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

    提示

    如果您需要更多空間,請選取公式列右側的向下箭號,以展開公式編輯器。 在編輯器中,按 Alt + Enter 鍵來向下移動一行,再Tab 鍵來移動專案。

  6. 輸入左括弧 ([),然後選取 [ProductSubcategory] 數據行以完成公式。

    針對公式選擇的 ProductCategory 螢幕快照。

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

  7. Enter 鍵或選取公式列中的複選標記來完成公式。 公式會驗證,ProductFullCategory 數據行名稱會出現在 [欄位] 窗格的 ProductSubcategory 數據表中。

    已完成 ProductFullCategory 資料行的螢幕快照。

    注意

    在 Power BI Desktop 中,匯出數據行在 [欄位 ] 窗格中有特殊圖示,其中顯示其包含公式。 在 Power BI 服務 (您的 Power BI 網站) 中,沒有任何方法可以變更公式,因此計算結果列沒有圖示。

在報表中使用新的數據行

現在您可以使用新的 ProductFullCategory 數據行來查看 ProductFullCategorySalesAmount

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

    ProductFullCategory 數據表的螢幕快照。

  2. 從 Sales 數據表中選取或拖曳 SalesAmount 欄位,以顯示每個 ProductFullCategory 的 SalesAmount

    ProductFullCategory 數據表 SalesAmount 的螢幕快照。

建立使用 IF 函式的匯出數據行

Contoso 銷售範例包含作用中和非使用中商店的銷售數據。 您想要藉由建立 Active StoreName 欄位,確保作用中商店銷售與報表中的非作用中商店銷售清楚分隔。 在新的 Active StoreName 匯出數據行中,每個使用中存放區都會以商店的完整名稱顯示,而非使用中商店的銷售將會群組在一 個名為 Inactive 的一個明細專案中。

幸運的是, Stores 數據表有一 個名為 Status 的數據行,其中使用中商店的 “On” 值為 “On”,而非使用中存放區的 “Off” 值,我們可用來為新的 Active StoreName 數據行建立值。 DAX 公式會使用邏輯 IF 函式來測試每個存放區的 Status ,並根據結果傳回特定值。 如果商店的 Status 為 “On”,公式會傳回商店的名稱。 如果是 “Off”,公式會指派 「非作用中」的Active StoreName

  1. 在 Stores 數據表中建立新的導出數據行,並將它命名為公式列中的 Active StoreName

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

    公式列中所選取IF的螢幕快照。

  3. IF 的第一個自變數是商店狀態是否為 「開啟」的邏輯測試。 輸入左括弧 [,其中會列出 Stores 數據表中的數據行,然後選取 [Status]

    在公式列中為 IF 函式選取 [狀態] 的螢幕快照。

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

    新增至公式的 [開啟] 螢幕快照。

  5. 如果商店的狀態為 「開啟」,您想要顯示商店的名稱。 輸入左括弧 ([),然後選取 [StoreName] 數據行,然後輸入另一個逗號。 工具提示現在表示您需要在結果為 FALSE 時新增值才能傳回。

    新增至公式之 StoreName 數據行的螢幕快照。

  6. 您希望此值為 「Inactive」,因此請輸入 「Inactive」,然後按 Enter 鍵或選取公式列中的複選標記來完成公式。 公式會驗證,新的數據行名稱會出現在 [字段] 窗格的 [Stores] 數據表中。

    已新增至 [欄位] 窗格之已完成公式和 Active StoreName 數據行的螢幕快照。

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

    Active StoreName 數據表 SalesAmount 的螢幕快照。

您已經學到的內容

匯出數據行可以擴充您的數據,並提供更簡單的深入解析。 您已瞭解如何在 [ 字段 ] 窗格和公式列中建立匯出數據行、使用建議清單和工具提示來協助建構公式、使用適當的自變數呼叫 RELATED 和 IF 等 DAX 函數,以及在報表視覺效果中使用計算結果列。

如果您想要深入瞭解 DAX 公式,並建立具有更進階公式的導出數據行,請參閱 Power BI Desktop 中的 DAX 基本概念。 本文著重於 DAX 中的基本概念,例如語法、函式,以及更徹底地了解內容。

請務必將 數據分析表示式 (DAX) 參考 新增至您的最愛。 此參考可讓您找到 DAX 語法、運算子和超過 200 個 DAX 函式的詳細資訊。

其他感興趣的文章: