|
Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:
Jak na sloučení Merge dvou tabulek v Power Query. Využít jde i v nástroji Power Query Editor v Power BI.
Neplést s propojením tabulek v Modelu Power BI.
V tomto článku se podíváme na možnost jak sloučit tabulky v Power Query Editoru, ať už v Excel, nebo i v Power BI. Pro přehlednost je článek rozdělen na kapitoly.
Potřebujete-li propojit dvě tabuky v Excel (nebo Power BI), můžete využít nástroj Power Query Editor. Kdy dojde ke sloučení tabulek. Na první pohled může sloučení připomínat funkci SVYHLEDAT, kdy k jedné tabulce přiřadíte data z druhé tabulky.
Představte si že máte seznam zaměstnanců, kdy každý má své unikátní osobní číslo a druhou tabulku seznam odměn, kde je informace o odměně a v jednom sloupci se nachází osobní číslo zaměstnance, který danou odměnu nebo ocenění obdržel. budete-li mít tabulky v Excel, tak někoho napadne použít funkci SVYHLEDAT a k odměnám vložit třeba jméno a příjmení oceněného.
V tomto článku si ukážeme, jak na to využitím možnosti Sloučit - Merge v nástroji Power Query Editor (je součásti Excel i Power BI).
Často se u slučování ukazuje pouze první možnost spojení, aneb levé vnější (a angličtině Left Outer). V totmo článku si představíme všechny možnosti.
Zůstaneme-li u oněch zaměstanců a odměn, možná někdo má těch odměn za rok více, někdo žádnou, co když dostane odměnu člověk, co již u vás nepracuje (ale než úřední šiml rozhodl ... tak chvílí trvalo).
V článku si ukážeme všechny možností, které Power Query Editor nabízí a to:
Jak jednotlivá spojení fungují jsem viděl ukazovat i na venových diagramech:
Což pro někoho může být problém na pochopení. Proto představím na praktických příkladech, budeme si spojovat dvě malé tabulky.
Když už článek tvořím, tak zmíním i jak bude funguje, pokud se budou v tabulkách opakovat hodnoty, podle kterých se budou tabulky slučovat (podrobněji viz dále).
Rychlou teorií mate za sebou, teď se podíváme jaké tabulky budete potřebovat sloučit. Pro jednoduchost a přehled budeme mít dvě tabulky první označíme TabulkaA a druhou TabulkaB, obě budou mít tři sloupečky:
Některá ID v první tabulce nemají protějšek ve druhé, některé mají a stejně tak některé ID v druhé tabulce B, nemají protějšek v první tabulce.
Samozdřejmě že v obou tabulkách jsou sloupce ID unikátní (tj. hodnoty v tomto sloupci se neopakují).
Pro komplexní pohled na Sloučit (Merge) budeme mít ještě dvě tabulky (TabulkaA_duplicita a TabulkaB_duplicita) ve které se hodnoty ve sloucpi ID budou záměrně opakovat. Tabulky budou mít opět tři sloupce:
Předpokládám, že tabulky máte načteny v Power Query Editoru.
V prvním kroku budeme potřebovat načítat TabulkaA a TabulkaB. Pro jednoduchost k tabulce A připojíme tabulku B.
Vyberte TabulkaA v dotazech a na pásu karet Domů (Home) Vyberte Sloučit dotazy (Merge) a Sloučit dotazy jako nový (Merge as new)
Obdržíte dialogové okno, kde již máte předvybranou TabulkaA (1), v "rozbalovátku" (2) vyberete TabulkaB, označíte sloupce ID (3) a v Typu spojení ponecháte Levé vnější (4). Samozdřejmě pro další testy si můžete vybrat jiný typ spojení.
Klik na OK a máte hotovo.
Přidá se nový dotaz Sloučit (můžete si když tak přejmenovat). Pro dokončení ke potřeba tabulku rozbalit klikem na dvojšipku u názvu sloupce TabulkaB
.Tip: Nemusíte používat původní název sloupce jako předpona.
Výsledkem je spojená tabulka. V dalším si ukážeme rozdíly, jak by vypadalo pokud pokud vyberete jinou volbu v typu spojení.
Další co můžete s tabulkou provést je, že data z důvodu přehlednosti seřadite ;)
Tabulky umíte sloučit, jak již víte k dispozici máte tyto možností:
V dalších podkapitolách se podíváte jak budou vypadat jiná sloučení.
Všechny záznamy z první tabulky a odpovídající záznamy z druhé tabulky.
Toto již víte jak bude vypadat.
Všechny záznamy z druhé tabulky a odpovídající z první tabulky. Vlastně opak předchozího
Všechny řádky z obou tabulek.
pouze odpovídající řádky z první a druhé tabulky, na základě ID
Řádky které jsou jen v první tabulce a nemají záznam ve druhé tabulce.
Řádky které jsou jen ve druhé tabulce a nemají záznam v první tabulce.
V podobném duchu se podíváme co st stane pokud v tabulce se bude 2x (nebo i vícekrát) objevovat stejné ID. A to jak v první tabulce, tak ve druhé, případně v obou zároveň.
V ukázkových tabulkách jde o ID číslo 4, které je dva krát v první tabulce, ID 6, které je dva krát ve druhé tabulce a číslo 5 které je dva krát v první i ve druhé tabulce.
Opět budeme spojovat:
Všechny záznamy z první tabulky a odpovídající záznamy z druhé tabulky. Tj Id 4 se objevuje 2x, stejně jako ID 6, kdežto ID 5 se objevuje 4x protože 2 x 2 jsou 4.
Jak bude sloučení vypadat...
Všechny záznamy z druhé tabulky a odpovídající z první tabulky. Vlastně opak předchozího
Všechny řádky z obou tabulek.
pouze odpovídající řádky z první a druhé tabulky, na základě ID
Řádky které jsou jen v první tabulce a nemají záznam ve druhé tabulce.
Řádky které jsou jen ve druhé tabulce a nemají záznam v první tabulce.
Další možností jak sloučit tabulky, nebo data v tabulkách:
Což přesahuje prostor, který jsme pro slučování vyčlenil. Samozdřejmě zmíním v samostatných článcích.
Narazili jste na nějaký problém/ nejasnost? Máte tip na doplnění, můžete to zmínit v komentářích.
Článek byl aktualizován: 10.01.2022 15:30
Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.
Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.
Můžete být prvními co zanechají smysluplný komentář.
Pomohl Vám návod? Sdílejte na Facebooku, G+ |
||
LinkedIn... |
Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2021 |