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

Отнася се за
Excel за Microsoft 365 Excel 2024 Excel 2021

Когато работите с данни в Power Pivot, може да се наложи да обновите данните от техния източник, да преизчислите формулите в изчисляемите колони или да актуализирате обобщени таблици, които използват модела на данните.

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

Разбиране на обновяването на данните спрямо преизчисляването

Power Pivot използва обновяване и преизчисляване на данните:

Обновяването на данните означава получаване на актуални данни от външни източници на данни. Power Pivot не открива автоматично промени във външни източници на данни. За да въведете актуализирани данни, обновете модела на данните.

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

Важно

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

Ръчно или автоматично преизчисляване

По подразбиране Power Pivot автоматично преизчислява както е необходимо, като същевременно оптимизира времето, необходимо за обработка. Въпреки че преизчисляването може да отнеме време, то е важна задача. По време на преизчисляването Power Pivot проверява зависимостите на колоните и ви уведомява, ако колона е променена, ако данните са невалидни или ако се появи грешка във формула, която преди е работила. Можете обаче да изберете да откажете проверката и да актуализирате изчисленията само ръчно, особено ако работите със сложни формули или с много големи набори от данни и искате да управлявате времето на актуализациите.

Както ръчният, така и автоматичният режим имат предимства. Използвайте обаче режима на автоматично преизчисляване. Този режим поддържа метаданните на Power Pivot синхронизирани и предотвратява проблеми, причинени от изтриване на данни, промени в имена или типове данни или липсващи зависимости. 

Използване на автоматично преизчисляване

Когато използвате режима на автоматично преизчисляване, всички промени в данните, които биха предизвикали промяна на резултата от която и да е формула, предизвикват преизчисляване на цялата колона, съдържаща формула. Следните промени винаги изискват преизчисляване на формули:

  • Стойностите от външен източник на данни се обновяват.
  • Дефиницията на формулата е променена.
  • Имената на таблиците или колоните, към които има препратки във формула, се променят.
  • Релациите между таблиците се добавят, променят или изтриват.
  • Добавят се нови мерки или изчисляеми колони.
  • В работната книга се извършват промени в другите формули, така че колоните или изчисленията, които зависят от това изчисление, трябва да се обновят.
  • Редовете се вмъкват или изтриват.
  • Приложили сте филтър, който изисква изпълнение на заявка за актуализиране на набора от данни. Филтърът може да бъде приложен във формула или като част от обобщена таблица или обобщена диаграма.

Използване на ръчно преизчисляване

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

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

Ако настроите работната книга в режим на ръчно изчисление, Power Pivot в Excel не извършва проверка или проверка на формули. Получава се следните резултати:

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

За да конфигурирате работната книга за ръчно преизчисляване

  1. В Power Pivot изберете "Проектиране>на изчисления>", "Опции> за изчисления","Режим на ръчно изчисление".
  2. За да преизчислите всички таблици, изберете "Опции> за изчисления"Изчисли сега.
    Работната книга проверява формули за грешки и актуализира таблиците с резултати. В зависимост от обема на данните и броя на изчисленията работната книга може временно да спре да отговаря.

Важно

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

Отстраняване на неизправности при преизчисляване

Зависимости

Когато дадена колона зависи от друга колона и съдържанието на тази друга колона се промени по някакъв начин, може да се наложи да преизчислите всички свързани колони. Винаги когато правите промени в работната книга на 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 винаги ги преизчислява.