Excel DAX - 计算字段/度量值



数据模型中表格中的计算字段是由DAX公式获得的字段。在早期版本的Power Pivot中,计算字段被称为度量值。在Excel 2013中,它被重命名为计算字段。但是,在Excel 2016中,它又被改回名为度量值。如果您参考任何文档,您可能会发现这两个术语混用。请注意,术语“计算字段”和“度量值”是同义词。在本教程中,我们使用术语“计算字段”。

理解计算字段

计算字段是专门为在数据透视表(或数据透视图)中使用而创建的公式。

您可以基于标准聚合函数(例如COUNT或SUM)创建计算字段,也可以通过定义您自己的DAX公式来创建计算字段。

以下是计算字段和计算列之间的区别:

  • 计算字段只能用于数据透视表的“值”区域。

  • 具有计算结果的计算列也可以用于“行”、“列”和“筛选器”区域。

保存计算字段

计算字段将与其源表一起保存在数据模型中。它在Power Pivot表或Power Pivot图字段列表中显示为表中的字段。

使用计算字段

要使用计算字段,您必须从Power Pivot表字段列表中选择它。计算字段将被添加到“值”区域,并且将计算用于计算字段的公式。将为每一行和列字段组合创建一个结果。

计算字段 - 示例

考虑以下奥运会数据的 数据模型:

Calculated Field

如上面的屏幕截图所示,“结果”表有一个名为“奖牌”的字段,其中包含每个包含“运动 - 项目 - 国家 - 日期”组合的行中的值 - 金牌、银牌或铜牌。假设您想要每个国家的奖牌数量,那么您可以创建一个名为“奖牌数量”的计算字段,并使用以下DAX公式:

Medal Count := COUNTA([Medal])

在表中创建计算字段

要在“结果”表中创建“奖牌数量”计算字段,请执行以下操作:

  • 单击“结果”表中“奖牌”列下方的计算区域中的单元格。该单元格将被突出显示。

  • 在公式栏中键入Medal Count:=COUNTA([Medal])。

Creating a Calculated Field in a Table

按Enter键。

Press Enter

如上面的屏幕截图所示,计算字段显示在选定的单元格中,值显示为34,094。这个数字是“结果”表中的总行数。因此,乍一看意义不大。如前所述,只有将计算字段添加到Power Pivot表或Power Pivot图中才能看到其真正的用途。

在Power Pivot表中使用计算字段

要使用计算字段计算每个国家的奖牌数量,请执行以下操作:

  • 在Power Pivot窗口中,单击功能区上的“数据透视表”。
  • 在下拉列表中单击“数据透视表”。
Using the Calculated Field in a Power PivotTable

出现“创建数据透视表”对话框。

  • 单击“现有工作表”。
  • 选择要放置数据透视表的位置。

将创建一个空数据透视表。

  • 单击“数据透视表字段”列表中的“结果”表。
  • 单击字段 - 国家和奖牌数量。
Empty PivotTable Created

您可以看到,“奖牌数量”已添加到“值”区域,“国家”已添加到“行”区域。数据透视表已创建,行中显示字段“国家”的值。对于每一行,都会计算和显示“奖牌数量”的值。这就是计算字段计算所用DAX公式并显示值的方式。

  • 将“结果”表中的“运动”字段添加到“行”区域。
Add the Field Sport

如上面的屏幕截图所示,“奖牌数量”按国家/地区和运动项目计算,并显示国家/地区的子总计。

这就是DAX如何补充Power功能。

计算字段的类型

计算字段有两种类型:隐式和显式。

  • 隐式计算字段在Power Pivot表字段列表窗格中创建。

  • 显式计算字段是在Power Pivot窗口中的表中创建,或者从Excel窗口中的PowerPivot功能区创建。

创建隐式计算字段

可以通过两种方式在Power Pivot表字段窗格中创建隐式计算字段。

在数据透视表字段列表中创建隐式计算字段

您可以按照以下步骤从数据透视表字段列表中的“奖牌”字段创建“奖牌计数”字段:

  • 取消选择“奖牌数量”字段。
  • 右键单击“奖牌”字段。
  • 在下拉列表中单击“添加到值”。
Creating an Implicit Calculated Field

“奖牌计数”出现在“值”区域。“奖牌计数”列将添加到数据透视表。

Medal column Count

在“值”区域创建隐式计算字段

您可以在“值”区域中创建隐式计算字段 - “父行百分比”,以表示某个国家获得的每项运动的奖牌数量占该国获得的奖牌总数的百分比。

  • 单击“值”区域中“奖牌计数”框中的向下箭头。
  • 在下拉列表中单击“值字段设置”。
Creating an Implicit Calculated Field in Values Area

出现“值字段设置”对话框。

  • 在“自定义名称”框中键入“奖牌百分比”。
  • 单击“显示值方式”选项卡。
  • 单击“显示值方式”下的框。
  • 单击“父行总计的百分比”。
Value Field Settings
  • 单击“数字格式”按钮。

出现“设置单元格格式”对话框。

  • 单击“百分比”。
  • 在小数位数中键入0。
  • 单击“确定”。
  • 在“值字段设置”对话框中单击“确定”。
  • 选择“不显示小计”。
Format Cells Dialog Box

您创建了另一个隐式计算字段“奖牌百分比”,您可以看到,对于每个国家/地区,都会显示按运动项目划分的奖牌百分比。

隐式计算字段的缺点

隐式计算字段易于创建。事实上,您甚至在Excel数据透视表和数据透视图中一直在创建它们。但是,它们具有以下缺点:

  • 它们是易失的。这意味着,如果您取消选择用于计算字段的字段,它将被删除。如果您想再次显示它,您必须再次创建它。

  • 它们的范围仅限于创建它们的Data Pivot表或Data Pivot图。如果您在另一个工作表中创建另一个数据透视表,则必须再次创建计算字段。

另一方面,显式计算字段将与表一起保存,并且只要您选择该表,它就可用。

创建显式计算字段

您可以通过两种方式创建显式计算字段:

  • 在数据模型中表的计算区域中。您已经在“在表中创建计算字段”部分学习了这一点。

  • 从Excel表中的PowerPivot功能区。您将在下一节学习这种创建显式计算字段的方法。

从PowerPivot功能区创建显式计算字段

要从PowerPivot功能区创建显式计算字段,请执行以下操作:

  • 在工作簿的功能区上单击“POWERPIVOT”选项卡。
  • 单击“计算”区域中的“计算字段”。
  • 在下拉列表中单击“新建计算字段”。
Creating an Explicit Calculated

出现“计算字段”对话框。

  • 填写以下屏幕截图中显示的必需信息。
Calculated Field dialog box
  • 单击“检查公式”按钮。
  • 只有在公式中没有错误时才单击“确定”。

您可以看到,您可以在此对话框中定义计算字段的类别和格式。此外,您可以使用IntelliSense功能来了解函数的用法,并使用自动完成功能来轻松完成函数、表和列的名称。有关IntelliSense功能的详细信息,请参考章节 - DAX 公式

这是创建显式计算字段的推荐方法。

广告