Кога да използвате изчисляеми колони и изчисляеми полета

Важно : Тази статия е преведена машинно – вижте отказа от отговорност. Английската версия на тази статия за справка можете да намерите тук .

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

Нека първо видим пример, където използваме изчисляема колона за да добавите нова текстова стойност за всеки ред в таблица с име на продукта. Всеки ред в таблица "продукти" съдържа всякакъв вид информация за всеки продукт продаваме. Имаме колони за име на продукта, цвета, размера, цената на дистрибутора и др … Имаме друга свързана таблица с име на продуктова категория, която съдържа колона ProductCategoryName. Това, което искаме е за всеки продукт в таблица Product да включите име на продуктова категория от таблицата продуктова категория. В нашите продукти таблица можем да създадете изчисляема колона, наречена продуктова категория по следния начин:

Елемент за преглеждане с две жълти ленти за съобщения

Нашата нова продуктова категория формула използва функцията за свързани DAX за получаване на стойности от колоната ProductCategoryName в свързаната таблица продуктова категория и след това се въвежда тези стойности за всеки продукт (всеки ред) в таблица Product.

Това е чудесен пример за това как можем да използваме изчисляема колона, за да добавите фиксирана стойност за всеки ред, че можем да използваме по-късно в редове, колони или ФИЛТРИРА област на обобщена таблица или в отчет на Power View.

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

Можем да създадете изчисляема колона, която изчислява сума на печалба за всеки ред изваждане стойностите в колоната РЕАЛИЗАЦИЯ от стойностите в колоната SalesAmount, ето така:

Опция за различен горен и долен колонтитул на първата страница

Сега можем да създадете обобщена таблица и плъзнете полето продуктова категория в колони и нашето ново печалба поле в областта "стойности" (колона в таблица в PowerPivot е поле в списъка с полета на обобщена таблица). Резултатът е неявно мярка, наречена Сума на печалбата. Това е общата сума на стойности от колоната печалба за всеки от различни категории продукти. Нашият резултат изглежда така:

MelbourneIT-Конфигуриране-5

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

Обобщена таблица без полезни стойности

Нашите "печалба" не предоставя никаква полезна информация, когато тя се поставя в колони, редове или филтри области. Само има смисъл като агрегирана стойност в областта на СТОЙНОСТИТЕ.

Какво сме направили е да създадете колона, наречена печалба, която изчислява печалба за всеки ред в таблица на продажбите. След това се добавя печалба към областта на СТОЙНОСТИТЕ на нашите обобщена таблица, автоматичното създаване на неявно мярка, където резултата се изчислява за всеки от продуктови категории. Ако мислите ние наистина изчислява печалба за нашите категории продукти два пъти, които са правилни. Ние първо изчислява печалба за всеки ред в таблица Sales, и след това добавихме печалба към областта на СТОЙНОСТИТЕ, където е агрегирано за всяка една от категориите продукти. Ако възнамерявате също, ние не наистина трябва да създадете изчисляема колона, печалба, можете също са правилни. Но, тогава как можем да изчислите нашите печалба без създаване на печалбата изчисляема колона?

Печалба, наистина ще бъде изчислен по-добре като явни мярка.

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

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

Първо, в таблицата "продажби" ние изберете колоната SalesAmount и след това щракнете върху Автосумиране, за да създадете явни Сума на SalesAmountмярка. Не забравяйте, че явно мярка е един ние създаваме в областта за изчисляване на таблица в Power Pivot. Ние Направете същото за РЕАЛИЗАЦИЯ колона. Ние ще преименувате тези общо SalesAmount и общо РЕАЛИЗАЦИЯ , за да ги направите по-лесно да идентифицирате.

Бутона "Автосумиране" в Power Pivot

След това създайте друга мярка с тази формула:

Общо печалба: = [ общо SalesAmount]-[общо РЕАЛИЗАЦИЯ]

Забележка : Можем също така да напиша нашата формула като общо Profit:=SUM([SalesAmount]) - SUM([COGS]), но чрез създаване на отделни общо SalesAmount и общия РЕАЛИЗАЦИЯ мерки, можем да ги използваме в нашата обобщена таблица също и можем да ги използвате като аргументи във всякакви други мярка формули.

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

Обобщена таблица

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

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

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

В този пример искаме да изчислите суми от продажби като процент от общата сума на продажбите. Създаване на изчисляема колона, наречена % от продажбите в нашата таблица на продажбите по следния начин:

Бутон ''Текстово поле''

Нашите формули състояния: за всеки ред в таблица Sales, дели стойността в колоната SalesAmount общата сума на всички стойности в колона SalesAmount.

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

Обобщена таблица, показваща "Сума на % от продажбите" за "Категории продукти"

ОК. Това изглежда добре досега. Но да добавим сегментатор. Ние Добавете календарна година и след това изберете една година. В този случай ние изберете 2007. Това е това, което получавате.

Грешен резултат от "Сума на % от продажбите" в обобщена таблица

