Преминаване към основното съдържание

Сценарии на DAX в Power Pivot

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

Тази секция предоставя връзки към примери, които показват употребата на формули на DAX в следните сценарии:

  • Извършване на сложни изчисления

  • Работа с текст и дати

  • Условни стойности и тестване за грешки

  • Използване на интелигентно време

  • Класифициране и сравняване на стойности

В тази статия

Първи стъпки

Примерни данни

Additional Resources

Сценарии: извършване на сложни изчисления

Създаване на персонализирани изчисления за обобщена таблица

Прилагане на филтър към формула

Избирателно премахване на филтри с цел създаване на динамично съотношение

Използване на стойност от външен цикъл

Сценарии: работа с текст и дати

Създаване на ключова колона посредством обединение

Съставяне на дата на базата на части на дати, извлечени от текстова дата

Дефиниране на персонализиран формат на дата или число

Промяна на типовете данни с помощта на формула

Сценарий: условни стойности и тестване за грешки

Създаване на стойност на базата на условие

Тест за грешки във формула

Сценарии: използване на интелигентно време

Изчисляване на кумулативни продажби

Сравняване на стойности във времето

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

Сценарии: класифициране и сравняване на стойности

Показване само на първите десет елемента в обобщена таблица

Динамично подреждане на елементи с помощта на формула

Първи стъпки

Примерни данни

Ако сте начинаещ във формулите на DAX, може да поискате да започнете, като прегледате примерите в примерните данни за Power Pivot. За повече информация вижте получаване на примерни данни за уроците за DAX и модела на данни.

Additional Resources

Можете също да посетите Wiki центъра за ресурси на DAX , където можете да намерите всякакви информации за DAX, включително Блогове, образци, технически документи и видеоклипове, предоставени от водещи професионалисти в индустрията и Microsoft.

Сценарии: извършване на сложни изчисления

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

Създаване на персонализирани изчисления за обобщена таблица

ИЗЧИСЛИте и CALCULATETABLE са мощни гъвкави функции, полезни за дефиниране на изчисляеми полета. Тези функции ви позволяват да промените контекста, в който ще бъде извършено изчислението. Можете също да персонализирате типа на агрегиране или математическа операция за извършване. Вижте следващите теми за примери.

Прилагане на филтър към формула

В повечето места, където функция DAX приема таблица като аргумент, обикновено можете да прехвърлите филтрирана таблица, като използвате функцията FILTER вместо името на таблицата или като зададете израз за филтър като един от аргументите на функцията. Темите по-долу предоставят примери как да създавате филтри и как филтрите влияят върху резултатите от формулите. За повече информация вижте филтриране на данни във формули на DAX.

Функцията FILTER ви позволява да укажете критерии за филтриране, като използвате израз, докато другите функции са проектирани конкретно за филтриране на празни стойности.

Избирателно премахване на филтри с цел създаване на динамично съотношение

Чрез създаване на динамични филтри във формули можете лесно да отговорите на въпроси като следните:

  • Какъв е приносът на продажбите на настоящия продукт към общите продажби за годината?

  • Колко е допринесло това разделение за общо печалби за всички оперативни години, в сравнение с други поделения?

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

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

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

Използване на стойност от външен цикъл

В допълнение към използването на стойности от текущия контекст в изчисленията DAX може да използва стойност от предишна линия в създаването на набор от свързани изчисления. Следната тема предоставя информация как да създадете формула, която препраща към стойност от външна линия. ПРЕДИШНАТА функция поддържа до две нива на вложени линии.

За да научите повече за контекста на реда и свързаните с тях таблици, и как да използвате тази концепция във формули, вижте контекст във формули на DAX.

Сценарии: работа с текст и дати

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

Създаване на ключова колона посредством обединение

Power Pivot не позволява комбинирани ключове; Следователно, ако имате комбинирани ключове във вашия източник на данни, може да се наложи да ги комбинирате в една колона с ключови думи. Следната тема предоставя един пример за това как се създава изчисляема колона на базата на съставен ключ.

Съставяне на дата на базата на части на дати, извлечени от текстова дата

Power Pivot използва тип данни за дата/час за SQL Server, за да работи с дати; Следователно, ако вашите външни данни съдържат дати, които са форматирани по различен начин – например ако Вашите дати са написани в регионален формат за дата, който не е разпознат от ядрото за данни на Power Pivot, или ако вашите данни използват целочислени заместващи ключове – може да се наложи да използвате формула DAX за извличане на части от дата и след това съставяне на части в валидно представяне на дата и час.

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

= DATE (отДЯСНО ([Стойност1]; 4); LEFT ([Стойност1]; 2); MID ([Стойност1]; 2))

Стойност1

Резултат

01032009

1/3/2009

12132008

12/13/2008

06252007

6/25/2007

Следните теми предоставят повече информация за функциите, използвани за извличане и съставяне на дати.

Дефиниране на персонализиран формат на дата или число

Ако данните ви съдържат дати или числа, които не са представени в един от стандартните текстови формати на Windows, можете да дефинирате потребителски формат, за да се уверите, че стойностите са обработени правилно. Тези формати се използват при преобразуване на стойности в низове или от низове. Следните теми също предоставят подробен списък на предварително зададените формати, които са налични за работа с дати и числа.

