Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Mudassir: Pro dnešek máme velmi zajímavý problém, se kterým můžeme pracovat. Problém s tímto souborem je, že je opravený oddělený sloupci a nevím, jak to vyřešit pomocí Microsoft Power Query. Celé video tohoto tutoriálu si můžete prohlédnout ve spodní části tohoto blogu.

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Za prvé, nebylo pro mě snadné dynamicky mazat sloupce. Za druhé, v tomto přehledu máme jednu tabulku s jinou šířkou sloupce a pak další tabulku s jinou šířkou sloupce.

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Pokud tedy použiji jeden oddělovač dynamicky nahoře, nebyl bych schopen získat data úhledně. Chci získat všechna tato data z druhé tabulky a moje čísla produktů z první tabulky. Také chci číslo zakázky v každém řádku všech tabulek.

Snažil jsem se to vyřešit sám, ale protože to má něco společného s dotazem na napájení, potřeboval jsem pomoc od Melissy. Myslel jsem, že jí to zabere aspoň dva dny, ale hned se jí podařilo přijít na řešení.

Melissa nám ukáže, jak tento komplikovaný problém vyřešila. Myslím, že většina lidí se bude potýkat s těmito druhy problémů a hledá způsoby, jak je vyřešit.

Melissa: První tip je, že pokud se díváte na soubor s pevnou délkou, můžete přejít na kartu Zobrazit a zapnout možnost Monospaced .

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Vidíme, že jde o písmo s pevnou délkou. Můžeme také vidět záhlaví, počáteční tabulky a podtabulky. Toto jsou části, které nás zajímají a z nichž chceme extrahovat.

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Také se prosím ujistěte, že máte povolenou lištu vzorců. Vždy je dobré mít to viditelné na obrazovce, protože je budeme často používat k drobným úpravám vstupu.

Vytvořil jsem parametr pro umístění souboru, kam jsem uložil soubor CSV. Přinesl jsem to jako pracovní soubor a vložil jsem ho do parametru umístění souboru. Poté jsem vytvořil referenci a z této reference budu vycházet. To je to, na co se právě teď díváme v Microsoft power query.

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Obsah

Přidání sloupce indexu

Obvykle, když začnu pracovat na takovém souboru, budu potřebovat znát požadavky klienta. Ptám se, co klient potřebuje a co hledat.

V tomto případě chceme číslo položky a číslo zakázky z hlaviček a pak chceme všechny podrobnosti, které patří do této konkrétní hlavičky.

Budeme potřebovat klíč, abychom ty věci dali zase dohromady. Ale pokud není přítomen žádný klíč, pak chci přidat . Kliknu na ikonu mini tabulky, vyberu Přidat sloupec indexu a poté přidám Od 0 .

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Později použiji logiku se seznamy, které mají index založený na nule. To, že váš index začíná od nuly, ve skutečnosti znamená, že můžete odkazovat na stejný řádek. V opačném případě budete muset odečíst 1, abyste se dostali na pozici založenou na 0.

Potom musíme najít pozici, kde jsou naše záhlaví, což můžeme udělat docela snadno, protože tyto záhlaví se neustále opakují v celém souboru.

Pro začátek zkopírujeme tuto hodnotu:

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Přidejte nový prázdný dotaz, vložte jej a nazvěte jej HeaderID .

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Udělám stejný postup pro podtabulky. Zkopíruji tento textový řetězec, vytvořím další prázdný dotaz a vložím tuto hodnotu. Toto bude řetězec, který použijeme při hledání podrobných řádků.

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Pokud tento proces nějak změní záhlaví některé z těchto tabulek, stačí změnit jeden z textových řetězců a soubor bude znovu fungovat.

Opravdu se nemusím ponořit do kódu M, abych hledal řetězec, který hledáme. Můžeme to použít jen jako parametr.

Povolme zatížení pro tyto dva dotazy.

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Vytvoření seznamu vyrovnávací paměti v Microsoft Power Query

První věc, kterou udělám, je přeměnit Column1 na seznam tím, že na něj jednou odkazuji a načtu ho do paměti. Tímto způsobem nemusím provádět opakované volání do souboru.

