Naučte se kombinovat více zdrojů dat (Power Query)

Platí pro
Excel pro Microsoft 365 Excel 2024 Excel 2021

V tomto kurzu můžete pomocí Editoru dotazů v Power Query importovat data z místního excelového souboru, který obsahuje informace o produktu, a z datového kanálu OData, který obsahuje informace o objednávce produktu. Proveďte kroky transformace a agregace a zkombinováním dat z obou zdrojů vytvořte sestavu Celkové prodeje za produkt a rok .   

K dokončení tohoto kurzu potřebujete sešit Produkty . V dialogovém okně Uložit jako soubor pojmenujte Výrobky a objednávky.xlsx.

Úkol 1: Import produktů do excelového sešitu

V tomto úkolu importujete produkty ze souboru Výrobky a Orders.xlsx (stažený a přejmenovaný v předchozí části) do excelového sešitu. Potom zvyšte úroveň řádků na záhlaví sloupců, některé sloupce odeberte a načtěte dotaz do listu.

Krok 1: Připojení k excelovému sešitu

  1. Vytvořte excelový sešit.
  2. Vyberte možnost Získat>data>ze souboru>ze sešitu.
  3. V dialogovém okně Importovat data vyhledejte a najděte Products.xlsx soubor, který jste stáhli, a pak vyberte Otevřít.
  4. V navigačním podokně poklikejte na tabulku Produkty . Zobrazí se Editor Power Query.

Krok 2: Prozkoumání kroků dotazu

Ve výchozím nastavení Power Query pro vaše pohodlí automaticky přidává několik kroků. Další informace získáte v části Použitý postup v podokně Nastavení dotazu .

  1. Klikněte pravým tlačítkem na krok Zdroj a vyberte Upravit nastavení. Tento krok byl vytvořen při importu sešitu.
  2. Klikněte pravým tlačítkem myši na navigační krok a vyberte Upravit nastavení. Tento krok se vytvořil, když jste vybrali tabulku v navigačním dialogovém okně.
  3. Klikněte pravým tlačítkem myši na krok Změněný typ a vyberte možnost Upravit nastavení. Tento krok vytvořil nástroj Power Query, který odvodil datové typy jednotlivých sloupců. Vyberte šipku dolů napravo od řádku vzorců a podívejte se na celý vzorec.

Krok 3: Odebrání dalších sloupců tak, aby se zobrazovaly jenom potřebné sloupce

V tomto kroku odeberete všechny sloupce kromě IDProduktu, NazevProduktu, IDKategorie a MnožstvíNaJednotku.

  1. V zobrazení Náhled dat vyberte sloupce IDProduktu, NazevProduktu, IDKategorie a MnožstvíNaJednotku (použijte kombinaci kláves Ctrl+kliknutí nebo Shift+kliknutí).
  2. Vyberte Odebrat sloupce> aodebrat ostatní sloupce.
    Snímek obrazovky znázorňující možnost Skrýt ostatní sloupce.

Krok 4: Načtení dotazu na produkty

V tomto kroku načtete dotaz Produkty do excelového listu.

  • Vyberte Domů>Zavřít & Načíst. Dotaz se zobrazí v novém listu aplikace Excel.

Shrnutí: Kroky Power Query vytvořené v úkolu 1

Při provádění aktivit dotazu v Power Query vytvoří kroky dotazu a zobrazí jejich seznam v podokně Nastavení dotazu v seznamu Použitý postup. Každý krok dotazu má odpovídající vzorec Power Query známý taky jako jazyk „M“. Další informace o vzorcích Power Query najdete v dokumentaci k Power Query.