Промяна на типовете данни с помощта на формула

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

  • За да преобразувате дата или числов низ в число, умножете по 1,0. Например следната формула изчислява текущата дата минус 3 дни и след това извежда съответно цяло число.

    = (TODAY ()-3) * 1.0

  • За да преобразувате дата, число или парична стойност към низ, съберете стойността с празен низ. Например следващата формула връща днешната дата като низ.

    = "" & TODAY ()

За да се гарантира, че ще бъде върнат конкретен тип данни, могат да бъдат използвани следните функции:

Преобразуване на реални числа в цели числа

Сценарий: условни стойности и тестване за грешки

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

Създаване на стойност на базата на условие

Можете да използвате вложени условия IF, за да тествате стойности и да генерирате нови стойности условно. Следните теми съдържат няколко прости примера за условно обработване и условни стойности:

Тест за грешки във формула

За разлика от Excel, не можете да имате валидни стойности в един ред на изчисляема колона и невалидни стойности в друг ред. Тоест, ако има грешка във всяка част на колона на Power Pivot, цялата колона е маркирана с грешка, така че винаги трябва да коригирате грешките във формулите, които водят до невалидни стойности.

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

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

Сценарии: използване на интелигентно време

Функциите за интелигентно време в DAX включват функции, които ще ви помогнат да извлечете датите или диапазоните от дати от данните си. След това можете да използвате тези дати или периоди от време, за да изчислявате стойности през подобни периоди. Функциите за интелигентно време също включват функции, които работят със стандартни интервали от дати, за да ви позволят да сравнявате стойности през месеци, години или тримесечия. Можете също да създадете формула, която сравнява стойности за първата и последната дата на зададен период.

За списък на всички функции за интелигентно време вижте функциите за интелигентно време (DAX). За съвети как да използвате ефективно датите и часовете в анализа на Power Pivot, вижте датите в Power Pivot.

Изчисляване на кумулативни продажби

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

Сравняване на стойности във времето

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

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

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

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

  • Функция PARALLELPERIOD

    Забележка: Ако не е необходимо да указвате потребителски диапазон от дати, но работите със стандартни счетоводни единици, като например месеци, тримесечия или години, ви препоръчваме да извършите изчисления, като използвате функциите за интелигентно време, предназначени за тази цел, като например TOTALQTD, TOTALMTD, TOTALQTD и т. н.

Сценарии: класифициране и сравняване на стойности

За да покажете само най-горния номер n на елементите в колона или обобщена таблица, имате няколко опции:

  • Можете да използвате функциите в Excel 2010, за да създадете горен филтър. Можете също да изберете редица най-важните или най-долни стойности в обобщена таблица. Първата част от този раздел описва как да филтрирате първите 10 елемента в обобщена таблица. За повече информация вижте документацията на Excel.

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

Има предимства и недостатъци за всеки метод.

  • Горният филтър на Excel е лесен за използване, но филтърът е само за целите на показването. Ако данните, които са в основата на промените в обобщената таблица, трябва ръчно да обновите обобщената таблица, за да видите промените. Ако имате нужда да работите динамично с класирането, можете да използвате DAX, за да създадете формула, която сравнява стойности с други стойности в колона.

  • Формулата DAX е по-мощна; Освен това, като добавите стойността на класирането към сегментатор, можете просто да щракнете върху сегментатора, за да промените броя на най-важните стойности, които се показват. Но изчисленията са изчислително скъпи и методът може да не е подходящ за таблици с много редове.

Показване само на първите десет елемента в обобщена таблица

За да покажете първите или последните стойности в обобщена таблица

  1. В обобщената таблица щракнете върху стрелката надолу в заглавието етикети на редове .

  2. Изберете филтри за стойност> Top 10.

  3. В диалоговия прозорец на филтъра _LT_column Name> Top 10 изберете колоната, която трябва да се подреди, и броя стойности, както следва:

    1. Изберете горе , за да видите клетките с най-високите стойности, или долу , за да видите клетките с най-ниските стойности.

    2. Въведете броя на първите или последните стойности, които искате да видите. Настройката по подразбиране е 10.

    3. Изберете как искате да се показват стойностите:

Име

Описание

Елементи

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

Процент

Изберете тази опция, за да филтрирате обобщената таблица, за да покажете само елементите, които допринасят за зададения процент.

Sum

Изберете тази опция, за да покажете сумата на стойностите за елементите най-отгоре или най-отдолу.

  1. Изберете колоната, съдържаща стойностите, които искате да подредите.

  2. Щракнете върху OK.

Динамично подреждане на елементи с помощта на формула

Следната тема съдържа пример как да използвате DAX, за да създадете класиране, което е съхранено в изчисляема колона. Тъй като DAX формулите се изчисляват динамично, винаги можете да сте сигурни, че класирането е правилна дори ако основните данни са променени. Освен това, тъй като формулата се използва в изчисляема колона, можете да използвате класирането в сегментатор и след това да изберете Top 5, Top 10 или дори първите стойности на 100.

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

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

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

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

×