Excel DAX - 计算字段/度量

数据模型中表中的计算字段是通过DAX公式获得的字段。 在早期版本的 Power Pivot 中,计算字段被称为度量值。 在 Excel 2013 中,它被重命名为计算字段。 但是,它在 Excel 2016 中重命名为 measure。如果您参考任何文档,您可以观察到这两个术语的混合。 请注意,术语计算字段和度量是同义词。 在本教程中,我们使用术语计算字段。


了解计算字段

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

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

下面是计算字段和计算列的区别 −

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

  • 具有计算结果的计算列也可用于 ROWS、COLUMNS 和 FILTERS 区域。

保存计算字段

计算字段将与其源表一起保存在数据模型中。 它作为表中的字段出现在 Power PivotTable 或 Power PivotChart 字段列表中。

使用计算字段

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


计算字段 - 示例

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

计算字段

如上面的屏幕截图所示,结果表有一个字段 Medal,其中包含每个包含 Sport – Event – Country – Date 组合的行的值 – Gold、Silver 或 Bronze。 假设您想要每个国家/地区的奖牌数,那么您可以使用以下 DAX 公式创建一个计算字段 Medal Count −

Medal Count := COUNTA([Medal])

在表中创建计算字段

要在结果表中创建计算字段 Medal Count,请执行以下操作 −

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

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

在表中创建计算字段

按回车键。

按回车键

如上图所示,计算字段出现在所选单元格中,显示值为 34,094。 此数字是结果表中的总行数。 因此,乍一看没有多大意义。 如前所述,只有将计算字段添加到 Power PivotTable 或 Power PivotChart 才能看到计算字段的实际用途。


在 Power 数据透视表中使用计算字段

要使用计算字段来计算每个国家/地区的奖牌数,请执行以下操作 −

  • 单击 Power Pivot 窗口中功能区上的数据透视表。
  • 单击下拉列表中的数据透视表。
在 Power PivotTable 中使用计算字段

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

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

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

  • 单击数据透视表字段列表中的结果表。
  • 单击字段 - 国家和奖牌数。
已创建空数据透视表

如您所见,Medal Count 添加到 VALUES 区域,Country 添加到 ROWS 区域。 数据透视表是用行中显示的字段国家/地区值创建的。 对于每一行,都会计算并显示奖牌计数值。 也就是说,计算字段评估使用的 DAX 公式并显示值。

  • 将字段 Sport 从结果表添加到 ROWS 区域。
添加运动项目

如您在上面的屏幕截图中所见,奖牌数是针对每个国家/地区计算的 - 体育方面和国家/地区本身的小计。

这就是 DAX 对 Power 功能进行补充的方式。


计算字段的类型

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

  • 在 Power PivotTable 字段列表窗格中创建了一个隐式计算字段

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


创建隐式计算字段

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

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

您可以从数据透视表字段列表中的奖牌字段创建奖牌计数字段,如下所示 −

  • 取消选择"Medal Count"字段。
  • 右键单击 Medal 字段。
  • 在下拉列表中单击"添加到值"。
创建隐式计算字段

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

Medal 列数

在 VALUES 区域中创建隐式计算字段

您可以在值区域中创建一个隐式计算字段 - % of Parent Row,以表示一个国家/地区赢得的每项运动的奖牌数占该国家/地区赢得的奖牌总数的百分比。

  • 单击 VALUES 区域中奖牌计数框的向下箭头。
  • 单击下拉列表中的值字段设置。
在值区域中创建隐式计算字段

值字段设置对话框出现。

  • 在"自定义名称"框中键入 % Medals。
  • 单击"将值显示为"选项卡。
  • 单击"将值显示为"下的框。
  • 点击父行总计的百分比。
值字段设置
  • 单击"数字格式"按钮。

出现格式单元格对话框。

  • 点击百分比。
  • 在小数点后输入 0。
  • 单击"确定"。
  • 在"值字段设置"对话框中单击"确定"。
  • 选择不显示小计。
格式化单元格对话框

您创建了另一个隐式计算字段 % Medals 并且您可以观察到,对于每个国家/地区,都会显示奖牌的百分比 Sport-wise。


隐式计算字段的缺点

隐式计算字段很容易创建。 事实上,您甚至已经在 Excel 数据透视表和数据透视图中创建了它们。 但是,它们有以下缺点 −

  • 它们是不稳定的。 这意味着,如果您取消选择用于计算字段的字段,它将被删除。 如果要再次显示,则必须重新创建。

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

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


创建显式计算字段

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

  • 在数据模型中的表中的计算区域中。 您已经在"在表中创建计算字段"一节中了解了这一点。

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

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

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

  • 单击工作簿功能区上的 POWERPIVOT 选项卡。
  • 单击"计算"区域中的"计算字段"。
  • 单击下拉列表中的新建计算字段。
创建显式计算

计算字段对话框出现。

  • 填写所需信息,如以下屏幕截图所示。
计算字段对话框
  • 点击"检查公式"按钮。
  • 仅当公式中没有错误时才单击"确定"。

如您所见,您可以在此对话框中定义计算字段的类别和格式。 此外,您可以使用 IntelliSense(智能感知) 功能了解函数的用法,并使用自动完成功能轻松完成函数、表和列的名称。 有关 IntelliSense(智能感知)功能的详细信息,请参阅章节 – DAX 公式

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