Přeskočit navigaci | Přeskočit na novinky

Jste zde: Úvodní stránka » excel » Query-editor » objekty-jazyka-M-Editor-Power-Query
Microsoft Excel logo

Objekty jazyka M (language) v Editoru Power Query

Videokurzy Excel

Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:

Jaké objekty máte v jazyku M v Editoru Power Query. Od pochopení jeho syntaxe, přes vylepšení a zpřehlednění po vlastní funkce.

Využijete nejen v Excel ale i v Power BI.

Úvodem do jazyka M

Uživatelské rozhraní Editoru Power Query je úžasné, mnoho operací provedete klikem na ikony pasu karet. Přesto se někdy stane, že budete potřebovat udělat věci, které nejsou v uživatelském rozhraní zabudovány (odkaz na předchozí krok). Pokud požadovanou činnost v menu nenajdete, stačí v Editoru Power Query a využít jazyk M (M-language).

V tomto článku se postupně podíáate na různé objekty, které můžete v jazyku M mít (seznamy, záznamy, tabulky) a jak je vložit. Pro přehlednost a možnost článek doplňovat a rozšiřovat je rozdělen na jednotlivé kapitoly:

Prázdný dotaz

Pro další ukázky nejprve spusťte Excel a vložte prázdný dotaz. Na pásu karet Data ikona Načíst data z menu vyberte Z jiných zdrojů a vybrat Prázdný dotaz.

Excel - prazdný dotaz

Zobrazí se vám Editor Power Query.

Editor Power Query

Podobně funguje i v Power BI při přidání prázdného dotazu.

Přidat prázdný dotaz v Editoru Power Query

Pro testy se hodí vložit prázdný dotaz z menu v Power Query Editoru.

Menu Domů > Nový zdroj > Jiné zdroje > Prázdný dotaz.

Nový dotaz Editor Power Query

Seznam (List)

V programu Editor Power Query lze seznam (v angličtině List) identifikovat podle přítomnosti složených závorek {}, přičemž položky v seznamu jsou oddělené čárkami.

Pokud jsou v seznamu čísla, stačí ej oddělovat čárkou, pokud půjde o textové položky musí se zapisovat mezi uvozovky (podobně jako ve vzorci Excelu).

Jako první zkuste zadat do řádků vzorců:

= {1,2,3,4,5} Seznam v Editoru Power Query

Dotaz můžete přejmenovat na "Cisla". Stačí v Názvu změnit název na Cisla.

Název: Seznam v Editoru Power Query

Podle předchozí kapitoly "Přidat prázdný dotaz v Editoru Power Query" přidejte prázdný dotaz, který můžete pojmenovat Písmena a vložte vzorec.

={"A","B","C","D","E","F","G","H","I","J"} Seznam v Editoru Power Query

Přidejte prázdný dotaz (pojmenovat můžete SeznamSeznamu) a můžete přidat seznam seznamů vložením vzorce:

= {2,"Pavel Lasák",{42,1}} Seznam v Editoru Power Query

Seznam jako řada

Vytvořit seznam oddělených čárkou u malých číselných řad není problém. Co když, ale chcete vytvořit řadu 1 až 365? Vypsat všech 365 čísel se vám asi nebude chtít tvořit. M můžete ale využít řadu od do. Zadejte vzorec do nového prázdného dotazu (můžete jej mít pojmenován například Řada):

={1..365} Seznam v Editoru Power Query

Lze i u písmen, opět přidejte nový dotaz pojmenujte PísmenaŘada a zadejte vzorec:

={"A".."Z"}

Bohužel zatím funguje jen u jednopísmenných rozsahů. U více písmenných ne.

={"A".."ZZ"}

Speciální seznamy

Seznam mající ve textech středníky a čárky, opět do prázdného dotazu pojmenovaného Středníky

= {"Pavel, Lasák", "JakNaExcel.cz", "Pavel; Lasák"} Seznam v Editoru Power Query

Co ale samostatné uvozovky, opět do nového dotazu (Uvozovky) můžete vložit vzorec:

