PowerPivot 中的计算列

使用计算列,可以将新数据添加到数据模型中的 Power Pivot 表中。 无需将值粘贴或导入列,而是使用定义列值的 DAX (创建) 表达式。

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

下图显示了计算结果中的 Power Pivot 。

计算列

注意: 尽管计算列和度量值相似,因为每个计算列和度量值都依赖于公式,但两者不同。 度量值通常在数据 透视表或 数据透视图的"值"区域中使用。 当您想要将计算结果放在数据透视表的不同区域(例如数据透视表中的列或行)或数据透视图的坐标轴上时,请使用计算列。 有关度量值详细信息,请参阅 Power Pivot 中的度量值

了解计算列

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

当某列中包含公式时,将为每一行都计算值。 一旦输入公式,就会为列计算结果。 然后会在必要时重新计算列值,例如刷新基础数据时。

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

示例

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

查看此公式:

=EOMONTH ([StartDate],0])

此公式使用 Contoso 示例数据从"促销"表中的 StartDate 列中提取月份。 然后,它计算"促销"表中每一行的月结束值。 第二个参数指定 StartDate 中月份之前或之后几个月的月份数;在这种情况下,0 表示同一月。 例如,如果 StartDate 列中的值为 6/1/2001,则计算列中的值为 6/30/2001。

命名计算列

默认情况下,新计算列将添加到其他列的右侧,并且会自动为列分配默认名称CalculatedColumn1、CalculatedColumn2等。 创建列后,可在必要时重新排列和重命名列。

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

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

  • 避免已用于同一工作簿中的度量值的名称。 虽然度量值和计算列可以具有相同的名称,但如果名称不唯一,则可以轻松获取计算错误。 为了避免意外调用度量值,在引用列时始终使用完全限定的列引用。

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

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

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

  1. Power Pivot ,右键单击要重命名的计算列的标题,然后单击"重命名列"。

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

更改数据类型

您可以更改数据类型列的列的列数,方法与更改其他列的数据类型相同。 不能进行以下数据类型更改:从文本到小数、从文本到整数、从文本到货币,以及从文本到日期。 你可以从文本更改为布尔值。

计算列的性能

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

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

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

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

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

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

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

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

任务

有关使用计算列的信息,请参阅"创建计算列"。

需要更多帮助?

扩展你的 Office 技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×