Jednou z nejvýkonnějších funkcí v Power Pivot je možnost vytvářet relace mezi tabulkami a pak používat související tabulky k vyhledávání nebo filtrování souvisejících dat. Související hodnoty z tabulek můžete načíst pomocí jazyka vzorců poskytovaného sPower Pivot, Data Analysis Expressions (DAX). 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 jste obeznámeni s funkcí SVYHLEDAT v Excelu, je tato funkce v Power Pivot podobná, ale mnohem jednodušší na implementaci.
Můžete vytvořit vzorce, které provádí vyhledávání 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í funkcí.
Poznámka: V závislosti na typu operace vyhledávání nebo vyhledávacího vzorce, který chcete použít, možná budete muset nejprve vytvořit relaci mezi tabulkami.
Principy vyhledávacích funkcí
Možnost vyhledat odpovídající data nebo související data z jiné tabulky je zvlášť užitečná v situacích, kdy má aktuální tabulka jenom identifikátor nějakého druhu, ale data, která potřebujete (například cena produktu, název nebo jiné podrobné hodnoty), jsou uložená v související tabulce. Je také užitečné, když je v jiné tabulce více řádků souvisejících s aktuálním řádkem nebo aktuální hodnotou. Můžete například snadno načíst všechny prodeje spojené s konkrétní oblastí, obchodem nebo prodejcem.
Na rozdíl od vyhledávacích funkcí v Excelu, jako jsou funkce SVYHLEDAT, které jsou založené na polích, nebo FUNKCE VYHLEDAT, která získá první z více shodných hodnot, DAX používá existující relace mezi tabulkami propojenými klíči, aby získal jednu související hodnotu, která přesně odpovídá. 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 Power Pivot představit jako podobné vnořenému příkazu dílčího výběru v jazyce Transact-SQL.
Načtení 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 požadovaná data, a funkce se řídí existujícími relacemi mezi tabulkami a načte hodnotu ze zadaného sloupce v související tabulce. V některých případech musí funkce sledovat řetěz relací, aby načetla data.
Předpokládejme například, že máte seznam dnešních zásilek v Excelu. Seznam ale obsahuje jenom ID zaměstnance, číslo ID objednávky a číslo ID dopravce, což ztěžuje čtení sestavy. Pokud chcete získat další požadované informace, můžete tento seznam převést na Power Pivot propojenou tabulku a pak vytvořit relace k tabulkám Employee a Reseller, přičemž ID zaměstnance se shoduje s polem EmployeeKey a ResellerID do 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('Employees'[EmployeeName])
= RELATED('Resellers'[CompanyName])Dnešní zásilky před vyhledáváním
OrderID |
Employeeid |
ResellerID (ID prodejce) |
---|---|---|
100314 |
230 |
445 |
100315 |
15 |
445 |
100316 |
76 |
108 |
Tabulka Zaměstnanci
Employeeid |
Zaměstnance |
Prodejce |
---|---|---|
230 |
Kuppa Vamsi |
Modulární cyklové systémy |
15 |
Pilar Ackeman |
Modulární cyklové systémy |
76 |
Kim Ralls |
Přidružená kola |
Dnešní zásilky s vyhledáváním
OrderID |
Employeeid |
ResellerID (ID prodejce) |
Zaměstnance |
Prodejce |
---|---|---|---|---|
100314 |
230 |
445 |
Kuppa Vamsi |
Modulární cyklové systémy |
100315 |
15 |
445 |
Pilar Ackeman |
Modulární cyklové systémy |
100316 |
76 |
108 |
Kim Ralls |
Přidružená kola |
Funkce používá relace mezi propojenou tabulkou a tabulkou Employees and Resellers k získání správného názvu pro každý řádek v sestavě. Pro výpočty můžete také použít související hodnoty. Další informace a příklady najdete v tématu SOUVISEJÍCÍ funkce.
Načtení seznamu souvisejících hodnot
Funkce RELATEDTABLE následuje po 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 tento rok každý prodejce zadal. 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 zadaných každým prodejcem.
=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á existující relaci mezi tabulkami.) Funkce RELATEDTABLE pak získá všechny řádky z tabulky ResellerSales_USD, které se vztahují k jednotlivým prodejcům, a spočítá řádky. Pokud mezi těmito dvěma tabulkami neexistuje žádná relace (přímá nebo nepřímá), získáte všechny řádky z ResellerSales_USD tabulky.
U prodejce Modular Cycle Systems 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 prodejce nemá žádné prodeje, takže funkce vrátí prázdnou hodnotu.
Prodejce |
Záznamy v tabulce prodejů pro tohoto prodejce |
|
---|---|---|
Modulární cyklové systémy |
ID prodejce |
Salesordernumber |
445 |
SO53494 |
|
445 |
SO71872 |
|
445 |
SO65233 |
|
445 |
SO59000 |
|
ID prodejce |
Salesordernumber |
|
Přidružená kola |
Poznámka: Vzhledem k tomu, že funkce RELATEDTABLE vrací tabulku, ne jednu hodnotu, musí být použita jako argument funkce, která provádí operace s tabulkami. Další informace najdete v tématu Funkce RELATEDTABLE.