= {""""""," "" "," ' "," """,""""} Seznam v Editoru Power Query

Seznam převést na tabulku

Budete-li potřebovat převést seznam na tabulku stačí vybrat seznam (v ukázce si vyberu seznam Cisla), který chcete převést a klik na ikonu Do tabulky z pásu karet Transformace.

Na tabulku v Editoru Power Query

V zobrazeném dialogovém okně můžete zvolit oddělovač, a co se má stát s nadbytečnými sloupci.

Na tabulku v Editoru Power Query

Klikem na OK. A máte hotovo.

Na tabulku v Editoru Power Query

Seznam seznamu na tabulku

Přidejte nový prázdný dotaz (SeznamyVSeznamu), která bude obsahovat seznam seznamu. Stačí složit vzorec:

= {{1,"Pavel"},{2,"Lasák"},{3,"Excel"},{4,"PowerBI"}} Seznam v Editoru Power Query

Protože se jedná o seznam složený ze seznamu, potřebujete se dostat k datům. Což jednoduše provedete, že nejprve převedete na tabulku. Klikem Do tabulky z pásu karet Transformace. V zobrazeném okně stačí klik na OK.

Tabulka ze Seznam v Editoru Power Query

Klik na "dvojšipku" u názvu sloupce a pokud vyberete Rozbalit do nových řádku. Obdržíte hodnoty seřazené pod sebou.

Tabulka ze Seznam v Editoru Power Query

Zde budete mít malou komplikací, protože hodnoty jsou pod sebou. Pokud je budete chtít dostat do sloupců, bude potřeba přidat indexovaný sloupec, následně zbytek po dělení požadovaným počtem sloupců, "pivotovatů. Což je jen trochu pracné.

Tabulka ze Seznam v Editoru Power Query

Druhá možnost je vybrat druhou možnost, která se po kliku na "dvojšipku" objeví Extrahovat hodnoty....

Tabulka ze Seznamu - extrahovat - v Editoru Power Query

V dialogovém okně Extrahovat hodnoty ze seznamu zvolíte oddělovat, kterým se jednotlivé položky ze seznamu rozdělí. Například čárka.

Tabulka ze Seznamu - extrahovat - v Editoru Power Query

Klikem na OK obdržíte tabulku, kde jednotlivé položky ze seznamu budou odděleny čárkou, s čímž si poradíte rychleji. Rozdělit sloupce podle čárky.

Tabulka ze Seznamu - extrahovat - v Editoru Power Query

Záznamy (Records) teorie

Zatímco seznam (List) lze popsat jako jeden vertikální sloupec dat. Záznam (Records) lze naopak popsat jako horizontální, vícesloupcový seznam. Záznam (Records) si lze představit jako jeden řádek databáze, který obsahuje všechny relevantní informace. Například informace týkající se konkrétního zákazníka, zaměstnance, transakce, automobilu, výrobků.

V aplikaci Editor Power Query se záznamy mohou zobrazovat ve sloupcích tabulky nebo v seznamech při načítání dat.

Záznamy jsou:

  • 1 Každý úplný záznam je obklopen hranatými závorkami []
  • 2 Každé pole záznamu (sloupec) musí mít definovaný název (jméno sloupce), za kterým následuje znak =
  • 3 Následují údaje pro dané pole, které jsou v případě textových údajů obklopeny uvozovkami
  • 4 Každá dvojice název pole a data které obsahuje je oddělena čárkou ,

První záznam (Records)

Přidejte si do Editoru Power Query další prázdný záznam a vložte do řádku vzorců vzorec:

= [Jméno="Pavel", Přijmení="Lasák", Věk=42] Záznam (Records) Editoru Power Query

Další možnost jednoho záznamu (jména sloupců mohou obsahovat mezery):

= [Jméno osoby="Pavel", Příjmení osoby="Lasák", Věk osoby=42]

Případně s uvozovkami v datech:

= [Jméno osoby="Pavel", Příjmení osoby="Lasák", Věk osoby=42, Uvozovky test = """"] Záznam (Records) Editoru Power Query

Seznam (List) Záznamů (Records)

V předchozím, byl k vidění jen jeden záznam. Jak vytvořit více záznamů? Vložíte je do seznamu (Listu), Opět můžete přidat prázdný dotaz, pojmenujete (třeba SeznamZaznamu):

= {[Jméno="Pavel", Přijmení="Lasák", Věk=42], [Jméno="Jan", Přijmení="Malý", Věk=2]} Záznam (Records) Editoru Power Query

Speciální seznam záznamů

Co takhle zkusit do nového prázdného dotazu, do řádku vzorců vložit:

= [ POLE_1 = 1, POLE_2 = "A", POLE_3 = "{}", POLE_4 = {1,2,3}, POLE_5 = [A=1, B=2, C=3], POLE_6 = #table( {"A", "B"}, {{1,2},{3,4}} ), POLE_7 = (D) => D, POLE_8 = "Další pokusy """" " ]

Výsledek

Seznam, Záznam, Tabulka v Editoru Power Query

Toto již přesahuje prostor pro tento článek, ale ukázka je k dispozici pro vaše testy.

Záznamy (Records) do tabulky

Vyberte například první záznam (Records) s jménem, příjmením a věkem.

= [Jméno="Pavel", Přijmení="Lasák", Věk=42]

Na pásu karet Převod klik na ikonu Do tabulky.

Zaznam do tabulky v Editoru Power Query

Obdržíte:

Zaznam do tabulky v Editoru Power Query

Podobně můžete převést do tabulky seznam záznamu, ale t již je opakování, seznam z předchozího převést umíte. A pak jen klik na dvojšipku...

Tabulka základ

Ukázka jak na tabulky pomocí M-kódu. Opět můžete přidat prázdný dotaz, ten pojmenovat tabulka a do řádku vzorců vložit:

= #table( {"Nazevy sloupce 1", "Název druhého sloupce"}, { {"První sloupec první řádek","Druhá sloupec první řádek"}, {"První sloupec druhý řádek","Druhý sloupec druhý řádek"}, {5,6} } ) Tabulka v Editoru Power Query

Pro další ukázku a testy můžete vytvořit prázdný dotaz, který pojmenujete Tabulka2 a vložte do řádku vzorců:

= #table( type table [ #"Number Column"=number, #"Text Column"=text, #"Date Column"=date ], { {1,"Pavel",#date(2022,1,1)}, {2,"Lasák",#date(2022,12,31)} } ) Tabulka v Editoru Power Query

V rozšířeném editoru tabulka vypadá (zobrazíte z menu Domů - Rozšířený editor):

Tabulka v Editoru Power Query

Další ukázky jak na tabulku budou v samostatném článku.

Závěrem

Narazili jste na nějaké problémy, máte tip na vylepšení nebo doplnění článku, můžete se zmínit v komentářích.

Článek byl aktualizován: 14.01.2022 20:00

Odměna

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.


Pavel Lasák - autor webu

Pavel Lasák

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ů.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil


Komentáře zatím nejsou

Můžete být prvními co zanechají smysluplný komentář.






Excel


Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Reklama


TOPlist Licence Creative Commons webarchiv rss XML

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 - 2025 |