Excel Dax 简明教程

Excel DAX - Calculated Columns

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

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

Understanding Calculated Columns

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

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

= YEAR ([Date])

YEAR 是一个 DAX 函数,Date 是表中的现有列。如您所见,表名括在括号中。您将在章节 DAX Syntax 中了解更多相关信息。

当您使用此 DAX 公式将列添加到表中时,在创建公式后便会计算列值。将创建一列标题为 CalculatedColumn1 且填入年份值的新列。

当有必要时,例如在刷新底层数据时,列值会被重新计算。您可以根据现有列、计算字段(度量)和其他计算列创建计算列。

Creating a Calculated Column

考虑一下数据模型和奥运会结果,如下面的截图所示。

creating calculated column
  1. Click the Data View.

  2. Click the Results tab.

您将查看结果表。

view result table

如上图所示,最右侧列的标题是 – 添加列。

  1. 在功能区上点击“设计”选项卡。

  2. 点击列组中的添加。

add column

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

  1. 在公式栏中输入 =YEAR ([Date])。

pointer in formula bar

正如在上述截图中看到的,带标题 – 添加列的最右侧列被高亮显示。

  1. Press Enter.

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

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

inserted calculated column

如上图所示,新插入的计算列被高亮显示。整个列中的值根据使用的 DAX 公式出现。列标题是 CalculatedColumn1。

Renaming the Calculated Column

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

  1. 双击列标题。列名将被高亮显示。

renaming calculated column
  1. Select the column name.

  2. 输入年份(新名称)。

select column name and type year

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

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

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

Checking the Data Type of the Calculated Column

您可以按如下方式检查计算列的数据类型 −

  1. 单击功能区上的“主页”选项卡。

  2. Click the Data Type.

checking data type

正如您在以上截图中看到的,下拉列表具有列可能的数 据类型。在此示例中,选定的是默认(自动)数据类型,即整数。

Errors in Calculated Columns

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

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

  2. 公式包含循环或自引用依赖项。

Performance Issues

正如前面在奥运会结果示例中所见,Results 表有大约 35,000 行数据。因此,当您使用 DAX 公式创建列时,已立即在该列中计算了全部 35,000 多个值,这需要一些时间。数据模型和表旨在处理数百万行数据。因此,当 DAX 公式有太多引用时,它可能会影响性能。您可以通过以下操作避免性能问题:

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

  2. 在进行数据修改时,需要重新计算计算列。您可以将重新计算模式设置为手动,从而节省频繁的重新计算。但是,如果计算列中的任何值不正确,该列将变为灰色,直到您刷新并重新计算数据。