Една от най-мощните функции в Power Pivot е възможността за създаване на релации между таблици и след това използване на свързаните таблици за търсене или филтриране на свързани данни. Извличате свързани стойности от таблици с помощта на езика на формулата, предоставен сPower Pivot, изрази за анализ на данни (DAX). DAX използва релационния модел и следователно може лесно и точно да извлича свързани или съответстващи стойности в друга таблица или колона. Ако сте запознати с VLOOKUP в Excel, тази функционалност в Power Pivot е подобна, но много по-лесна за внедряване.
Можете да създавате формули, които правят справки като част от изчисляема колона, или като част от мярка за използване в обобщена таблица или обобщена диаграма. За повече информация вж. следните теми:
Изчисляеми полета в Power Pivot
Изчисляеми колони в Power Pivot
В този раздел са описани функциите DAX, които са предоставени за справка, както и някои примери как да използвате функциите.
Забележка: В зависимост от типа на операцията за търсене или формулата за търсене, която искате да използвате, може да се наложи първо да създадете релация между таблиците.
Разбиране на функциите за търсене
Възможността за търсене на съвпадащи или свързани данни от друга таблица е особено полезна в ситуации, в които текущата таблица има само някакъв идентификатор, но данните, които ви трябват (например цена на продукта, име или други подробни стойности), се съхраняват в свързана таблица. Също така е полезно, когато има няколко реда в друга таблица, свързани с текущия ред или текущата стойност. Можете например лесно да извлечете всички продажби, свързани с определен регион, магазин или продавач.
За разлика от функциите за търсене Excel, като например VLOOKUP, които се базират на масиви или LOOKUP, която получава първата от множество съвпадащи стойности, DAX следва съществуващите релации между таблиците, съединени с клавиши, за да получи една-единствена свързана стойност, която съответства точно. DAX може също да извлече таблица със записи, които са свързани с текущия запис.
Забележка: Ако сте запознати с релационните бази данни, можете да мислите за справки в Power Pivot като подобни на вложената команда за подселект в Transact-SQL.
Извличане на единична свързана стойност
Функцията RELATED връща единична стойност от друга таблица, свързана с текущата стойност в текущата таблица. Задавате колоната, съдържаща данните, които искате, и функцията следва съществуващите релации между таблиците, за да извлича стойността от указаната колона в свързаната таблица. В някои случаи функцията трябва да следва верига от релации, за да извлече данните.
Да предположим например, че имате списък с днешните пратки в Excel. Списъкът обаче съдържа само ИД на служител, ИД на поръчка и ИД номер на изпращача, което прави отчета труден за четене. За да получите допълнителната информация, която искате, можете да конвертирате този списък в свързана таблица на Power Pivot и след това да създадете релации към таблиците Служител и Риселър, съответстващи на ИД на служител в полето EmployeeKey и ИД на риселър в полето Риселърки.
За да покажете справочна информация във вашата свързана таблица, добавяте две нови изчисляеми колони със следните формули:
= RELATED("Служители"[Име на служител])
= RELATED('Resellers'[CompanyName])
Днешните пратки преди търсенето
ИД_поръчка |
ИД на служител |
ИД на риселър |
---|---|---|
100314 |
230 |
445 |
100315 |
15 |
445 |
100316 |
76 |
108 |
Таблица "Служители"
ИД на служител |
Служител |
Риселър |
---|---|---|
230 |
Kuppa Vamsi |
Модулни системи за цикличен цикъл |
15 |
Пилар Акеман |
Модулни системи за цикличен цикъл |
76 |
Ким Ралс |
Свързани велосипеди |
Днешни пратки с справки
ИД_поръчка |
ИД на служител |
ИД на риселър |
Служител |
Риселър |
---|---|---|---|---|
100314 |
230 |
445 |
Kuppa Vamsi |
Модулни системи за цикличен цикъл |
100315 |
15 |
445 |
Пилар Акеман |
Модулни системи за цикличен цикъл |
100316 |
76 |
108 |
Ким Ралс |
Свързани велосипеди |
Функцията използва релации между свързаната таблица и таблицата "Служители" и "Дистрибутори", за да получи правилното име за всеки ред в отчета. Можете също да използвате свързани стойности за изчисления. За повече информация и примери вж. ФУНКЦИЯТА RELATED.
Извличане на списък със свързани стойности
Функцията RELATEDTABLE следва съществуваща релация и връща таблица, която съдържа всички съответстващи редове от указаната таблица. Да предположим например, че искате да разберете колко поръчки е положил всеки риселър тази година. Можете да създадете нова изчисляема колона в таблицата Риселъри, която включва следната формула, която търси записи за всеки риселър в таблицата ResellerSales_USD и преброи броя на отделните поръчки, направени от всеки риселър.
=COUNTROWS(RELATEDTABLE(ResellerSales_USD))
В тази формула функцията RELATEDTABLE първо получава стойността на ResellerKey за всеки риселър в текущата таблица. (Не е нужно да задавате колоната "ИД" някъде във формулата, тъй като Power Pivot използва съществуващата релация между таблиците.) След това функцията RELATEDTABLE получава всички редове от таблицата ResellerSales_USD, които са свързани с всеки риселър, и преброи редовете. Ако няма релация (директна или непряка) между двете таблици, ще получите всички редове от ResellerSales_USD таблицата.
За системите за модулен цикъл на дистрибуторите в нашата примерна база данни има четири поръчки в таблицата за продажби, така че функцията връща 4. За свързани велосипеди риселърът няма продажби, така че функцията връща празна стойност.
Риселър |
Записи в таблицата за продажби за този риселър |
|
---|---|---|
Модулни системи за цикличен цикъл |
ИД на риселър |
SalesOrderNumber |
445 |
SO53494 |
|
445 |
SO71872 |
|
445 |
SO65233 |
|
445 |
SO59000 |
|
ИД на риселър |
SalesOrderNumber |
|
Свързани велосипеди |
Забележка: Тъй като функцията RELATEDTABLE връща таблица, а не една стойност, тя трябва да се използва като аргумент за функция, която извършва операции в таблици. За повече информация вижте RELATEDTABLE функция.