PowerPivot 中的计算列

计算列使您能够将新数据添加到 Power Pivot 数据模型中的表中。 创建一个定义列值的数据分析表达式(DAX)公式,而不是将值粘贴到列中,而是创建数据分析表达式(DAX)公式。

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

此图展示了 Power Pivot 中的计算列。

计算列

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

了解计算列

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

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

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

示例

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

请查看此公式:

= EOMONTH ([开始日期],0])

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

命名计算列

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

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

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

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

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

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

若要重命名或编辑现有计算列,请执行以下操作:

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

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

更改数据类型

可以更改计算列的数据类型,方法与更改其他列的数据类型相同。 您不能进行以下数据类型更改:从文本转换为十进制,从文本转换为整数,从文本转换为货币,以及从文本更改为 "日期"。 您可以将文本更改为布尔值。

计算列的性能

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

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

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

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

  • 不要创建包含许多复杂依赖关系的单个公式,而是在步骤中创建公式,并将结果保存到列中,以便你可以验证结果并评估性能更改。

  • 对数据的修改通常会引发计算列的更新。 你可以通过将重新计算模式设置为 "手动" 来阻止此操作。 但是请记住,如果计算列中的任何值不正确,则在刷新和重新计算数据之前,该列将被禁用。

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

  • 如果创建包含循环或自引用依赖关系的公式,将出现错误。

任务

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

注意:  本页面是自动翻译的,可能包含语法错误或不准确之处。 我们的目的是使此内容能对你有所帮助。 能否告知我们此信息是否有所帮助? 下面是该参考内容的英文版

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

此信息是否有帮助?

谢谢您的反馈!

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

×