Преизчисляване на формули в Power Pivot

Отнася се за
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, за да определи дали е необходимо преизчисляване, и извършва актуализацията по възможно най-ефективния начин.

Да предположим например, че имате таблица "Продажби", която е свързана с таблиците "Продукт " и "Категория продукти"; и формулите в таблицата " Продажби " зависят и от двете таблици. Всяка промяна в таблиците " Продукт " или " Категория на продукти " ще доведе до преизчисляване на всички изчисляеми колони в таблицата "Продажби ". Това има смисъл, като вземете предвид, че може да имате формули, които обединяват продажбите по категория или по продукти. Следователно, за да сте сигурни, че резултатите са правилни; Формулите, базирани на данните, трябва да се преизчислят.

Power Pivot винаги извършва пълно преизчисляване за таблица, защото пълното преизчисляване е по-ефективно от проверката за променени стойности. Промените, които задействат преизчисляване, може да включват такива големи промени като изтриване на колона, промяна на типа на числовите данни на колона или добавяне на нова колона. Обаче на пръв поглед незначителни промени, като например промяна на името на колона, също могат да предизвикат преизчисляване. Това е така, защото имената на колоните се използват като идентификатори във формулите.

В някои случаи Power Pivot може да определи, че колоните могат да бъдат изключени от преизчисляването. Ако например имате формула, която търси стойност като [Цвят на продукт] от таблицата "Продукти ", а колоната, която е променена, е [Количество] в таблицата "Продажби ", формулата не се нуждае от преизчисляване, въпреки че таблиците "Продажби " и "Продукти " са свързани. Ако обаче имате формули, които разчитат на "Продажби [Количество], се изисква преизчисляване.

Последователност на преизчисление за зависими колони

Зависимостите се изчисляват преди всяко преизчисляване. Ако има няколко колони, които зависят една от друга, Power Pivot следва последователността на зависимостите. Това гарантира, че колоните се обработват в правилния ред с максимална скорост.

Транзакции

Операциите, които преизчисляват или обновяват данни, се извършват като транзакция. Това означава, че ако някоя част от операцията за обновяване е неуспешна, останалите операции се анулират. Това е, за да се гарантира, че данните няма да останат в частично обработено състояние. Не можете да управлявате транзакциите, както правите в релационна база данни, или да създавате контролни точки.

Преизчисляване на непостоянни функции

Някои функции, като например NOW, RAND или TODAY, нямат фиксирани стойности. За да се избегнат проблеми с производителността, изпълнението на заявка или филтриране обикновено няма да доведе до преизчисляването на подобни функции, ако те се използват в изчисляема колона. Резултатите за тези функции се преизчисляват само когато се преизчислява цялата колона. Такива ситуации обхващат обновяване от външен източник на данни или ръчно редактиране на данни, което води до преизчисляване на формули, съдържащи посочените функции. Обаче непостоянните функции, като например NOW, RAND или TODAY, винаги ще се преизчисляват, ако функцията е използвана в дефиницията на изчисляемо поле.