При работе с данными в Power Pivot может потребоваться обновить данные из их источника, пересчитать формулы в вычисляемых столбцах или обновить сводные таблицы, в которых используется модель данных.
В этой статье объясняется разница между обновлением данных и пересчетом, приводится обзор запуска пересчета и опции управления пересчетом.
Общие сведения об обновлении данных и пересчете
В Power Pivot используются как обновление данных, так и пересчет:
Обновление данных означает получение актуальных данных из внешних источников данных. Power Pivot не обнаруживает изменения во внешних источниках данных автоматически. Чтобы перенести обновленные данные, обновите модель данных.
Пересчет означает обновление всех столбцов, таблиц, диаграмм и сводных таблиц в книге, содержащих формулы. Так как пересчет формулы влияет на производительность, важно понимать зависимости, связанные с каждым вычислением.
Важно
Не сохраняйте и не публикуйте книгу, пока формулы не будут пересчитаны.
Ручной или автоматический пересчет
По умолчанию Power Pivot автоматически пересчитывает необходимые вычисления, оптимизируя время, необходимое для обработки. Пересчет может занять некоторое время, но это важная задача. При пересчете Power Pivot проверяет зависимости столбцов и сообщает вам, если столбец изменился, если данные недопустимы или если в формуле, которая раньше работала, возникает ошибка. Однако можно отказаться от проверки и обновлять вычисления вручную, особенно если вы работаете со сложными формулами или очень большими наборами данных и хотите управлять сроками обновлений.
Как ручной, так и автоматический режимы имеют преимущества. Но используйте режим автоматического пересчета. Этот режим синхронизирует метаданные Power Pivot и предотвращает проблемы, вызванные удалением данных, изменением имен или типов данных либо отсутствием зависимостей.
Использование автоматического пересчета
При использовании режима автоматического пересчета любое изменение данных, которое может привести к изменению результата любой формулы, инициирует пересчет всего столбца, содержащего формулу. Следующие изменения всегда требуют пересчета формул:
- Значения из внешнего источника данных обновляются.
- Определение формулы изменилось.
- Имена таблиц или столбцов, на которые ссылается формула, изменяются.
- Связи между таблицами добавляются, изменяются или удаляются.
- Добавляются новые меры или вычисляемые столбцы.
- Изменения вносятся и в другие формулы в книге, поэтому столбцы или вычисления, зависящие от этих вычислений, следует обновить.
- Строки вставляются или удаляются.
- Вы применили фильтр, требующий выполнения запроса для обновления набора данных. Фильтр можно применять как в формуле, так и в составе сводной таблицы либо сводной диаграммы.
Пересчет вручную
Пересчитывайте вручную, чтобы не тратить затраты на вычисление результатов формулы до тех пор, пока не будете готовы. Ручной режим особенно полезен в следующих ситуациях:
- Вы разрабатываете формулу с помощью шаблона и хотите изменить имена столбцов и таблиц, используемых в формуле, перед ее проверкой.
- Вы знаете, что некоторые данные в книге изменились, но вы работаете с другим столбцом, который не изменился, поэтому требуется отложить пересчет.
- Вы работаете с книгой с большим количеством зависимостей и хотите отложить пересчет до тех пор, пока не убедитесь в том, что выполнены все необходимые изменения.
Если для книги задано ручное вычисление, Power Pivot в Excel не выполняет проверку формул. Будут получены следующие результаты:
- Все новые формулы, добавляемые в книгу, помечаются как содержащие ошибки.
- В новых вычисляемых столбцах результаты не отображаются.
Настройка книги для ручного пересчета
- В Power Pivot выберите "Проектные>расчеты>""Параметры> вычислений" "Режим ручного расчета".
- Чтобы пересчитать все таблицы, нажмите кнопку "Параметры> вычислений""Вычислить сейчас".
Книга проверяет формулы на наличие ошибок и обновляет таблицы результатами. В зависимости от объема данных и количества вычислений книга может временно перестать отвечать на запросы.
Важно
Перед публикацией книги измените режим вычисления на автоматический. Это изменение помогает предотвратить проблемы при разработке формул.
Устранение неполадок пересчета
Зависимости
Если столбец зависит от другого столбца и содержимое этого другого столбца каким-либо образом изменяется, может потребоваться пересчитать все связанные столбцы. Когда вы вносите изменения в книгу Power Pivot, Power Pivot в Excel анализирует имеющиеся данные Power Pivot, чтобы определить, требуется ли пересчет, и выполняет обновление наиболее эффективным способом.
Например, предположим, что есть таблица "Продажи", связанная с таблицами "Продукт " и "КатегорияТовара"; формулы в таблице "Продажи " зависят от обеих других таблиц. Любое изменение таблиц "Товар " или " КатегорияТовара " приводит к пересчету всех вычисляемых столбцов таблицы "Продажи ". Такое поведение имеет смысл, если учесть, что у вас могут быть формулы для сведения продаж по категориям или продуктам. Чтобы убедиться в правильности результатов, необходимо пересчитать формулы на основе данных.
Power Pivot всегда пересчитывает таблицу, потому что полный пересчет более эффективен, чем проверка измененных значений. Изменения, которые запускают пересчет, могут включать в себя такие серьезные изменения, как удаление столбца, изменение числового типа данных столбца или добавление нового столбца. Однако кажущиеся незначительными изменения, такие как изменение имени столбца, также могут привести к пересчету. Это происходит из-за того, что имена столбцов используются в формулах в качестве идентификаторов.
В некоторых случаях Power Pivot определяет, что может исключить столбцы из пересчета. Например, если у вас есть формула, которая ищет значение [Цвет товара] в таблице "Товары", а в таблице "Продажи" используется измененный столбец [Количество], то формулу не нужно пересчитывать, даже если таблицы "Продажи" и "Товары" связаны. Однако если есть формулы, которые зависят от значения "Продажи[Количество]", потребуется пересчет.
Последовательность пересчета для зависимых столбцов
Power Pivot вычисляет зависимости, прежде чем пересчитать какие-либо столбцы. Если несколько столбцов зависят друг от друга, Power Pivot использует последовательность зависимостей. Такая последовательность гарантирует, что Power Pivot обрабатывает столбцы в правильном порядке и с максимальной скоростью.
Транзакции
Операции пересчета или обновления данных выполняются в виде транзакции. В случае сбоя какой-либо части операции обновления остальные операции откатываются. Такое поведение гарантирует, что данные не останутся в частично обработанном состоянии. Управлять транзакциями так же просто, как в реляционной базе данных, и создать контрольные точки невозможно.
Пересчет переменных функций
Некоторые функции, такие как NOW, , RANDили TODAY, не имеют фиксированных значений. Чтобы избежать проблем с производительностью, выполнение запроса или фильтрация обычно не приводит к тому, что Power Pivot повторно оценивает эти функции, если они используются в вычисляемом столбце. Power Pivot пересчитывает результаты для этих функций только в том случае, если пересчитывает весь столбец. К таким ситуациям относятся обновление из внешнего источника данных или ручное редактирование данных, что приводит к повторному вычислению формул, содержащих эти функции. Однако если используются переменные функции, такие как NOW, , RAND, или TODAY при определении вычисляемого поля, Power Pivot всегда пересчитывает их.