Otevřu pokročilý editor a umístím ho úplně nahoru. Když k vytvoření kódu použijete uživatelské rozhraní, bude odkazovat na předchozí krok.

Když umístíte krok vyrovnávací paměti kamkoli jinam do kódu a budete chtít provést úpravu, později vám to pomůže provést změny v kroku, který ručně vytváříte.

Budu to nazývat BufferList a odkazovat na Column1. Pro načtení do paměti přidám krok List.Buffer .

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Tady je moje proměnná úplně nahoře. Mohu na to odkazovat znovu a znovu.

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

První věc, kterou chci zjistit, je, kde moje záhlaví začínají, protože potřebuji klíč k zachování těchto sekcí záhlaví a získání jediné hodnoty pro všechny tyto řádky. K tomu přidám vlastní sloupec a nazvu ho Záhlaví .

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Napíšu, že pokud se Sloupec1 rovná našemu ID záhlaví, pak chci, aby moje indexové číslo bylo null.

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Výsledkem bylo, že našel text a vrátil 5 a 23.

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Potřebuji tuto hodnotu ve všech řádcích, takže ji musím vyplnit. Stačí kliknout pravým tlačítkem a vyplnit, ale můžete také použít velmi jednoduchou syntaxi a přidat ji do řádku vzorců.

V tomto případě jsem přidal Table.FillDown a v textovém řetězci jsem uvedl, který sloupec chceme vyplnit (Header).

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Nyní jsme to vyplnili pro všechny řádky. Máme klíč pro všechny sekce záhlaví a všechny sekce řádků, protože všechny sdílejí tuto hodnotu.

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Rozdělení záhlaví z řádků

Dalším krokem je rozdělení záhlaví z řádků. Přidám další vlastní sloupec a nazvu ho Temp . Tentokrát uděláme něco propracovanějšího a využijeme BufferList , který jsem vytvořil dříve.

Použijeme několik funkcí seznamů, abychom se podívali na každou z pozic a zjistili, zda existuje shoda s indexem.

Začnu příkazem if a použiji List.Contains k vyhledání konkrétní pozice v BufferList a odkazu na dotaz HeaderID .

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Chceme ji najít v celé délce souboru a poté vrátit pozici položky v seznamu. Pokud se shoduje s indexem, máme shodu pro tento konkrétní řádek.

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Poté chci vrátit hodnotu pro identifikaci záhlaví. V tomto případě právě vracím H. Zkopíruji syntaxi, abych to nemusel psát znovu.

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Musíme také identifikovat sekci řádku. Pokud seznam neobsahuje HeaderID , ale DetailID , pak jsme v sekci řádků.

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Pokud je Column1 prázdný textový řetězec, pak chci, aby zůstal prázdný . Pokud tomu tak není, pak chci, aby to bylo null .

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Tato opozice získala řádek záhlaví a vrátila H a poté našla podrobný řádek a vrátila R. Poté vrátila 0 pro všechny položky, které jsou sdíleny v této sekci řádku.

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Tyto mezery nebo nuly jsou důležité, protože umožňují vyplnit. Fill down se přes tyto prázdné buňky nebude pohybovat, takže je můžeme později odstranit.

To provedeme v řádku vzorců a znovu použijeme Table.FillDown . Chce to seznam s názvem sloupce, což je náš sloupec Temp .

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Nyní máme hodnoty H a R opakovány v celém tomto sloupci, což znamená, že můžeme skutečně rozdělit záhlaví z podrobných sekcí.

Můžete jej také vyplnit z uživatelského rozhraní, pokud nechcete psát kód. Stačí kliknout pravým tlačítkem a vybrat Vyplnit a poté Dolů .

Odstranění nul a prázdných míst v Microsoft Power Query

Nyní, když máme toto právo, můžeme odstranit věci, které nepotřebujeme. Vše, co je null nebo obsahuje prázdné místo, jsou řádky, které nepotřebujeme a musíme je odstranit. Můžeme je odstranit filtrováním.

Rozdělení sekcí