Úkol Krok dotazu Vzorec
Import excelového sešitu Zdroj = Excel.Workbook(File.Contents("C:\Products and Orders.xlsx"), null; true)
Vyberte tabulku Výrobky Navigace: = Source{[Item="Products",Kind="Table"]}[Data]
Power Query automaticky rozpozná datové typy sloupců Změněný typ = Table.TransformColumnTypes( Products_Table,{{"IDProduktu", Int64.Type}, {"ProductName", zadejte text}, {"IDDODAVATELE", Int64.Type}, {"IDKategorie", Int64.Type}, {"MnožstvíNaJednotku", zadejte text}, {"JednotkováCena", typ číslo}, {"JednotkyNaSkladě", Int64.Type}, {"JednotkyPři objednávce", Int64.Type}, {"Úroveň řazení", Int64.Type}, {"Ukončeno", logický typ}})
Odebrání ostatních sloupců tak, aby se zobrazovaly jenom potřebné sloupce Odebrané další sloupce = Table.SelectColumns(FirstRowAsHeader,{"IDProduktu", "NázevProduktu", "IDKategorie", "MnožstvíNaJednotku"})

Úkol 2: Import dat objednávek z datového kanálu OData

V tomto úkolu importujete do excelového sešitu data z ukázkového datového kanálu Northwind OData na http://services.odata.org/Northwind/Northwind.svcadrese , rozbalíte tabulku Order_Details, odeberete sloupce, vypočítáte součet za řádek, transformujete DatumObjednávky, seskupíte řádky podle IDProduktu a Roku, přejmenujete dotaz a zakážete stahování dotazů do excelového sešitu.

Krok 1: Připojení k datovému kanálu OData

  1. Vyberte možnost Data>Načíst data>z jiných zdrojů>z datového kanálu OData.
  2. V dialogu Datový kanál OData zadejte Adresu URL datového kanálu Northwind OData.
  3. Vyberte OK.
  4. V navigačním podokně poklikejte na tabulku Objednávky .

Krok 2: Rozbalení tabulky Order_Details

V tomto kroku rozšíříte tabulku Podrobnosti_objednávky související s tabulkou Objednávky a zkombinujete sloupce IDProduktu, JednotkováCenaMnožství z tabulky Podrobnosti_objednávky do tabulky Objednávky. Operace rozšíření kombinuje sloupce ze související tabulky do tabulky předmětu. Po spuštění dotazu se řádky ze související tabulky (Order_Details) zkombinují do řádků s primární tabulkou (objednávky).

Sloupec obsahující související tabulku v Power Query obsahuje v buňce hodnotu Záznam nebo Tabulka. Označují se jako strukturované sloupce. Záznam označuje jeden související záznam a představuje relaci 1:1 s aktuálními daty nebo primární tabulkou. Tabulka označuje související tabulku a představuje relaci 1:N s aktuální nebo primární tabulkou. Strukturovaný sloupec představuje relaci ve zdroji dat, který používá relační model. Strukturovaný sloupec například označuje entitu s přidružením cizího klíče v datovém kanálu OData nebo relací cizího klíče v databázi systému SQL Server.

Po rozšíření tabulky Order_Details se do tabulky Objednávky přidají tři nové sloupce a další řádky, pokaždé jeden za každý řádek ve vnořené nebo související tabulce.

  1. V náhledu dat se vodorovně posuňte na sloupec Order_Details .

  2. Ve sloupci Order_Details vyberte ikonu rozšíření ( ).

  3. V rozevíracím seznamu Rozšířit:

    1. Výběrem možnosti (Vybrat všechny sloupce) vymažete všechny sloupce.

    2. Vyberte IDProduktu, JednotkováCena a Mnozstvi.

    3. Vyberte OK.
      Snímek obrazovky ukazující odkaz Rozbalení Order_Details tabulky

      Poznámka

      V Power Query můžete rozšířit tabulky propojené ze sloupce a agregovat sloupce propojené tabulky před rozšířením dat v tabulce předmětu. Další informace o provádění agregačních operací najdete v tématu Agregace dat ze sloupce (Power Query).

Krok 3: Odebrání dalších sloupců tak, aby se zobrazovaly jenom potřebné sloupce

