Digitální akademie Power BI

Získávání dat z jedné tabulky do druhé

Data se ukládají různými způsoby a většinou poměrně odděleně od dalších dat, která potřebujeme pro svůj report. Představit si to můžeme pomocí souboru v Excelu, ve kterém se data například o zákaznících nacházejí na listu Zákazník a data o objednávkách na listu Objednávky.

Většinou existují klíče, kterými se tyto na první pohled oddělené tabulky dají spojit. V našem případě dle následujících obrázků jde o číselný identifikátor s názvem ID_Zákazníka, který v obou listech obsahuje tytéž hodnoty jen s rozdílným počtem výskytů. Sloupec ID_Zákazníka by například pomocí funkce SVYHLEDAT() umožnil doplnit jednotlivá data z listu Zákazník do listu Objednávky.

Jak provést podobné získání dat z jedné tabulky do druhé v Power BI?

Relace! Dobře, půjdeme na to pomalu a řekneme si, že tu existuje více možností, jak toho dosáhnout:

Sloučení dotazů v Power Query

Při otevření této volby jsme vyzváni pro výběr dotazu (tabulky), který chceme s aktuálně otevřeným dotazem sloučit pomocí výběru sloupců s klíči. Power Query nás nechá i zvolit typ spojení, zda se jedná o Left Join (Levý vnější), Right Join (Pravný vnější) a podobně. Získáme tak do aktuálního dotazu nový sloupec, který obsahuje celý připojený dotaz a můžeme si z něj vybrat sloupce, které potřebujeme.

LOOKUP funkce

Zde se dostáváme do podobné syntaxe jako má již dříve zmíněné SVYHLEDAT v excelu. Pokud do modelu nemůžeme nijak zasáhnout a upravit ho, pak je zde možnost vytvořit si počítaný sloupec, který přenese konkrétní jiný sloupec na základě hledané hodnoty z jiné tabulky do námi používané. Syntaxe funkce pak je:

  • LOOKUPVALUE( „Sloupec který chcete získat“, „Sloupec, který se bude prohledávat“, „Konkrétní hodnota nebo sloupec, odkud se bude brát hledaná hodnota“, [„Možnost alternativního výsledku, pokud hodnota nebyla nalezena“])

Tato volba však není zcela ideální pro datovou velikost modelu.

Relace

Nyní se dostáváme k tomu, proč funkce LOOKUP postrádá větší smysl. Power BI umí vytvořit relace mezi tabulkami podobně jako databáze. Využívá k tomu systém klíčů uvnitř tabulek. Velmi podobně jako v úvodu, když jsem ukazoval ID_Zaměstnance. Tyto relace mezi tabulkami nám umožňují využít vztah mezi daty z propojených tabulek a navzájem je využívat bez nutnosti tvořit nové sloupce.

Při najetí na relaci se rozsvítí klíče, pomocí kterých jsme tabulky propojili. Jako v tomto případě ID a ID_Zboží. Mezi tabulkami vznikají kardinality 1:1, 1:N, M:N. M a N je v Power BI reprezentováno pomocí symbolu * . Tato kardinalita reprezentuje vztah klíče z jedné tabulky ke klíči z druhé tabulky. Dle výše uvedené obrázku tedy platí, že jde o kardinalitu 1:N, při čemž jeden řádek v tabulce Zboží, má 0N výskytů svého klíče v tabulce Objednávky. Což je samozřejmé, protože počítáme s tím, že jeden typ zboží budeme prodávat vícekrát a nejde jen o jednorázový prodej, který se již nebude opakovat.

Power BI automaticky rozpoznává vztah mezi klíči a kardinalitu doplňuje samo. To ale neznamená, že ji nemůžeme upravit. Při dvojkliku na relaci se otevře její editace, kde kromě kardinality můžeme přenastavit i konkrétní sloupce s klíči, směr křížového filtru, a jestli je relace aktivována či nikoli. Křížový filtr znamená, která tabulka je svým způsobem nadřazená tabulce druhé, a může sloužit k jejímu zafiltrování při výpočtech nebo při zobrazování ve vizuálech.

Jak vytvořím relaci?

Relace jde vytvořit dvojím způsobem. Vynechávám to, že v základním nastavení vám Power BI vytvoří relace samo při nahrání tabulek, pokud se jména sloupců a obsah shoduje. První možností je kliknutí na konkrétní řádek označující sloupec v tabulce a přetažení ho na sloupec klíče v druhé tabulce. Relace se vytvoří a automaticky se nastaví směr filtru, kardinalita a aktivovanost vazby. Další možnost je přes funkci Spravovat relace, kde kromě všech aktivních relací, spuštění automatického rozpoznání relací jejich úprav/odstranění, můžeme i nové relace vytvářet.

Musím zde upozornit, že Power BI nepodporuje cyklické vazby, které je nutno realizovat pomocí kombinací výše zmíněných metod. Osobně se přikláním k tvorbě jedné velké tabulky „Star modelu“, která nám pomůže tyto problémy s cyklickou vazbou odstranit. Dále je nezbytné vědět, že dvě tabulky mohou být propojeny pomocí více relací, ale jen jedna z nich je vždy aktivní.

Tečkovaná čára je neaktivní relace. Tato neaktivní relace se využívá jen ve dvou případech. V prvním, kdy není využívána relace aktivní neboli hlavní, a nebo pokud ve vzorci s výpočtem využíváme definování užívané relace za pomoci funkce USERELATIONSHIP().

Related Posts

Privacy Preferences
When you visit our website, it may store information through your browser from specific services, usually in form of cookies. Here you can change your privacy preferences. Please note that blocking some types of cookies may impact your experience on our website and the services we offer.