📜  Excel DAX-计算列

📅  最后修改于: 2020-12-01 04:39:04             🧑  作者: Mango


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

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

了解计算列

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

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

= YEAR ([Date]) 

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

使用此DAX公式向表中添加列时,创建该公式后即会立即计算列值。将创建一个新列,其标题CalculatedColumn1填充Year值。

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

创建计算列

考虑具有奥运结果的数据模型,如以下屏幕快照所示。

创建计算列

  • 单击数据视图。
  • 单击结果选项卡。

您将查看结果表。

查看结果表

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

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

添加栏

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

  • 在编辑栏中键入= YEAR([日期])。

公式栏中的指针

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

  • 按Enter键。

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

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

插入计算列

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

重命名计算列

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

  • 双击列标题。列名将突出显示。

重命名计算列

  • 选择列名称。
  • 键入年份(新名称)。

选择列名称和类型年份

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

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

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

检查计算列的数据类型

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

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

检查数据类型

如您在上面的屏幕快照中所见,下拉列表具有列的可能数据类型。在此示例中,选择了默认(自动)数据类型,即“整数”。

计算列中的错误

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

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

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

性能问题

如前面的奥运结果示例所示,“结果”表具有约35000行数据。因此,当您创建带有DAX公式的列时,它已经计算出了所有35000+列中的值一次,花了一段时间。数据模型和表旨在处理数百万行数据。因此,当DAX公式的引用过多时,会影响性能。您可以通过执行以下操作避免性能问题-

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

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