Excel DAX - 计算字段/度量


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

了解计算字段

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

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

以下是计算字段和计算列之间的差异 -

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

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

保存计算字段

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

使用计算字段

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

计算字段 – 示例

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

计算字段

如上面的屏幕截图所示,“结果”表有一个“奖牌”字段,其中包含包含“体育”-“赛事”-“国家/地区”-“日期”组合的每行的值 - 金、银或铜牌。假设您想要每个国家/地区的奖牌数,那么您可以使用以下 DAX 公式创建计算字段奖牌数 -

Medal Count := COUNTA([Medal])

在表中创建计算字段

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

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

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

在表中创建计算字段

按 Enter 键。

按回车键

如上面的屏幕截图所示,计算字段出现在所选单元格中,显示值为 34,094。该数字是结果表中的总行数。因此,乍一看并没有多大意义。如前所述,计算字段的实际用途只能通过将其添加到 Power 数据透视表或 Power 数据透视图来查看。

使用 Power PivotTable 中的计算字段

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

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

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

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

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

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

正如您所观察到的,奖牌计数被添加到 VALUES 区域,而国家/地区被添加到 ROWS 区域。数据透视表是使用行中显示的字段“国家/地区”值创建的。对于每一行,都会计算并显示奖牌计数值。这样,计算字段就会评估所使用的 DAX 公式并显示值。

  • 将“结果”表中的“运动”字段添加到“行”区域。
添加田径运动

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

这就是 DAX 对 Power 功能的补充。

计算字段的类型

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

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

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

创建隐式计算字段

可以通过两种方式创建隐式计算字段,都可以在“Power 数据透视表字段”窗格中创建。

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

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

  • 取消选择“奖牌计数”字段。
  • 右键单击奖牌字段。
  • 单击下拉列表中的添加到值。
创建隐式计算字段

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

奖牌栏计数

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

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

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

出现值字段设置对话框。

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

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

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

您创建了另一个隐式计算字段“奖牌百分比”,并且您可以观察到,对于每个国家/地区,显示了体育方面的奖牌百分比。

隐式计算字段的缺点

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

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

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

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

创建显式计算字段

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

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

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

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

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

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

出现计算字段对话框。

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

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

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