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