Jakmile odstraníme tyto mezery a nuly, zůstane nám vše, co potřebujeme. V tomto okamžiku můžeme pouze rozdělit části. Můžeme se zaměřit na řádky záhlaví a vybrat je, protože mají oddělené mezery od všech řádků podrobností (které mají také oddělené mezery).

Do řádku vzorců přidám nový krok, který mi umožní vytvořit další filtr ve stejném sloupci. V tomto případě ponechám pouze všechny sekce záhlaví.

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Teď tu mám všechny ty řádky záhlaví.

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Mohu vybrat Sloupec1 , přejít na řádek vzorců, vybrat Rozdělit sloupec a poté rozdělit podle pozic.

Pak si to nechte zjistit sám power query. Navrhne několik pozic. Klepnutím na tlačítko OK tyto pozice přijmete.

Jediné, co nás z hlaviček zajímá, je položka a číslo zakázky .

Uvnitř řádku vzorců zde mohu přejmenovat ty s Item a Job # . To mě ušetří od dalšího kroku přejmenování sloupce.

Po tomto kroku vše, co musím udělat, je vybrat Item , vybrat Job # a samozřejmě vybrat náš klíč záhlaví . Poté odstraním všechny ostatní sloupce, protože je již nepotřebuji.

Toto bude výsledek. Musíme ještě vyčistit hodnoty a odstranit textovou položku a pomlčky. Vše, co chceme, jsou ty hodnoty mezi tím.

Takže to otevřeme a zrušíme výběr pomlček a položek.

Nyní jsou všechny hlavičky hotové.

Stejný proces musíme udělat i pro DetailID . Budu muset tyto kroky přejmenovat, aby pro mě bylo snazší se k nim vrátit o něco později.

Vrátíme se zpět k původnímu dotazu, který jsme začali. Začali jsme s Filtrovanými řádky v podokně Aplikované kroky.

Zkopíruji to a přidám to do svého filtru. Tentokrát nevybírám H, ale volím R.

Pak vyberu Sloupec1, půjdu do sloupce Rozdělit, rozdělen podle pozic, pak si to nechám zjistit pomocí dotazu Power.

To naznačuje mocenský dotaz. Pojďme to zkusit.

Tohle vlastně vypadá docela dobře. Dokonce i celkové řady se dokonale rozdělily. Samozřejmě je tam spousta mezer, protože jsme měli takové odsazení.

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Oříznutí textových řetězců v Microsoft Power Query

Vyberu tento první sloupec a poté stisknutím klávesy Down + Shift vyberte sloupec 1.10. Přejděte na Transformace , vyberte Formát a poté Oříznout . Zastřižením se odstraní pouze přebytečné prostory před nebo na konci provázku, nikoli mezi nimi.

Dále můžeme propagovat pouze záhlaví, takže nemusím zadávat všechna záhlaví nebo názvy těchto sloupců. V kroku rozdělení jsem přejmenoval dva sloupce. Teď samozřejmě s 10 sloupci je to trochu otrava.

Musíme se také zbavit těch přebytečných hodnot. Protože máme součty, musím použít jeden z těchto posledních tří sloupců, protože jsou to jediné řádky, které mají další hodnoty někde mezi nimi. Poté zrušíme výběr těchto mezer, pomlček a textů.

Poté odstraním nepotřebné sloupce, takže zbude pouze tabulka s pouze záhlavími a pouze detaily. Potřebujeme klíč, abychom ty sekce dali zase dohromady.

K tomu můžeme použít samosloučení, abychom mohli sloučit tabulku se sebou samým a dát tyto informace zpět dohromady. Na kartě Domů vyberte Sloučit a poté vyberte Sloupec 5 a stejný dotaz.

Místo AllDetails chci AllHeaders jako svou počáteční tabulku, se kterou chci sloučit.

Tím se vrátily všechny informace z tabulky záhlaví s jedním řádkem pro každou položku a každé číslo zakázky.

Použili jsme klíč ke sloučení s řádky podrobností. Pokud v tomto prázdném prostoru stisknu na stranu, uvidíme náhled všech řádků, které patří do záhlaví 5.

