Excel DAX 计算列


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

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

了解计算列


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

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

= YEAR ([Date]) 

YEAR 是 DAX 函数,Date 是表中的现有列。如图所示,表名括在方括号中。你将在本章中了解更多相关信息—— DAX 语法 .

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

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

创建计算列


考虑具有奥运会结果的数据模型,如下面的屏幕截图所示。

Creating a Calculated Column
  • 单击数据视图。
  • 单击结果选项卡。

你将查看结果表。

View Result Table

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

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

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

  • 在公式栏中键入 =YEAR ([Date])。
Pointer in Formula Bar

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

  • 按 Enter。

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

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

Inserted Calculated Column

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

重命名计算列


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

  • 双击列标题。列名将突出显示。
Renaming the Calculated Column
  • 选择列名。
  • 键入年份(新名称)。
Select Column Name and Type Year

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

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

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

检查计算列的数据类型


可以查看计算列的数据类型如下:

  • 单击功能区上的主页选项卡。
  • 单击数据类型。
Checking Data Type

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

计算列中的错误


计算列可能会出现错误,原因如下:

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

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

性能问题


如之前在奥运会结果示例中所见,Results 表有大约 35000 行数据。因此,当你使用 DAX 公式创建列时,它一次计算了列中的所有 35000+ 值,为此花费了一些时间。数据模型和表格旨在处理数百万行数据。因此,当 DAX 公式引用过多时,它会影响性能。你可以通过以下方式避免性能问题:

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

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