Jednou z nejvýkonnějších funkcí Power Pivotu je možnost vytvářet relace mezi tabulkami a potom pomocí souvisejících tabulek vyhledávat nebo filtrovat související data. Související hodnoty se z tabulek načítají pomocí jazyka vzorců, který je součástí doplňku Power Pivot, jazyka 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 z jiné tabulky nebo sloupce. Pokud znáte funkci SVYHLEDAT v Excelu, najdete tu podobnost, ale tato funkce v Power Pivotu je mnohem jednodušší na implementaci.
Vzorce, které provádějí vyhledávání, můžete vytvořit jako součást počítaného sloupce nebo jako součást míry pro použití v kontingenční tabulce nebo kontingenčním grafu. 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í těchto funkcí.
Poznámka
V závislosti na typu operace vyhledávání nebo vyhledávacího vzorce, který chcete použít, bude pravděpodobně nejprve nutné vytvořit relaci mezi tabulkami.
Principy vyhledávacích funkcí
Možnost vyhledávat odpovídající nebo související data z jiné tabulky je užitečná zejména v situacích, kdy aktuální tabulka obsahuje pouze určitý druh identifikátoru, ale potřebná data (například cena produktu, název nebo jiné podrobné hodnoty) jsou uložena v související tabulce. Je také užitečné, pokud jiná tabulka obsahuje více řádků, které souvisejí s aktuálním řádkem nebo aktuální hodnotou. Můžete třeba snadno načíst všechny prodeje spojené s určitou oblastí, obchodem nebo prodejcem.
Na rozdíl od vyhledávacích funkcí aplikace Excel, jako je například funkce SVYHLEDAT, která je založena na polích, nebo funkce VYHLEDAT, která získá první z více odpovídajících hodnot, jazyk DAX používá existující relace mezi tabulkami spojenými klíči, aby získal jedinou související hodnotu, která se přesně shoduje. Jazyk DAX může také načíst tabulku záznamů, které se vztahují k aktuálnímu záznamu.
Poznámka
Pokud jste obeznámení s relačními databázemi, můžete si vyhledávání v Power Pivotu představit podobně jako příkaz vnořeného dílčího výběru v jazyce Transact-SQL.
Načtení jedné související hodnoty
Funkce RELATED vrací jednu hodnotu z jiné tabulky, která je v relaci k aktuální hodnotě v aktuální tabulce. Zadáte sloupec obsahující požadovaná data a funkce bude kopírovat podle existujících relací mezi tabulkami hodnotu ze zadaného sloupce v související tabulce. V některých případech musí funkce při načtení dat dodržet řetěz relací.
Předpokládejme například, že máte v Excelu seznam dnešních dodávek. Seznam však obsahuje pouze identifikační číslo zaměstnance, ID objednávky a ID dopravce, což ztěžuje čitelnost sestavy. Pokud chcete získat další požadované informace, můžete tento seznam převést na propojenou tabulku Power Pivotu a potom vytvořit relace k tabulkám Employee (Zaměstnanec) a Reseller (Prodejce), přičemž pole EmployeeID přiřadíte k poli EmployeeKey a pole ResellerID k poli ResellerKey.
Chcete-li zobrazit vyhledávací informace v propojené tabulce, přidejte dva nové počítané sloupce s následujícími vzorci:
= RELATED('Employees'[EmployeeName])
= RELATED('Resellers'[CompanyName])
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í cyklické systémy |
| 15 | Pilar Ackeman | Modulární cyklické systémy |
| 76 | Kim Rallsová | 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í cyklické systémy |
| 100315 | 15 | 445 | Pilar Ackeman | Modulární cyklické systémy |
| 100316 | 76 | 108 | Kim Rallsová | Přidružená kola |
Funkce využívá relace mezi propojenou tabulkou a tabulkou Zaměstnanci a Prodejci k získání správných názvů pro každý řádek v sestavě. Pro výpočty lze také použít související hodnoty. Další informace a příklady najdete v tématu Funkce RELATED.
Načtení 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 jednotliví prodejci letos učinili. V tabulce Prodejci byste mohli vytvořit nový počítaný sloupec, který by obsahoval 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 od každého prodejce.
=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 nemusíte zadávat nikde ve vzorci, protože Power Pivot používá stávající relaci mezi tabulkami.) Funkce RELATEDTABLE pak získá všechny řádky z tabulky ResellerSales_USD, které jsou v relaci s jednotlivými prodejci, a spočítá řádky. Pokud mezi tabulkami není žádná relace (přímá ani nepřímá), získáte všechny řádky z ResellerSales_USD tabulky.
Pro prodejce Modular Cycle Systems v naší ukázkové databázi jsou v tabulce sales čtyři objednávky, takže funkce vrátí 4. U Associated Bikes nemá prodejce žádné prodeje, takže funkce vrátí prázdnou hodnotu.
| Prodejce | Záznamy v tabulce prodeje pro tohoto prodejce |
|---|---|
| Modulární cyklické systémy | ID prodejce |
| 445 | |
| 445 | |
| 445 | |
| 445 | |
| ID prodejce | |
| Přidružená kola |
Poznámka
Vzhledem k tomu, že funkce RELATEDTABLE vrací tabulku, ne jedinou hodnotu, musí se použít jako argument funkce, která provádí operace s tabulkami. Další informace najdete v tématu Funkce RELATEDTABLE.