Excel DAX - 计算列
计算列 是您通过定义列值的 DAX 公式添加到工作簿数据模型中现有表的列。 您无需导入列中的值,而是创建计算列。
您可以在数据透视表、数据透视图、Power PivotTable、Power PivotChart 或 Power View 报表中使用计算列,就像使用任何其他表格列一样。
了解计算列
用于创建计算列的 DAX 公式类似于 Excel 公式。 但是,在 DAX 公式中,您不能为表中的不同行创建不同的公式。 DAX 公式自动应用于整列。
例如,您可以创建一个计算列以使用 DAX 公式从现有列 - 日期中提取年份 −
= YEAR ([Date])
YEAR 是 DAX 函数,Date 是表中的现有列。 如图所示,表名括在方括号中。 您将在本章了解更多相关信息 – DAX 语法。
当您使用此 DAX 公式向表中添加列时,会在您创建公式后立即计算列值。 将创建一个新列,其标题为 CalculatedColumn1,其中填充了 Year 值。
列值会根据需要重新计算,例如刷新基础数据时。 您可以基于现有列、计算字段(度量)和其他计算列创建计算列。
创建计算列
考虑奥运会结果的数据模型,如下面的屏幕截图所示。
- 单击数据视图。
- 单击"结果"选项卡。
您将查看结果表。
如上面的屏幕截图所示,最右边的列有标题 - 添加列。
- 单击功能区上的"设计"选项卡。
- 点击列组中的添加。
指针将出现在编辑栏中。 这意味着您要添加一个包含 DAX 公式的列。
- 在公式栏中输入 =YEAR ([Date])。
如上图所示,最右边的标题栏 - 添加栏突出显示。
- 按回车键。
完成计算需要一段时间(几秒钟)。 请稍等。
新的计算列将插入到最右边的添加列的左侧。
如上图所示,新插入的计算列高亮显示。 整个列中的值按照使用的 DAX 公式显示。 列标题为 CalculatedColumn1。
重命名计算列
要将计算列重命名为有意义的名称,请执行以下操作 −
- 双击列标题。 列名称将突出显示。
- 选择列名称。
- 键入 Year(新名称)。
如上图所示,计算列的名称已更改。
您还可以通过右键单击列然后单击下拉列表中的"重命名"来重命名计算列。
只需确保新名称与表中的现有名称不冲突即可。
检查计算列的数据类型
您可以检查计算列的数据类型,如下所示 −
- 单击功能区上的主页选项卡。
- 单击数据类型。
如您在上面的屏幕截图中所见,下拉列表具有列的可能数据类型。 在此示例中,选择了默认(自动)数据类型,即整数。
计算列中的错误
由于以下原因,计算列中可能会出现错误 −
更改或删除表之间的关系。 这是因为使用这些表中的列的公式将变得无效。
公式包含循环或自引用依赖。
性能问题
正如之前在奥运会结果示例中看到的那样,Results 表有大约 35000 行数据。 因此,当您使用 DAX 公式创建列时,它计算了所有 35000+ 列中的值,这花了一点时间。 数据模型和表格旨在处理数百万行数据。 因此,当 DAX 公式有太多引用时,它会影响性能。 您可以通过以下操作避免性能问题 −
如果您的 DAX 公式包含许多复杂的依赖项,请分步创建它,将结果保存在新的计算列中,而不是一次创建一个大公式。 这使您能够验证结果并评估性能。
计算列在数据修改时需要重新计算。 您可以将重新计算模式设置为手动,从而避免频繁重新计算。 但是,如果计算列中的任何值不正确,该列将显示为灰色,直到您刷新并重新计算数据。