重新计算 Power Pivot 中的公式

当您在 Power Pivot 中处理数据时,您可能需要随时从源刷新数据,请重新计算在计算列中创建的公式,或确保数据透视表中的数据是最新的。

本主题介绍刷新数据与重新计算数据之间的差异,提供了如何触发重新计算的概述,并介绍了用于控制重新计算的选项。

了解数据刷新与重新计算

Power Pivot 同时使用数据刷新和重新计算:

数据刷新指获取来自外部数据源的最新数据。 Power Pivot 不会自动检测外部数据源中的更改,但可以从 Power Pivot 窗口手动刷新数据,也可以在 SharePoint 上共享工作簿时自动刷新。

重新计算意味着更新工作簿中包含公式的所有列、表、图表和数据透视表。 由于计算公式会导致性能开销,因此了解与每个计算相关联的依赖关系非常重要。

重要:  不应保存或发布工作簿,直到重新计算了该工作簿中的公式为止。

手动和自动重新计算

默认情况下, Power Pivot 会根据需要自动重新计算,同时优化处理所需的时间。 虽然重新计算可能需要花费时间,但这是一项重要的任务,因为在重新计算期间,检查列的相关性,并且如果数据无效,或者如果公式中出现错误,则会收到通知。 但是,你可以选择放弃验证并仅手动更新计算,尤其是在处理复杂公式或非常大的数据集并希望控制更新计时时。

手动和自动模式都有优势;但是,强烈建议你使用自动重新计算模式。 此模式保持 Power Pivot 元数据同步,并防止删除数据、名称或数据类型更改或缺少依赖项导致的问题。 

使用自动重新计算

使用 "自动重新计算" 模式时,对将导致任何公式更改的结果所做的任何更改都将触发对包含公式的整个列的重新计算。 以下更改始终要求重新计算公式:

  • 已刷新外部数据源中的值。

  • 公式定义已更改。

  • 公式中引用的表或列的名称已更改。

  • 添加、修改或删除表之间的关系。

  • 已添加新度量值或计算列。

  • 对工作簿中的其他公式进行了更改,因此应刷新依赖该计算的列或计算。

  • 已插入或删除行。

  • 应用了需要执行查询以更新数据集的筛选器。 筛选器可能已应用于公式或数据透视表或数据透视图的一部分。

使用手动重新计算

您可以使用手动重新计算来避免在准备就绪之前产生计算公式结果的成本。 在以下情况下,手动模式非常有用:

  • 你正在使用模板设计公式,并且希望在验证公式之前更改公式中使用的列和表的名称。

  • 你知道工作簿中的某些数据已更改,但你正在处理的另一列未更改,因此你希望推迟重新计算。

  • 你正在使用具有许多依赖关系的工作簿,并且希望推迟重新计算,直到你确定已进行所有必要的更改。

请注意,只要工作簿设置为手动计算模式, Microsoft Excel 2013 中的 Power Pivot 不会对公式执行任何验证或检查,结果如下:

  • 添加到工作簿的任何新公式都将标记为包含错误。

  • 新的计算列中不会显示任何结果。

为手动重新计算配置工作簿

  1. Power Pivot中,单击 "设计>计算">计算选项">手动计算模式"。

  2. 若要重新计算所有表,请单击 "计算选项"> "立即计算"。

    将检查工作簿中的公式是否存在错误,并根据结果(如果有)更新表。 工作簿可能会在一段时间后停止响应,具体取决于数据量和计算次数。

重要:  在发布工作簿之前,应始终将计算模式更改回 "自动"。 这将有助于防止在设计公式时出现问题。

重新计算疑难解答

相关性

当某一列依赖于另一列且其他列的内容以任何方式更改时,可能需要重新计算所有相关列。 每当对 Power Pivot 工作簿进行更改时, Microsoft Excel 2013 中的 Power Pivot 将对现有的 Power Pivot 数据进行分析以确定是否需要重新计算,并以最高效的方式执行更新。

例如,假设您有一个与表、产品ProductCategory相关的表格和销售额;和 "销售额" 表中的公式都依赖于其他两个表。 对ProductProductCategory表所做的任何更改都将导致重新计算Sales表中的所有计算列。 当您认为可能有可按类别或产品汇总销售额的公式时,这是有意义的。 因此,请确保结果正确;必须重新计算基于数据的公式。

Power Pivot 始终对表执行完整的重新计算,因为完整的重新计算比检查更改的值效率更高。 触发重新计算的更改可能包括删除列、更改列的数值数据类型或添加新列等重要更改。 但是,看似简单的更改(如更改列的名称)也可能会触发重新计算。 这是因为列的名称用作公式中的标识符。

在某些情况下, Power Pivot 可能会确定列可以从重新计算中排除。 例如,如果你有一个从Products表中查找值(如[产品颜色] )的公式,而更改的列是 "销售" 表中的 " [数量] ",则即使表销售额产品相关,也不需要重新计算公式。 但是,如果你有任何依赖于销售 [数量]的公式,则需要重新计算。

从属列的重新计算序列

相关性在任何重新计算之前计算。 如果存在多个相互依赖的列, Power Pivot 将遵循依赖关系的顺序。 这可确保以最大速度按正确的顺序处理列。

重新计算或刷新数据的操作作为事务进行。 这意味着,如果刷新操作的任何部分失败,则会回退剩余的操作。 这是为了确保数据不会处于部分已处理状态。 您不能像在关系数据库中那样管理事务,也不能创建检查点。

可变函数的重新计算

某些函数(如 "现在"、"RAND" 或 "今天")没有固定值。 为了避免性能问题,当在计算列中使用查询或筛选时,执行查询或筛选通常不会导致此类函数被重新计算。 仅当重新计算整个列时,才会重新计算这些函数的结果。 这些情况包括来自外部数据源的刷新或手动编辑数据,会导致重新计算包含这些函数的公式。 但是,如果函数在计算字段的定义中使用,则将始终重新计算可变函数(如 NOW、RAND 或 TODAY)。

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

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

此信息是否有帮助?

谢谢您的反馈!

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

×