重新计算 Power Pivot 中的公式

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

本主题介绍刷新数据与重新计算数据的区别,概述如何触发重新计算,并介绍用于控制重新计算的选项。

了解数据刷新与重新计算

Power Pivot 数据刷新和重新计算:

数据 刷新意味着从外部数据源获取最新数据。 Power Pivot 不会自动检测外部数据源中的更改,但是,如果工作簿在 SharePoint 上共享,则可以从 Power Pivot 窗口手动刷新数据。

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

重要:  在重新计算工作簿中的公式之前,不应保存或发布工作簿。

手动与自动重新计算

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

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

使用自动重新计算

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

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

  • 公式的定义已更改。

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

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

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

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

  • 已插入或删除行。

  • 应用了一个筛选器,该筛选器要求执行查询来更新数据集。 筛选器可以应用于公式中,也可以作为数据透视表或数据透视图的一部分应用。

使用手动重新计算

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

  • 使用模板设计公式,并想要在验证公式之前更改公式中使用的列和表的名称。

  • 您知道工作簿中的某些数据已更改,但您处理的不同列并未更改,因此您希望推迟重新计算。

  • 您正在处理具有许多依赖项的工作簿,并且希望延迟重新计算,直到您确定已进行所有必要的更改。

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

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

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

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

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

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

    工作簿中的公式会检查错误,并且表格会更新为结果(如果有)。 根据数据量和计算次数,工作簿在一段时间可能无响应。

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

重新计算疑难解答

相关性

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

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

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

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

从属列的重新计算序列

依赖项在重新计算之前计算。 如果有多个列彼此依赖,则 Power Pivot 依赖关系的顺序。 这可确保以最大速度按正确的顺序处理列。

事务

重新计算或刷新数据的操作以事务方式发生。 这意味着,如果刷新操作的任何部分失败,剩余的操作会回滚。 这是为了确保数据不会离开部分处理状态。 无法像在事务处理中一样管理事务关系数据库或创建检查点。

重新计算易失性函数

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

需要更多帮助?

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

此信息是否有帮助?

谢谢您的反馈!

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

×