教程:在 Power BI Desktop 中创建计算列

有时,要分析的数据不包含需要获得所需结果的特定字段。 计算字段列 对于这种情况很有用。 计算列使用数据分析表达式(DAX)公式来定义列的值。 这个工具广泛用于从几个不同的列组合文本值,到从其他值计算数值。 例如,假设你的数据具有 “城市 ”和 “州/自治区 ”字段,但你希望有一个同时具有“迈阿密,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。 如果不重命名它,新列将命名为 列 2列 3 等。 您希望列更加易于识别,因此,当名称已在编辑栏中突出显示时,将其重命名为ProductFullCategory,然后键入等号(=)。

  3. 希望新列中的值以 ProductCategory 字段中的名称开头。 由于此列位于不同但相关的表中,因此可以使用 RELATED 函数来帮助你获取它。

    等号后,键入 r。 下拉列表显示以字母 R 开头的所有 DAX 函数。选择每个函数将显示其效果的说明。 键入时,建议列表将更接近所需的函数。 选择 RELATED,然后按 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] 列以完成公式。

    为公式选择的 ProductCategory 的屏幕截图。

    不需要使用另一个 RELATED 函数来调用第二个表达式中的 ProductSubcategory 表,因为要在此表中创建计算列。 可以使用表名称前缀(完全限定)或不使用前缀(非限定)输入[ProductSubcategory]

  7. 通过按 Enter 或在公式栏中选择复选标记来完成公式。 公式验证已完成,ProductFullCategory 列名称出现在ProductSubcategory 表中的Fields窗格中。

    已完成的 ProductFullCategory 列的屏幕截图。

    注释

    在 Power BI Desktop 中,计算列在 “字段 ”窗格中有一个特殊图标,其中显示它们包含公式。 在 Power BI 服务(Power BI 站点)中,无法更改公式,因此计算列没有图标。

在报表中使用新列

现在,可以使用新的 ProductFullCategory 列查看 ProductFullCategorySalesAmount

  1. 选择或拖动 ProductSubcategory 表中的 ProductFullCategory 列到报表画布上,以创建显示所有 ProductFullCategory 名称的表。

    ProductFullCategory 表的屏幕截图。

  2. Sales 表中选择或拖动 SalesAmount 字段,以显示每个 ProductFullCategorySalesAmount

    ProductFullCategory 分类中 SalesAmount 的表格截图。

创建使用 IF 函数的计算列

Contoso 销售示例包含活动和非活动商店的销售数据。 你希望通过创建 Active StoreName 字段,确保活动商店销售额与报表中的非活动商店销售区分开。 在新的 Active StoreName 计算列中,希望每个活动商店都显示该商店的全名,并将非活动商店的销售组合在一个名为 “非活动”的一行项中。

幸运的是,Stores 表中有一个名为 Status 的列,该列的值为“On”表示活动门店,“Off”表示非活动门店,我们可以利用这些值为新的 Active StoreName 列创建值。 DAX 公式可以使用逻辑 IF 函数来测试每个商店 状态 ,并根据结果返回特定值。 如果存储区 的状态 为“开”,公式将返回存储区的名称。 如果为“Off”,则公式将 Active StoreName 设定为“非活动”。

  1. Stores 表中创建新的计算列,并在编辑栏中将其命名为 Active StoreName

  2. 签名 = 后,开始键入 IF。 建议列表显示可添加的内容。 选择 IF

    公式栏中选择的 IF 的屏幕截图。

  3. IF 的第一个参数是对商店状态是否为“开启”的逻辑测试。 键入开方括号 [,这会显示 Stores 表中的列,然后选择 [Status]

    在公式栏中选择状态的 IF 函数截图。

  4. 紧接 [Status],键入 =“On”,然后键入逗号 () 以结束参数。 工具提示建议现在需要添加一个值,以在结果为 TRUE 时返回。

    添加到公式中的 On 的屏幕截图。

  5. 如果商店的状态为“开”,您需要显示商店的名称。 键入左括号 ([) 并选择 [StoreName] 列,然后键入另一个逗号。 工具提示现在指示在结果为 FALSE 时需要添加一个值才能返回。

    添加到公式的 StoreName 列的屏幕截图。

  6. 你希望该值为“非活动”,因此键入 “非活动”,然后按 Enter 或在编辑栏中选择复选标记来完成公式。 公式验证通过后,新列的名称将在字段窗格中的Stores表中显示。

    添加到“字段”窗格的已完成公式和 Active StoreName 列的屏幕截图。

  7. 可以在可视化效果中使用新的 Active StoreName 列,就像任何其他字段一样。 若要按 Active StoreName 显示 SalesAmount,请选择 Active StoreName 字段或将其拖到报表画布上,然后选择 SalesAmount 字段或将其拖到表中。 在此表中,活动商店按名称单独显示,但非活动商店被组合在表末,并标记为非活动

    SalesAmount 按 Active StoreName 分类的表格截图。

所学知识

计算列可以丰富您的数据并提供更简化的分析见解。 你已学会如何在 字段 窗格和公式栏中创建计算列,使用建议列表和工具提示来辅助构建公式,调用如 RELATED 和 IF 等 DAX 函数并传入适当的参数,以及在报表的可视化中使用计算列。

若要深入了解 DAX 公式并创建具有更高级的公式的计算列,请参阅 Power BI Desktop 中的 DAX 基础知识。 本文重点介绍 DAX 中的基本概念,例如语法、函数和更深入地了解上下文。

请务必将 数据分析表达式(DAX)引用 添加到收藏夹。 在此参考中,可以找到有关 DAX 语法、运算符和 200 多个 DAX 函数的详细信息。

其他相关文章: