Excel DAX 计算字段/度量


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

了解计算字段


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

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

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

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

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

保存计算字段

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

使用计算字段

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

计算字段——一个例子


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

Calculated Field

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

Medal Count := COUNTA([Medal])

在表中创建计算字段


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

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

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

Creating a Calculated Field in a Table

按 Enter。

Press Enter

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

使用 Power PivotTable 中的计算字段


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

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

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

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

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

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

正如你所看到的,奖牌计数被添加到 VALUES 区域,国家被添加到 ROWS 区域。数据透视表是使用显示在行中的字段 Country 值创建的。并且对于每一行,计算并显示奖牌计数值。这就是计算字段评估使用的 DAX 公式并显示值的方式。

  • 将 Results 表中的 Sport 字段添加到 ROWS 区域。
Add the Field Sport

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

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

计算字段的类型


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

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

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

创建隐式计算字段


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

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

你可以从 PivotTable Fields 列表中的 Medal 字段创建 Count of Medal 字段,如下所示:

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

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

Medal column Count

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

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

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

出现值字段设置对话框。

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

出现单元格格式对话框。

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

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

隐式计算字段的缺点


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

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

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

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

创建显式计算字段


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

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

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

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

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

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

出现计算字段对话框。

  • 填写所需信息,如以下屏幕截图所示。
Calculated Field dialog box
  • 单击检查公式按钮。
  • 仅当公式中没有错误时单击确定。

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

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