重新计算故障排除

本节提供计划何时重新计算工作簿时应注意的其他技术提示。 有关重新计算和刷新工作簿中数据的常规信息,请参阅以下主题:

重新计算公式

更新 PowerPivot 中的数据的不同方式

依赖关系

当某列依赖于另一列,并且后一列的内容已通过任何方式发生变化时,所有相关的列可能需要重新计算。 只要对 PowerPivot 工作簿进行了更改,PowerPivot for Excel 就会对现有 PowerPivot 数据执行分析,以确定是否需要重新计算,然后以最有效的方法执行更新。

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

PowerPivot 始终执行表的完整重新计算,因为与检查更改的值相比,完整的重新计算效率更高。触发重新计算的更改包括删除列、更改列的数值数据类型或添加新列这样的重大更改。 但是,看起来微不足道的更改(如更改列名称)也可能触发重新计算。 这是因为列名称在公式中用作标识符。

在某些情况下,PowerPivot for Excel 可能确定可以从重新计算中排除列。 例如,如果您有一个从 Products 表中查找值(如 [Product Color])的公式,而所更改的列为 Sales 表中的 [Quantity],则无需对该公式进行重新计算,即使 Sales 表和 Products 表相关也不例外。 但是,如果您有任何依赖 Sales[Quantity],则需要进行重新计算。

依赖列的重新计算顺序

在任何重新计算之前计算依赖项。 如果有多个列且它们互相依赖,PowerPivot 将遵循依赖项的顺序。 这可确保以最大速度按正确的顺序对列进行处理。

事务

执行重新计算或刷新数据的操作就如同一个“事务”。 这意味着,如果刷新操作的任何部分失败,剩下的操作都将回滚。 这是为了确保数据不会处于部分处理状态。 您不能像在关系数据库中那样管理事务,也不能创建检查点。

可变函数的重新计算

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

请参阅

概念

将计算添加到报表、图表和数据透视表

手动重新计算 PowerPivot 中的公式

重新计算公式

更新 PowerPivot 中的数据的不同方式