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

Leave a Comment

Extrahovanie motívov a obrázkov LuckyTemplates z PBIX

Extrahovanie motívov a obrázkov LuckyTemplates z PBIX

Naučte se, jak rozebrat soubor PBIX a extrahovat motivy a obrázky LuckyTemplates z pozadí pro váš report!

Prehľad a vytvorenie domovskej stránky SharePointu

Prehľad a vytvorenie domovskej stránky SharePointu

Naučte sa, ako vytvoriť domovskú stránku SharePointu, ktorá sa predvolene načítava, keď používatelia zadajú adresu vašej webovej lokality.

Vytvoření tabulky data v LuckyTemplates

Vytvoření tabulky data v LuckyTemplates

Zjistěte, proč je důležité mít vyhrazenou tabulku s daty v LuckyTemplates, a naučte se nejrychlejší a nejefektivnější způsob, jak toho dosáhnout.

LuckyTemplates Mobile Reporting Tipy a techniky

LuckyTemplates Mobile Reporting Tipy a techniky

Tento stručný návod zdůrazňuje funkci mobilního hlášení LuckyTemplates. Ukážu vám, jak můžete efektivně vytvářet přehledy pro mobily.

Profesionální servisní analytické zprávy v LuckyTemplates

Profesionální servisní analytické zprávy v LuckyTemplates

V této ukázce LuckyTemplates si projdeme sestavy ukazující profesionální analýzy služeb od firmy, která má více smluv a zákaznických vztahů.

Aktualizácie Microsoft Power Platform | Microsoft Ignite 2021

Aktualizácie Microsoft Power Platform | Microsoft Ignite 2021

Pozrite si kľúčové aktualizácie pre Power Apps a Power Automate a ich výhody a dôsledky pre platformu Microsoft Power Platform.

Bežné funkcie SQL: Prehľad

Bežné funkcie SQL: Prehľad

Objavte niektoré bežné funkcie SQL, ktoré môžeme použiť, ako napríklad reťazec, dátum a niektoré pokročilé funkcie na spracovanie alebo manipuláciu s údajmi.

Vytvoření šablony LuckyTemplates: Průvodce a tipy

Vytvoření šablony LuckyTemplates: Průvodce a tipy

V tomto tutoriálu se naučíte, jak vytvořit dokonalou šablonu LuckyTemplates, která je nakonfigurována podle vašich potřeb a preferencí.

Parametry pole a malé násobky v LuckyTemplates

Parametry pole a malé násobky v LuckyTemplates

V tomto blogu si ukážeme, jak vrstvit parametry pole s malými násobky, abychom vytvořili neuvěřitelně užitečné přehledy a vizuály.

LuckyTemplates Rank a vlastní seskupení

LuckyTemplates Rank a vlastní seskupení

V tomto blogu se dozvíte, jak používat funkce hodnocení LuckyTemplates a vlastní seskupování k segmentaci ukázkových dat a jejich seřazení podle kritérií.