Преминаване към основното съдържание
Поддръжка
Влизане с Microsoft
Влезте или създайте акаунт.
Здравейте,
Изберете друг акаунт.
Имате няколко акаунта
Изберете акаунта, с който искате да влезете.

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

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

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

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

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

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

В тази статия

Първи стъпки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Създаване на ключова колона чрез конкатенация

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

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

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

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

=DATE(RIGHT([Стойност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, за да манипулирате типа на изходните данни. 

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

    =(TODAY()-3)*1,0

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

    =""& TODAY()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • PARALLELPERIOD функция

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

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

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

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

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

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

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

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

Показване само на десетте най-горни елемента в обобщена таблица

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

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

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

  3. В диалоговия прозорец Най-горе 10 < име на колона>изберете колоната, която да се класира, и броя на стойностите, както следва:

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

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

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

Име

Описание

Елементи

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

Процент

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

Sum

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

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

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

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

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

Нуждаете ли се от още помощ?

Искате ли още опции?

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

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

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

Доколко сте доволни от качеството на езика?
Какво е повлияло на вашия потребителски опит?
Като натиснете „Подаване“, вашата обратна връзка ще се използва за подобряване на продуктите и услугите на Microsoft. Вашият ИТ администратор ще може да събира тези данни. Декларация за поверителност.

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

×