Zde odebereme poslední sloupec a poté dokončíme opravu smíšené pevné šířky sloupce v dotazu Microsoft Power query.

Kurz Microsoft Power Query o tom, jak opravit smíšené problémy s pevnou šířkou sloupců

Závěr

V tomto kurzu jsme přišli na způsob, jak vyřešit smíšené problémy s pevnou šířkou sloupců pomocí Microsoft Power Query. Pokud se vám obsah obsažený v tomto konkrétním tutoriálu líbil, nezapomeňte se přihlásit k odběru televizního kanálu LuckyTemplates.

Neustále nám vychází obrovské množství obsahu od mě a od řady tvůrců obsahu, z nichž všichni se věnují zlepšování způsobu, jakým používáte LuckyTemplates a Power Platform.

Melissa


Vyhledávací pole PowerApps: Jak přidat a přizpůsobit

Vyhledávací pole PowerApps: Jak přidat a přizpůsobit

Naučte se, jak vytvořit vyhledávací pole PowerApps úplně od začátku a přizpůsobit je tak, aby odpovídalo celkovému tématu vaší aplikace.

Příklad SELECTEDVALUE DAX – Výběr kráječe sklizně

Příklad SELECTEDVALUE DAX – Výběr kráječe sklizně

Sklízejte nebo zachycujte hodnotu uvnitř míry a znovu ji použijte v jiném taktu pro dynamické výpočty pomocí SELECTEDVALUE DAX v LuckyTemplates.

Historie verzí v seznamech SharePoint

Historie verzí v seznamech SharePoint

Zjistěte, jak vám historie verzí na SharePointu může pomoci vidět vývoj určitých dat a kolika změn prošla.

Výběr barevných hexadecimálních kódů pro zprávy LuckyTemplates

Výběr barevných hexadecimálních kódů pro zprávy LuckyTemplates

Zde je nástroj pro vytváření sestav a vizuálů, výběr barevných hexadecimálních kódů, který můžete použít ke snadnému získání barev pro vaše sestavy LuckyTemplates.

Dynamický datový výřez v LuckyTemplates pomocí tabulky období

Dynamický datový výřez v LuckyTemplates pomocí tabulky období

Pomocí tabulky období můžete v přehledu snadno zobrazit časové období jako průřez. Použijte M kód k vytvoření dynamického datového výřezu v LuckyTemplates.

Tabulky proporcí a četností v Excelu

Tabulky proporcí a četností v Excelu

Chtěli jsme se ponořit do tabulek četností v Excelu a také do tabulek proporcí. Podívejte se, co to je a kdy je použít.

Ako nainštalovať DAX Studio & Tabular Editor v LuckyTemplates

Ako nainštalovať DAX Studio & Tabular Editor v LuckyTemplates

Zistite, ako stiahnuť a nainštalovať DAX Studio a Tabular Editor 3 a ako ich nakonfigurovať na použitie v LuckyTemplates a v Exceli.

LuckyTemplates Vizualizácia tvarovej mapy pre priestorovú analýzu

LuckyTemplates Vizualizácia tvarovej mapy pre priestorovú analýzu

Tento blog obsahuje vizualizáciu Shape Map pre priestorovú analýzu v LuckyTemplates. Ukážem vám, ako môžete efektívne využiť túto vizualizáciu s jej funkciami a prvkami.

LuckyTemplates Finančné výkazníctvo: Prideľovanie výsledkov šablónam v každom jednom riadku

LuckyTemplates Finančné výkazníctvo: Prideľovanie výsledkov šablónam v každom jednom riadku

V tomto návode predstavujem jedinečný nápad týkajúci sa finančného výkazníctva, ktorý spočíva v prideľovaní výsledkov na vopred určené šablóny tabuliek v rámci LuckyTemplates.

DAX měří v LuckyTemplates pomocí Measure Branching

DAX měří v LuckyTemplates pomocí Measure Branching

Vytvářejte míry DAX v LuckyTemplates pomocí existujících mír nebo vzorců. Tomu říkám technika větvení opatření.