V tomto kroku odeberete všechny sloupce kromě DatumObjednávky, IDProduktu, JednotkováCena a Množství

  1. V náhledu dat vyberte následující sloupce:

    1. Vyberte první sloupec, IDobjednávky.
    2. Shift+kliknutí na poslední sloupec, Dopravce.
    3. Podržte klávesu Ctrl a klikněte na sloupce Datum_objednávky, Podrobnosti_objednávky.IDProduktu, Podrobnosti_objednávky.JednotkováCenaPodrobnosti_objednávky.Množství.
  2. Klikněte pravým tlačítkem myši na záhlaví vybraného sloupce a vyberte Odebrat ostatní sloupce.

Krok 4: Výpočet součtu řádku pro každý řádek Order_Details

V tomto kroku vytvoříte vlastní sloupec k výpočtu součtu řádku pro každý řádek tabulky Podrobnosti_objednávky.

  1. V náhledu dat vyberte ikonu tabulky ( ) v levém horním rohu náhledu.
  2. Vyberte Přidat vlastní sloupec.
  3. V dialogovém okně Vlastní sloupec zadejte do pole Vzorec vlastního sloupce[Order_Details.JednotkováCena] * [Order_Details.Množství].
  4. Do pole Název nového sloupce zadejte Součet za řádek.
  5. Vyberte OK.

Snímek obrazovky ukazující výpočet součtů za řádek pro každý řádek Order_Details.

Krok 5: Transformace sloupce roku DatumObjednávky

V tomto kroku transformujete sloupec DatumObjednávky tak, aby zobrazoval rok data objednávky.

  1. V náhledu dat klikněte pravým tlačítkem myši na sloupec DatumObjednávky a vyberte Transformovat>rok.

  2. Přejmenujte sloupec DatumObjednávky na Rok:

    1. Poklikejte na sloupec DatumObjednávky a zadejte Rok nebo
    2. Klikněte pravým tlačítkem myši na sloupec DatumObjednávky , vyberte Přejmenovat a zadejte Rok.

Krok 6: Seskupení řádků podle IDProduktu a Roku

  1. V náhledu dat vyberte Rok a Order_Details.IDProduktu.

  2. Klikněte pravým tlačítkem myši na jedno ze záhlaví a vyberte Seskupit podle.

  3. V dialogu Seskupit podle:

    1. Do textového pole Nový název sloupce zadejte Celkové prodeje.
    2. V rozevíracím seznamu Operace vyberte Součet.
    3. V rozevíracím seznamu Sloupec vyberte Součet za řádek.
  4. Vyberte OK.
    Snímek obrazovky znázorňující dialog Seskupit podle pro agregační operace.

Krok 7: Přejmenování dotazu

Před importem dat prodeje do Excelu přejmenujte dotaz:

  • V podokně Nastavení dotazu zadejte do pole Názevcelkové prodeje.

Výsledky: Závěrečný dotaz pro úkol 2

Po provedení všech kroků budete mít dotaz Celkové prodeje pro datový kanál Northwind OData.

Snímek obrazovky zobrazující celkový prodej

Shrnutí: Kroky Power Query vytvořené v úkolu 2

Při provádění aktivit dotazu v Power Query vytvoří kroky dotazu a zobrazí jejich seznam v podokně Nastavení dotazu v seznamu Použitý postup. Každý krok dotazu má odpovídající vzorec Power Query známý taky jako jazyk „M“. Další informace o vzorcích Power Query najdete v dokumentaci k Power Query.

