Applies ToMicrosoft 365 专属 Excel Excel 2024 Excel 2021 Excel 2019 Excel 2016

计算列使你能够向 Power Pivot 数据模型中的表添加新数据。 无需将值粘贴或导入列,而是 (定义列值的 DAX) 公式创建数据分析表达式

例如,如果需要将销售利润值添加到 factSales 表中的每一行。 通过添加新的计算列,并使用公式 =[SalesAmount]-[TotalCost]–[ReturnAmount],新值是通过从 SalesAmount 列的每一行中减去 TotalCost 和 ReturnAmount 列中每一行的值来计算的。 然后,可以在数据透视表、数据透视图或 Power View 报表中使用“利润”列,就像使用任何其他列一样。

此图显示 Power Pivot 中的计算列。

计算列

注意: 虽然计算列和度量值相似,因为每个列和度量值都依赖于公式,但它们是不同的。 度量值最常用于数据透视表或数据透视图的 “值” 区域。 如果要将计算结果置于数据透视表的不同区域(例如数据透视表中的列或行),或者位于数据透视图的轴上,请使用计算列。 有关度量值的详细信息,请参阅 Power Pivot 中的度量值

了解计算列

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

当某列中包含公式时,将为每一行都计算值。 输入公式后,将立即计算列的结果。 然后根据需要重新计算列值,例如刷新基础数据时。

可以根据度量值和其他计算列创建计算列。 例如,可以创建一个计算列以从文本字符串中提取数字,然后在另一个计算列中使用该数字。

示例

可以使用添加到现有表中的数据支持计算列。 例如,可以选择连接值、执行加法、提取子字符串或比较其他字段中的值。 若要添加计算列,应在 Power Pivot 中至少有一个表。

查看此公式:

=EOMONTH ([StartDate],0])

使用 Contoso 示例数据,此公式从 Promotion 表中的 StartDate 列中提取月份。 然后,它会计算“促销”表中每一行的月末值。 第二个参数指定 StartDate 中月份之前或之后的月份数;在本例中,0 表示同一个月。 例如,如果 StartDate 列中的值为 6/1/2001,则计算列中的值将为 6/30/2001。

命名计算列

默认情况下,新的计算列将添加到其他列的右侧,并且会自动为该列分配默认名称 CalculatedColumn1CalculatedColumn2 等。 创建列后,可以根据需要重新排列和重命名列。

对计算列的更改存在一些限制:

  • 每个列名称在表中应是唯一的。

  • 避免已用于同一工作簿中的度量值的名称。 尽管度量值和计算列可能具有相同的名称,但如果名称不唯一,则很容易出现计算错误。 为了避免意外调用度量值,在引用列时始终使用完全限定的列引用。

  • 重命名计算列时,还必须更新依赖于现有列的任何公式。 除非处于手动更新模式,否则会自动更新公式结果。 但是,此操作可能需要一些时间。

  • 某些字符不能在列的名称或 Power Pivot 中的其他对象名称中使用。 有关详细信息,请参阅 Power Pivot 的 DAX 语法规范中的“命名要求”。

重命名或编辑现有计算列:

  1. “Power Pivot ”窗口中,右键单击要重命名的计算列的标题,然后单击“ 重命名列”。

  2. 键入新名称,然后按 Enter 接受新名称。

更改数据类型

可以更改计算列的数据类型,就像更改其他列的数据类型一样。 不能进行以下数据类型更改:从文本更改为十进制、从文本更改为整数、从文本更改为货币,以及从文本到日期。 可以从文本更改为布尔值。

计算列的性能

计算列的公式可能比用于度量值的公式更耗费资源。 一个原因是,计算列的结果始终针对表中的每一行进行计算,而度量值仅针对数据透视表或数据透视图中使用的单元格进行计算。

例如,包含 100 万行的表将始终具有包含 100 万个结果的计算列,并且对性能产生相应的影响。 但是,数据透视表通常通过应用行标题和列标题来筛选数据。 这意味着仅针对数据透视表每个单元格中的数据子集计算度量值。

公式依赖于公式中的对象引用,例如计算值的其他列或表达式。 例如,在计算另一列之前,无法计算基于另一列的计算列或包含具有列引用的表达式的计算。 默认情况下,自动刷新处于启用状态。 因此,请记住,公式依赖项可能会影响性能。

若要避免创建计算列时出现性能问题,请遵循以下准则:

  • 与其创建包含许多复杂依赖项的单个公式,不如在步骤中创建公式,并将结果保存到列,以便可以验证结果并评估性能变化。

  • 对数据的修改通常会对计算列进行更新。 可以通过将重新计算模式设置为手动来防止这种情况。 但请记住,如果计算列中的任何值不正确,将禁用该列,直到刷新并重新计算数据。

  • 如果更改或删除表之间的关系,在这些表中使用列的公式将变为无效。

  • 如果创建包含循环或自引用依赖项的公式,将发生错误。

任务

有关使用计算列的详细信息,请参阅Create计算列

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。