- Excel DAX 教程
- DAX - 首页
- DAX - 概述
- DAX - 计算列
- DAX - 计算字段/度量值
- DAX - 编辑计算字段
- DAX - 删除计算字段
- DAX - 语法
- DAX - 运算符
- DAX - 标准参数
- DAX - 函数
- DAX - 理解 DAX 函数
- DAX - 评估上下文
- DAX - 公式
- 更新 DAX 公式的结果
- 更新数据模型中的数据
- DAX - 重新计算 DAX 公式
- DAX 公式重新计算故障排除
- DAX - 公式错误
- DAX - 时间智能
- DAX - 筛选器函数
- DAX - 场景
- 执行复杂计算
- DAX - 使用文本和日期
- 条件值和错误测试
- DAX - 使用时间智能
- DAX - 排名和比较值
- Excel DAX 有用资源
- DAX - 快速指南
- DAX - 有用资源
- DAX - 讨论
Excel DAX - 计算列
计算列是您通过定义列值的 DAX 公式添加到工作簿数据模型中现有表的列。您创建计算列,而不是导入列中的值。
您可以像使用任何其他表列一样,在数据透视表、数据透视图、Power Pivot 表、Power Pivot 图或 Power View 报表中使用计算列。
了解计算列
用于创建计算列的 DAX 公式类似于 Excel 公式。但是,在 DAX 公式中,您无法为表中的不同行创建不同的公式。DAX 公式会自动应用于整个列。
例如,您可以创建一个计算列,从现有的“日期”列中提取年份,使用以下 DAX 公式:
= YEAR ([Date])
YEAR 是一个 DAX 函数,Date 是表中现有的列。如所见,表名称用括号括起来。您将在“DAX 语法”章节中了解更多相关信息。
当您使用此 DAX 公式向表中添加列时,列值会在您创建公式后立即计算。将创建一个新的列,其标题为 CalculatedColumn1,其中填充了年份值。
列值会根据需要重新计算,例如在刷新基础数据时。您可以根据现有列、计算字段(度量值)和其他计算列创建计算列。
创建计算列
考虑以下屏幕截图中显示的包含奥运会结果的数据模型。
- 单击数据视图。
- 单击“结果”选项卡。
您将查看“结果”表。
如上图所示,最右侧列的标题为“添加列”。
- 单击功能区上的“设计”选项卡。
- 单击“列”组中的“添加”。
指针将出现在公式栏中。这意味着您正在使用 DAX 公式添加一个列。
- 在公式栏中键入 =YEAR([Date])。
如上图所示,最右侧带有标题“添加列”的列已突出显示。
- 按 Enter 键。
计算需要一段时间(几秒钟)。请稍候。
新计算列将插入到最右侧“添加列”的左侧。
如上图所示,新插入的计算列已突出显示。整个列中的值根据所使用的 DAX 公式显示。列标题为 CalculatedColumn1。
重命名计算列
要将计算列重命名为有意义的名称,请执行以下操作:
- 双击列标题。列名称将被突出显示。
- 选择列名称。
- 键入 Year(新名称)。
如上图所示,计算列的名称已更改。
您还可以通过右键单击该列,然后在下拉列表中单击“重命名”来重命名计算列。
只需确保新名称不与表中现有的名称冲突即可。
检查计算列的数据类型
您可以按如下方式检查计算列的数据类型:
- 单击功能区上的“开始”选项卡。
- 单击“数据类型”。
如上图所示,下拉列表包含列的可能数据类型。在此示例中,选择了默认(自动)数据类型,即整数。
计算列中的错误
计算列中可能出现错误的原因如下:
更改或删除表之间的关系。这是因为使用这些表中列的公式将变得无效。
公式包含循环或自引用依赖项。
性能问题
如前面奥运会结果示例中所见,“结果”表大约有 35000 行数据。因此,当您使用 DAX 公式创建列时,它会立即计算列中的所有 35000 多个值,这需要一些时间。数据模型和表旨在处理数百万行数据。因此,当 DAX 公式引用过多时,可能会影响性能。您可以通过以下方法避免性能问题:
如果您的 DAX 公式包含许多复杂的依赖项,则将其分步创建,并将结果保存在新的计算列中,而不是一次创建单个大型公式。这使您能够验证结果并评估性能。
当数据发生修改时,需要重新计算计算列。您可以将重新计算模式设置为手动,从而节省频繁的重新计算。但是,如果计算列中的任何值不正确,则该列将变灰,直到您刷新并重新计算数据。