Jednou z nejvýkonnějších funkcí v Power Pivot je možnost vytvářet relace mezi tabulkami a pak pomocí souvisejících tabulek vyhledat nebo filtrovat související data. Související hodnoty z tabulek načítáte pomocí jazyka vzorců, který je k dispoziciPower Pivot, dax (Data Analysis Expressions). Jazyk DAX používá relační model, a proto může snadno a přesně načíst související nebo odpovídající hodnoty v jiné tabulce nebo sloupci. Pokud znáte funkci SVYHLEDAT v Excel, je tato funkce Power Pivot podobná, ale mnohem jednodušší.
Můžete vytvořit vzorce, které vyhledávání dělají jako součást počítaného sloupce, nebo jako součást míry pro použití v kontingenční tabulce nebo PivotChart. Další informace najdete v těchto tématech:
Počítané sloupce v Power Pivotu
Tato část popisuje funkce jazyka DAX, které jsou k dispozici pro vyhledávání, spolu s některými příklady použití funkcí.
Poznámka: V závislosti na typu operace vyhledávání nebo vyhledávacího vzorce, který chcete použít, budete možná muset nejdřív vytvořit relaci mezi tabulkami.
Principy vyhledávacích funkcí
Možnost vyhledávání odpovídajících nebo souvisejících dat z jiné tabulky je užitečná zejména v situacích, kdy aktuální tabulka obsahuje jenom identifikátor určitého typu, ale data, která potřebujete (například cena produktu, název nebo jiné podrobné hodnoty), jsou uložena v související tabulce. Užitečné je také v případě, že existuje více řádků v jiné tabulce souvisejících s aktuálním řádkem nebo aktuální hodnotou. Můžete například snadno načíst všechny prodeje spojené s určitou oblastí, obchodem nebo prodejcem.
Na rozdíl od vyhledávacích funkcí, jako je svyhledat, které jsou založené na maticích nebo vyhledávání, které získá první z více odpovídajících hodnot, dax sleduje existující relace mezi tabulkami spojenými klávesami, aby se získá jediná související hodnota, která přesně odpovídá. Excel Jazyk DAX může také načíst tabulku záznamů, které souvisejí s aktuálním záznamem.
Poznámka: Pokud znáte relační databáze, můžete si vyhledávání v aplikaci Power Pivot podobat vnořeným příkazům dílčího výběru v transact-SQL.
Načítání jedné související hodnoty
Funkce RELATED vrátí jednu hodnotu z jiné tabulky související s aktuální hodnotou v aktuální tabulce. Zadáte sloupec, který obsahuje data, která chcete použít, a funkce sleduje existující relace mezi tabulkami a načte hodnotu ze zadaného sloupce v související tabulce. V některých případech musí funkce načíst data za řetězem relací.
Předpokládejme například, že máte seznam dnešních zásilek v Excel. Seznam ale obsahuje jenom identifikační číslo zaměstnance, id objednávky a číslo ID odesílatele, takže se sestava těžko čte. Pokud chcete získat další informace, které potřebujete, můžete tento seznam převést na propojenou tabulku Power Pivot pak vytvořit relace s tabulkami Zaměstnanec Power Pivot Prodejce, shodné s polem EmployeeKey Power Pivot ResellerID na pole ResellerKey.
Pokud chcete zobrazit informace o vyhledávání v propojené tabulce, přidejte dva nové počítané sloupce s následujícími vzorci:
= RELATED('Zaměstnanci'[Jméno_zaměstnance])
= RELATED('Prodejci'[Název_společnosti])
Dnešní zásilky před vyhledáváním
OrderID |
ID zaměstnance |
ID prodejce |
---|---|---|
100314 |
230 |
445 |
100315 |
15 |
445 |
100316 |
76 |
108 |
Tabulka Zaměstnanci
ID zaměstnance |
Zaměstnanec |
Prodejce |
---|---|---|
230 |
Kuppa Vamsi |
Modulární systémy cyklu |
15 |
Pilar Ackeman |
Modulární systémy cyklu |
76 |
Kim Ralls |
Přidružená kola |
Dnešní zásilky s vyhledáváním
OrderID |
ID zaměstnance |
ID prodejce |
Zaměstnanec |
Prodejce |
---|---|---|---|---|
100314 |
230 |
445 |
Kuppa Vamsi |
Modulární systémy cyklu |
100315 |
15 |
445 |
Pilar Ackeman |
Modulární systémy cyklu |
100316 |
76 |
108 |
Kim Ralls |
Přidružená kola |
Funkce používá relace mezi propojenou tabulkou a tabulkou Zaměstnanci a prodejci k získání správného názvu každého řádku v sestavě. Související hodnoty můžete použít také pro výpočty. Další informace a příklady najdete v tématu SOUVISEJÍCÍ funkce.
Načítání seznamu souvisejících hodnot
Funkce RELATEDTABLE sleduje existující relaci a vrátí tabulku, která obsahuje všechny odpovídající řádky ze zadané tabulky. Předpokládejme například, že chcete zjistit, kolik objednávek každý prodejce v tomto roce umístil. V tabulce Resellers (Prodejci) můžete vytvořit nový počítaný sloupec, který obsahuje následující vzorec, který vyhledá záznamy pro každého prodejce v tabulce ResellerSales_USD a spočítá počet jednotlivých objednávek, které každý prodejce zadá.
=COUNTROWS(RELATEDTABLE(ResellerSales_USD))
V tomto vzorci funkce RELATEDTABLE nejprve získá hodnotu ResellerKey pro každého prodejce v aktuální tabulce. (Sloupec ID není potřeba zadat nikde ve vzorci, protože Power Pivot používá existující relaci mezi tabulkami.) Funkce RELATEDTABLE pak získá všechny řádky z tabulky ResellerSales_USD, které souvisejí s jednotlivými prodejci, a spočítá řádky. Pokud mezi oběma tabulkami neexistuje žádná relace (přímá nebo nepřímá), získáte všechny řádky z ResellerSales_USD tabulky.
U modulárních cyklických systémů prodejců v naší ukázkové databázi jsou v tabulce prodejů čtyři objednávky, takže funkce vrátí hodnotu 4. U přidružených kol nemá prodejce žádné prodeje, takže funkce vrátí prázdnou hodnotu.
Prodejce |
Záznamy v tabulce prodejů pro tohoto prodejce |
|
---|---|---|
Modulární systémy cyklu |
ID prodejce |
SalesOrderNumber |
445 |
SO53494 |
|
445 |
SO71872 |
|
445 |
SO65233 |
|
445 |
SO59000 |
|
ID prodejce |
SalesOrderNumber |
|
Přidružená kola |
Poznámka: Protože funkce RELATEDTABLE vrací tabulku, ne jednu hodnotu, musí být použita jako argument pro funkci, která provádí operace s tabulkami. Další informace najdete v článku Funkce RELATEDTABLE.