На пръв поглед това все още може да изглежда правилна. Но нашите проценти наистина трябва да обем, 100 %, защото искаме да знаете процента от общата сума на продажбите за всеки от нашите категории продукти за 2007. Какво се обърка?

Нашите % от продажбите колона изчислява процента за всеки ред, който е стойността в колоната SalesAmount, разделени от общата сума на всички стойности в колона SalesAmount. Са определени стойности в изчисляема колона. Те са неизменни резултат за всеки ред в таблицата. Когато добавихме % от продажбите за нашите обобщена таблица, то е обединява като сума на всички стойности в колона SalesAmount. Тази сума на всички стойности в % от продажбите колона винаги ще бъде 100 %.

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

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

Не забравяйте, мярката за TotalSalesAmount, която създадохме по-рано, това, което просто сумира колона SalesAmount? Използвахме го като аргумент в нашата общата печалба мярка и ние ще го използвате отново като аргумент в нашето ново Изчислено поле.

Съвет : Създаване на явни мерки като общо SalesAmount и общия РЕАЛИЗАЦИЯ са не само полезни самите в обобщена таблица или отчет, но те са полезни като аргументи в други мерки, когато имате нужда от резултата като аргумент. Това прави вашите формули по-ефективно и по-лесен за четене. Това е добър моделиране практика на данни.

Създаване на нова мярка със следната формула:

% от общите продажби: =([Total SalesAmount]) / CALCULATE ([общо SalesAmount], ALLSELECTED())

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

Съвет : Не забравяйте да прочетете за функциите CALCULATE и ALLSELECTED в DAX препратка.

Сега ако добавим нашите нови % от общите продажби към обобщената таблица, ние се:

Шаблон за настолна база данни за проследяване на активи

Това изглежда по-добро. Сега нашите % от общите продажби за всяка категория продукти се изчислява като процент от общата сума на продажбите за 2007 година. Ако ние изберете различен година, или повече от една година в сегментатора, CalendarYear, ще получите нови проценти за нашите продуктови категории, но нашата обща сума все още е 100 %. Можем да добавите и други сегментаторите и филтрите. Нашите % от общите продажби мярка винаги ще генерира процент от общата сума на продажбите независимо от сегментаторите или приложени филтри. С мерки резултатът винаги се изчислява според контекста, определя от полетата в колони и редове и от всички филтри или сегментатори, които се прилагат. Това е силата на мерки.

Ето няколко насоки, за да ви помогне, когато решавате дали изчисляема колона или мярка е точно за конкретен изчисление нужда:

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

  • Ако искате вашите нови данни да се показват в редове, колони или филтри в обобщена таблица или на ос, легенда или ПОДРЕЖДАНЕ по в визуализация на Power View, трябва да използвате изчисляема колона. Точно както обикновен колоните с данни изчисляеми колони може да се използва като поле във всяка област и ако те са числови те могат да се събират в стойности твърде.

  • Ако искате вашите нови данни да бъде фиксирана стойност за реда. Например имате таблица с дати с колона с дати и искате друга колона, която съдържа само броя на месеца. Можете да създадете изчисляема колона, която изчислява точно номера на месеца от датите в колона "дата". Например = MONTH('Date'[Date]).

  • Ако искате да добавите текстова стойност за всеки ред в таблица, използвайте изчисляема колона. Полета с текстови стойности никога не могат да се събират в стойности. Например =FORMAT('Date'[Date],"mmmm") ни дава името на месеца за всяка дата в колона "дата" в таблицата с дати.

Използване на мерки

  • Ако резултатът от изчислението винаги ще бъде зависими от другите полета изберете в обобщена таблица.

  • Ако трябва да направите по-сложни изчисления, като изчисляване на броя на базата на филтър на някаква, или изчисляване година над или дисперсия, използвайте изчисляемо поле.

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

Дръжте в ума, няма нищо лошо със създаването на изчисляеми колони, като сме направили с нашите печалба колона и след това да го обединявате в обобщена таблица или отчет. Е всъщност е наистина добър и лесен начин да научите за и да създавате собствени изчисления. С разрастването си разбиране на тези две изключително мощните функции на Power Pivot, искате да създадете най-ефективно и точно модела на данни можете да. Hopefully сте научили тук помага. Има някои други наистина големи ресурси там, които могат да ви помогне също. Ето няколко: контекст във формули на DAX, агрегирания в Power Pivotи Ресурсен център на DAX. И докато има малко по-разширени и насочени към счетоводство и финанси професионалисти – данни за печалби и загуби моделиране и анализ с Microsoft Power Pivot в Excel извадката е заредена с голям данни моделиране и примери за формули.

Забележка : Отказ от отговорност за машинен превод: Тази статия е преведена от компютърна система без човешка намеса. Microsoft предлага тези машинни преводи, за да помогне на потребителите, които не говорят английски, да се възползват от съдържанието за продукти, услуги и технологии на Microsoft. Тъй като статията е преведена машинно, е възможно да съдържа грешки в речника, синтаксиса и граматиката.

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към участниците в Office Insider

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×