Excel DAX - 计算列

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

您可以使用数据透视表,数据透视图,Power PivotTable,Power PivotChart或Power View报表中的计算列其他表格列.

了解计算列

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

例如,您可以创建一个计算列以从现有列中提取Year  -  Date,使用DAX公式 :

= YEAR ([Date])

年份是DAX函数和日期是表中的现有列.如图所示,表名用括号括起来.您将在章节中了解更多相关信息 -   DAX语法.

添加时使用此DAX公式的表格列,只要您创建公式,就会计算列值.将创建一个新的列,其标题CalculatedColumn1将填充Year值.

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

创建计算列

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

创建计算列

  • 单击数据视图.

  • 单击结果选项卡.

您将查看结果表.

查看结果表

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

  • 单击"设计"选项卡功能区.

  • 单击列组中的添加.

添加列

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

  • 在公式栏中键入= YEAR([Date]).

公式栏中的指针

可以在上面的截图中可以看到,带有标题的最右边的列 - 添加列突出显示.

  • 按Enter键.

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

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

插入的计算列

如上面的屏幕截图所示,新插入的计算列会突出显示.整列中的值根据使用的DAX公式显示.列标题为CalculatedColumn1.

重命名计算列

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

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

重命名计算列

  • 选择列名.

  • 输入年份(新名称).

选择列名称和类型年份

如上所示截图,计算列的名称已更改.

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

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

检查计算列的数据类型

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

  • 单击功能区上的"主页"选项卡.

  • 单击数据类型.

检查数据类型

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

计算列中的错误

错误可能发生在由于以下原因而计算的列 :

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

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

性能问题

如前面奥运会结果示例所示,结果表有大约35000行数据.因此,当您使用DAX公式创建列时,它已经计算了所有35000 + 列中的值一下子就花了一点时间.数据模型和表旨在处理数百万行数据.因此,当DAX公式包含太多引用时,它会影响性能.您可以避免性能问题执行以下操作;

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

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