Повторное вычисление формул в PowerPivot

Применяется к
Excel для Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

При работе с данными в Power Pivot время от времени может потребоваться обновлять данные из источника, пересчитывать формулы, созданные в вычисляемых столбцах, или обеспечивать актуальность данных, представленных в сводной таблице.

В этом разделе объясняется разница между обновлением данных и пересчетом данных, приводится обзор запуска пересчета, а также опции управления пересчетом.

Общие сведения об обновлении данных и пересчете

В Power Pivot используются как обновление данных, так и пересчет:

Обновление данных означает получение актуальных данных из внешних источников данных. Power Pivot не обнаруживает изменения во внешних источниках данных автоматически, но их можно обновить вручную из окна Power Pivot или автоматически, если книга опубликована в SharePoint.

Пересчет означает обновление всех столбцов, таблиц, диаграмм и сводных таблиц в книге, содержащих формулы. Так как пересчет формулы влечет за собой снижение производительности, важно понимать зависимости, связанные с каждым вычислением.

Важно

Не следует сохранять или публиковать книгу, пока формулы в ней не будут пересчитаны.

Ручной или автоматический пересчет

По умолчанию Power Pivot автоматически пересчитывает необходимые вычисления, оптимизируя время, необходимое для обработки. Пересчет может занять некоторое время, но это важная задача, так как при пересчете проверяются зависимости столбцов и отображается уведомление об изменении столбца, о недопустимых данных или о том, что в формуле, которая раньше работала, появляется ошибка. Однако можно отказаться от проверки и обновлять вычисления вручную, особенно если вы работаете со сложными формулами или очень большими наборами данных и хотите управлять временем обновлений.

Как ручной, так и автоматический режимы имеют преимущества; Однако мы настоятельно рекомендуем использовать режим автоматического пересчета. Этот режим поддерживает синхронизацию метаданных Power Pivot и предотвращает проблемы, вызванные удалением данных, изменением имен или типов данных либо отсутствием зависимостей. 

Использование автоматического пересчета

При использовании режима автоматического пересчета любые изменения данных, которые могут привести к изменению результата какой-либо формулы, вызывают пересчет всего столбца, содержащего формулу. Следующие изменения всегда требуют пересчета формул:

  • Значения из внешнего источника данных были обновлены.
  • Определение формулы изменилось.
  • Имена таблиц или столбцов, на которые ссылается формула, были изменены.
  • Связи между таблицами были добавлены, изменены или удалены.
  • Добавлены новые меры или вычисляемые столбцы.
  • В другие формулы книги были внесены изменения, поэтому столбцы или вычисления, зависящие от этих вычислений, следует обновить.
  • Строки были вставлены или удалены.
  • Вы применили фильтр, требующий выполнения запроса для обновления набора данных. Фильтр можно применять как в формуле, так и в составе сводной таблицы либо сводной диаграммы.

Использование ручного пересчета

Можно выполнить пересчет вручную, чтобы не платить затраты на вычисление результатов формулы до тех пор, пока не будете готовы. Ручной режим особенно полезен в следующих ситуациях:

  • Вы разрабатываете формулу с помощью шаблона и хотите изменить имена столбцов и таблиц, используемых в формуле, перед ее проверкой.
  • Вы знаете, что некоторые данные в книге изменились, но работаете с другим столбцом, который не изменился, поэтому требуется отложить пересчет.
  • Вы работаете с книгой с большим количеством зависимостей и хотите отложить перерасчет до тех пор, пока не убедитесь, что все необходимые изменения были внесены.

Обратите внимание, что если книга находится в режиме ручного вычисления, Power Pivot в Excel не выполняет проверку формул. При этом выводятся следующие результаты:

  • Все новые формулы, добавляемые в книгу, будут помечаться как содержащие ошибки.
  • В новых вычисляемых столбцах результаты отображаться не будут.

Настройка книги для ручного пересчета

  1. В Power Pivot щелкните "Проектные>расчеты>"Параметры> вычисленийРежим ручного вычисления.
  2. Чтобы пересчитать все таблицы, нажмите кнопку Параметры> вычисленийВычислить сейчас.
    Формулы в книге проверяются на наличие ошибок, а таблицы обновляются с добавлением результатов (если они есть). В зависимости от объема данных и количества вычислений книга может на некоторое время перестать отвечать на запросы.

Важно

Перед публикацией книги всегда следует возвращаться к автоматическому режиму вычисления. Это поможет предотвратить проблемы при разработке формул.

Устранение неполадок пересчета

Зависимости

Если столбец зависит от другого столбца и содержимое этого другого столбца каким-либо образом изменяется, может потребоваться пересчитать все связанные столбцы. Когда в книгу Power Pivot вносятся изменения, Power Pivot в Excel анализирует имеющиеся данные Power Pivot, чтобы определить, требуется ли пересчет, и выполняет обновление наиболее эффективным способом.

Например, предположим, что есть таблица "Продажи", связанная с таблицами "Продукт " и "КатегорияТовара"; формулы в таблице "Продажи " зависят от обеих других таблиц. Любое изменение таблиц Product или ProductCategory приведет к пересчету всех вычисляемых столбцов в таблице "Продажи ". Это имеет смысл, если учесть, что у вас могут быть формулы, которые сводят продажи по категориям или продуктам. Поэтому, чтобы быть уверенным в том, что результаты правильные; формулы, основанные на этих данных, необходимо пересчитать.

Power Pivot всегда пересчитывает таблицу, потому что полный пересчет более эффективен, чем проверка измененных значений. Изменения, которые вызывают пересчет, могут включать такие серьезные изменения, как удаление столбца, изменение числового типа данных столбца или добавление нового столбца. Однако кажущиеся незначительными изменения, такие как изменение имени столбца, также могут привести к пересчету. Это связано с тем, что имена столбцов используются в формулах в качестве идентификаторов.

В некоторых случаях Power Pivot может определить, что столбцы можно исключить из пересчета. Например, если в формуле подставляется значение [Цвет товара] в таблице "Товары", а в таблице "Продажи" используется изменяющийся столбец [Количество], то эту формулу не нужно пересчитывать, даже если таблицы "Продажи" и "Товары" связаны. Однако если есть формулы, которые зависят от значения "Продажи[Количество]", потребуется пересчет.

Последовательность пересчета для зависимых столбцов

Зависимости вычисляются до пересчета. Если существует несколько столбцов, которые зависят друг от друга, Power Pivot использует последовательность зависимостей. Это гарантирует, что столбцы обрабатываются в правильном порядке на максимальной скорости.

Транзакции

Операции пересчета или обновления данных выполняются в виде транзакции. Это означает, что в случае сбоя какой-либо части операции обновления остальные операции откатываются. Это необходимо для того, чтобы данные не оставались в частично обработанном состоянии. Невозможно управлять транзакциями так, как в реляционной базе данных, или создавать контрольные точки.

Пересчет переменных функций

Некоторые функции, такие как ТДАТА, СЛЧИС или СЕГОДНЯ, не имеют фиксированных значений. Чтобы избежать проблем с производительностью, выполнение запроса или фильтрация обычно не приводит к повторной оценке таких функций, если они используются в вычисляемом столбце. Результаты этих функций пересчитываются только при пересчете всего столбца. Такие ситуации включают обновление данных из внешнего источника данных или изменение данных вручную, вызывающие повторное вычисление формул, которые содержат эти функции. Однако переменные функции, такие как ТДАТА, СЛЧИС или СЕГОДНЯ, всегда пересчитываются, если эта функция используется при определении вычисляемого поля.