Excel DAX - 计算列


计算列是通过定义列值的 DAX 公式添加到工作簿数据模型中现有表的列。您无需导入列中的值,而是创建计算列。

您可以在数据透视表、数据透视图、Power 数据透视表、Power 数据透视图或 Power View 报表中使用计算列,就像任何其他表列一样。

了解计算列

用于创建计算列的 DAX 公式类似于 Excel 公式。但是,在 DAX 公式中,您无法为表中的不同行创建不同的公式。DAX 公式会自动应用于整个列。

例如,您可以创建一个计算列,以使用 DAX 公式从现有列 - 日期中提取年份 -

= YEAR ([Date]) 

YEAR 是 DAX 函数,Date 是表中的现有列。如图所示,表名括在括号中。您将在“DAX 语法”一章中了解更多相关信息。

当您使用此 DAX 公式向表添加列时,创建公式后就会立即计算列值。将创建一个标题为CalculatedColumn1 且填充了年份值的新列。

根据需要重新计算列值,例如刷新基础数据时。您可以基于现有列、计算字段(度量)和其他计算列创建计算列。

创建计算列

考虑奥运会成绩的数据模型,如以下屏幕截图所示。

创建计算列
  • 单击数据视图。
  • 单击结果选项卡。

您将查看结果表。

查看结果表

如上面的屏幕截图所示,最右边的列有标题 - 添加列。

  • 单击功能区上的“设计”选项卡。
  • 单击“列”组中的“添加”。
添加列

指针将出现在公式栏中。这意味着您要添加带有 DAX 公式的列。

  • 在编辑栏中键入 =YEAR ([日期])。
公式栏中的指针

从上面的屏幕截图中可以看出,最右边的列及其标题 - 添加列已突出显示。

  • 按 Enter 键。

计算需要一段时间(几秒钟)才能完成。请稍等。

新的计算列将插入到最右侧添加列的左侧。

插入的计算列

如上面的屏幕截图所示,新插入的计算列突出显示。整列中的值按照所使用的 DAX 公式显示。列标题是CalculatedColumn1。

重命名计算列

要将计算列重命名为有意义的名称,请执行以下操作 -

  • 双击列标题。列名称将突出显示。
重命名计算列
  • 选择列名称。
  • 输入年份(新名称)。
选择列名称并输入年份

如上面的屏幕截图所示,计算列的名称已更改。

您还可以通过右键单击计算列,然后单击下拉列表中的“重命名”来重命名计算列。

只需确保新名称不与表中的现有名称冲突即可。

检查计算列的数据类型

您可以检查计算列的数据类型,如下所示 -

  • 单击功能区上的“主页”选项卡。
  • 单击数据类型。
检查数据类型

正如您在上面的屏幕截图中看到的,下拉列表包含列的可能数据类型。在此示例中,选择默认(自动)数据类型,即整数。

计算列中的错误

由于以下原因,计算列中可能会出现错误 -

  • 更改或删除表之间的关系。这是因为使用这些表中的列的公式将变得无效。

  • 该公式包含循环或自引用依赖关系。

性能问题

如前面的奥运会结果示例所示,结果表包含大约 35000 行数据。因此,当您使用 DAX 公式创建列时,它会一次性计算出该列中的所有 35000 多个值,这需要一些时间。数据模型和表旨在处理数百万行数据。因此,当 DAX 公式引用过多时,可能会影响性能。您可以通过执行以下操作来避免性能问题 -

  • 如果您的 DAX 公式包含许多复杂的依赖项,请分步骤创建它,并将结果保存在新的计算列中,而不是一次创建单个大公式。这使您能够验证结果并评估性能。

  • 当数据发生修改时,计算列需要重新计算。您可以将重新计算模式设置为手动,从而节省频繁的重新计算。但是,如果计算列中的任何值不正确,该列将呈灰色显示,直到您刷新并重新计算数据。