Úkol Krok dotazu Vzorec
Připojení k datovému kanálu OData Zdroj = OData.Feed("http://services.odata.org/Northwind/Northwind.svc"; null; [Implementation="2.0"])
Výběr tabulky Navigace = Source{[Name="Orders"]}[Data]
Rozšíření tabulky Podrobnosti_objednávky Rozšíření tabulky Podrobnosti_objednávky = Table.ExpandTableColumn(Orders, "Order_Details", {"IDProduktu", "JednotkováCena", "Množství"}, {"Order_Details.IDProduktu", "Order_Details.JednotkováCena", "Order_Details.Množství"})
Odebrání ostatních sloupců tak, aby se zobrazovaly jenom potřebné sloupce RemovedColumns = Table.RemoveColumns(#"Rozšíření Order_Details",{"IDObjednávky", "IDZákazníka", "IDZaměstnance", "DodatDne", "DatumOdeslání", "Dopravce", "Dopravné", "NázevZásilky", "AdresaDodání", "MěstoDodání", "OblastDodání", "PSČDodání", "ZeměDodání", "Zákazník", "Zaměstnanec", "Přepravce"})
Výpočet součtů pro každý řádek tabulky Podrobnosti_objednávky Přidání vlastního = Table.AddColumn(RemovedColumns, "Vlastní", each [Order_Details.JednotkováCena] * [Order_Details.Množství])
= Table.AddColumn(#"Rozšířené Order_Details", "Součet za řádek", each [Order_Details.JednotkováCena] * [Order_Details.Množství])
Změna na smysluplnější název Lne Celkem Přejmenované sloupce = Table.RenameColumns(InsertedCustom,{{"Vlastní", "Součet za řádek"}})
Transformace sloupce DatumObjednávky na zobrazení roku Extrahovaný rok = Table.TransformColumns(#"Grouped Rows",{{"Year", Date.Year, Int64.Type}})
Změnit na
smysluplnější názvy, DatumObjednávky a Rok
Přejmenované sloupce 1 Table.RenameColumns
(TransformedColumn,{{"DatumObjednávky", "Rok"}})
Seskupení řádků podle IDProduktu a Roku GroupedRows = Table.Group(RenamedColumns1, {"Rok", "Order_Details.IDProduktu"}, {{"Celkové prodeje", each List.Sum([Součet za řádek]), type number}})

Úkol 3: Zkombinování dotazů Produkty a Celkové prodeje

Power Query vám umožňuje zkombinovat několik dotazů jejich sloučením nebo připojením. Operaci sloučení můžete provést u jakéhokoli dotazu Power Query, který má formát tabulky, bez ohledu na zdroj dat. Další informace o kombinování zdrojů dat najdete v tématu Kombinování víc dotazů (Power Query).

V tomto úkolu zkombinujete dotazy Produkty a Celkové prodeje pomocí sloučeného dotazu a operace rozšíření a potom načtete dotaz Celkové prodeje za produkt do datového modelu Excelu.

Krok 1: Sloučení IDProduktu a dotazu Celkové prodeje

  1. V excelovém sešitu přejděte na dotaz Produkty na kartě listu Produkty .

  2. Vyberte buňku v dotazu a pak vyberte Sloučení dotazu>.

  3. V dialogu Sloučit vyberte Produkty jako primární tabulku a vyberte Celkové prodeje jako sekundární nebo související dotaz ke sloučení. Celkové prodeje se změní na nový strukturovaný sloupec s ikonou rozbalení.

  4. Aby Celkové prodeje odpovídaly Produktům podle IDProduktu, vyberte sloupec IDProduktu z tabulky Produkty a sloupec Podrobnosti_objednávky.IDProduktu z tabulky Celkové prodeje.

  5. V dialogu Úrovně ochrany osobních údajů:

    1. Pro oba zdroje dat vyberte jako úroveň izolace osobních údajů hodnotu Organizační.
    2. Vyberte Uložit.
  6. Vyberte OK.

    Poznámka

    Úrovně ochrany osobních údajů brání uživateli neúmyslně kombinovat data z víc zdrojů dat, které by mohly být soukromé nebo firemní. V závislosti na dotazu by uživatel mohl neúmyslně odesílat data ze soukromého zdroje dat jinému zdroji dat, který by mohl být škodlivý. Power Query analyzuje každý zdroj dat a klasifikuje ho do definované úrovně ochrany osobních údajů: Veřejné, organizační a soukromé. Další informace o úrovních ochrany osobních údajů najdete v tématu Nastavení úrovní ochrany osobních údajů (Power Query).

    Snímek obrazovky s dialogovým oknem Sloučit

Výsledek

Operace sloučení vytvoří dotaz. Výsledek dotazu obsahuje všechny sloupce z primární tabulky (Produkty) a strukturovaný sloupec jedné tabulky se související tabulkou (Celkové prodeje). Výběrem ikony Rozbalit přidáte do primární tabulky nové sloupce ze sekundární nebo související tabulky.

Snímek obrazovky znázorňující dokončení sloučení.

Krok 2: Rozbalení sloučeného sloupce

V tomto kroku rozšíříte sloučený sloupec s názvem NovýSloupec a vytvoříte dva nové sloupce v dotazu Produkty : Rok a Celkové prodeje.

  1. V náhledu dat vyberte ikonu rozšíření ( ) vedle NovéhoSloupce.

  2. V rozevíracím seznamu Rozbalit :

    1. Výběrem možnosti (Vybrat všechny sloupce) vymažete všechny sloupce.
    2. Vyberte Rok a Celkové prodeje.
    3. Vyberte OK.
  3. Přejmenujte tyto dva sloupce na RokCelkové prodeje.

  4. Pokud chcete zjistit, které produkty ve kterém roce dosáhly nejvyšších objemů prodeje, vyberte Seřadit sestupně podle celkového prodeje.

  5. Přejmenujte dotaz na Celkové prodeje za produkt.

Výsledek

Snímek obrazovky s odkazem Rozbalení tabulky

Krok 3: Načtení dotazu Celkové prodeje za produkt do datového modelu Excelu

V tomto kroku načtete dotaz do datového modelu Excelu, takže můžete vytvořit sestavu propojenou s výsledkem dotazu. Po načtení dat do datového modelu Excelu můžete použít Power Pivot k další analýze dat.

  1. Vyberte Domů>Zavřít & Načíst.
  2. V dialogovém okně Importovat data se ujistěte, že jste vybrali Přidat tato data do datového modelu. Další informace o používání tohoto dialogového okna získáte výběrem otazníku (?).

Výsledek

Máte dotaz Celkové prodeje za produkt , který kombinuje data ze souboru Products.xlsx a datového kanálu Northwind OData. Tento dotaz se použije na model Power Pivotu. Změny dotazu navíc změní a aktualizují výslednou tabulku v datovém modelu.

Shrnutí: Kroky Power Query vytvořené v úkolu 3

Při provádění aktivit sloučení dotazů v Power Query se kroky dotazu vytvářejí a zobrazují v podokně Nastavení dotazu v seznamu Použitý postup. Každý krok dotazu má odpovídající vzorec Power Query známý taky jako jazyk „M“. Další informace o vzorcích Power Query najdete v dokumentaci k Power Query.

Úkol Krok dotazu Vzorec
Sloučení IDProduktu a dotazu Celkové prodeje Zdroj (zdroj dat pro operaci sloučení) = Table.NestedJoin(Products, {"IDProduktu"}, #"Celkové prodeje", {"Order_Details.IDProduktu"}, "Celkové prodeje", JoinKind.LeftOuter)
Rozšíření sloučeného sloupce Rozšířený celkový prodej = Table.ExpandTableColumn(Source, "Celkové prodeje", {"Rok", "Celkové prodeje"}, {"Celkové prodeje.Rok", "Celkové prodeje.Celkové prodeje"})
Přejmenování dvou sloupců Přejmenované sloupce = Table.RenameColumns(#"Expanded Total Sales",{{"Total Sales.Year", "Year"}, {"Total Sales.Total Sales", "Total Sales"}})
Seřadit celkový prodej vzestupně Seřazené řádky = Table.Sort(#"Přejmenované sloupce",{{"Celkové prodeje", Order.Ascending}})

Viz také

Nápověda pro doplněk Power Query pro Excel