Dynamicky odklopte více sloupců v LuckyTemplates

V tomto tutoriálu se vrátíme k tématu, které jsem probral dříve, o tom, jak zrušit pivotování více sloupců v Power Query pomocí List.Zip. Ptal se člen LuckyTemplates najak udělat tuto metodu dynamickou. Celé video tohoto tutoriálu si můžete prohlédnout ve spodní části tohoto blogu.

Označil jsem to jako pokročilé, protože budeme psát řadu M funkcí a některé z nich pro vás mohou být dokonce nové.

Po tom, co bylo řečeno, přejděme k Power Query.

Obsah

Data V Tabulkovém Formátu

Jak můžete vidět, tato data již byla převedena do vhodného formátu tabletu vhodného pro analýzu. Tento proces, i když je velmi důležitý, zde nebudeme popisovat, ale stručně si projdeme každý krok.

Dynamicky odklopte více sloupců v LuckyTemplates

Ve zdrojovém kroku vidíme neustálé opakování hodnotových párů, což jsou hodiny a kontakty pro každý z výše uvedených atributů.

Dynamicky odklopte více sloupců v LuckyTemplates

V části Aplikované kroky můžete vidět zbytek kroků. Odstranili jsme některé horní řádky, odstranili prázdné sloupce, vyčistili naše textové hodnoty a vyplnili je. Poté jsme transponovali naše data, odstranili prázdný záznam, sloučili sloupce jedna a dva, znovu vyčistili naše textové hodnoty a transponovali naše data zpět.

Vytvořili jsme vlastní krok, který prozkoumáme podrobněji později, extrahovali jsme hodnoty z našeho seznamu a nakonec jsme změnili typ.

Dynamicky odklopte více sloupců v LuckyTemplates

Podívejme se na celý kód. To, co nás zde zajímá, je funkce List.Zip . Krátká rekapitulace, vezme jeden seznam jako a a pak vrátí seznam. V důsledku toho vidíme, že tento jediný seznam v tomto případě obsahuje tři samostatné seznamy.

Pokud prozkoumáme první seznam, obsahuje pevně zakódované názvy atributů, pouze textové hodnoty, které byly zapsány. Druhý seznam obsahuje pevně zakódované odkazy na sloupce pro hodnoty hodin. Konečný seznam obsahuje pevně zakódované odkazy na sloupce pro kontaktní hodnoty.

List.Zip poté vezme prvek z každého z těchto tří seznamů a zkombinuje je na základě jejich pozice v novém seznamu. Například každý první prvek z těchto seznamů se sloučí do nového seznamu. Totéž se stane pro všechny hodnoty uvedené na druhém místě v tomto seznamu a tak dále.

Pevně ​​zakódované hodnoty mohou být znepokojivé, pokud je nepravděpodobné, že se atributy v průběhu času změní. Pokud tedy příště nebudou přítomny všechny položky nebo existují nové položky, můžete se dostat do problémů.

Změna kódu pro dynamické uvolnění více sloupců

Jak tedy uděláme tuto dynamiku?

První věc, kterou udělám, je projít kód, abych zjistil, zda existuje místo, kde můžeme tyto hodnoty atributů vyzvednout, aniž bychom k tomu museli navrhnout samostatný krok. Takže se v kódu vrátíme zpět a tento krok RemoveNull je perfektní.

Dynamicky odklopte více sloupců v LuckyTemplates

Můžete vidět, že zde jsou uvedeny všechny hodnoty atributů ve sloupci jedna. K jejich extrakci můžeme použít uživatelské rozhraní.

Dynamicky odklopte více sloupců v LuckyTemplates

Klikněte tedy pravým tlačítkem na záhlaví a dole vyberte Přidat jako nový dotaz .

Dynamicky odklopte více sloupců v LuckyTemplates

Dostáváme tento seznam a to je dobrá zpráva, protože chceme nahradit pevně zakódovaný seznam, který jsme viděli dříve, dynamickým. Vše, co musíme udělat, je udělat pořádek v hodnotách.

Dynamicky odklopte více sloupců v LuckyTemplates

Začněme odstraněním těchto nul. Do řádku vzorců tedy přidáme List.RemoveNulls . Jak nyní vidíte, všechny položky se opakují, a to kvůli párům hodnot. Je uveden jednou pro hodiny.

Dynamicky odklopte více sloupců v LuckyTemplates

A pak znovu, pro kontakty, abychom odstranili tyto duplikáty, můžeme přidat List.Distinct . Nyní jsme vytvořili tuto logiku a vše, co musíme udělat, je zkopírovat a vložit zpět do našeho vzorového dotazu.

Dynamicky odklopte více sloupců v LuckyTemplates

Ve vzorovém dotazu otevřete Rozšířený editor a vytvořte nový název proměnné. Říkejme tomu AttributeList . Poté vložíme kód a dáme čárku.

Dynamicky odklopte více sloupců v LuckyTemplates

Nyní se vraťme k vlastnímu kroku. V List.Zip můžeme tento první seznam nahradit názvem naší proměnné (AttributeList).

Dynamicky odklopte více sloupců v LuckyTemplates

Nyní se blíže podíváme na druhý seznam. Víme, že odkazuje na názvy sloupců a každý z těchto názvů sloupců začíná stejným atributem, který již v tomto seznamu máme, za ním následuje mezera a text „hodiny“.

Stačí ke každé položce přidat příponu. Vraťme se tedy o krok zpět a přidejte vlastní sloupec, abychom vytvořili určitou logiku.

Dynamicky uvolnit více sloupců: Přidání vlastní logiky sloupců

Je to jen dočasný sloupec, takže mu nemusíme dávat správný název. Jakmile budeme hotovi, odstraníme to.

Dynamicky odklopte více sloupců v LuckyTemplates

Pro změnu hodnot v seznamu můžeme použít funkci List.Transform . Potřebujeme transformovat hodnoty v našem seznamu atributů , takže to vložím.

Zde v záhlaví vidíme, že textové hodnoty začínají velkým písmenem a zbytek jsou malá písmena. Náš atribut obsahuje pouze slovo s velkým písmenem, takže musíme transformovat i tuto textovou hodnotu. A můžeme použít podtržítko pro přístup ke každé položce seznamu a přidáme tuto příponu.

Tím získáme v našem sloupci hodnotu seznamu. Nezáleží na tom, který z nich vyberete, ale stačí kliknout na stranu do bílého místa v kterémkoli z nich zde.

Dynamicky odklopte více sloupců v LuckyTemplates

Pod stránkou vidíme náhled tohoto seznamu, který jsme vytvořili. Takže vidíte, že tato záhlaví sloupců jsou nyní správně vložena tak, aby odpovídala záhlavím sloupců, která zde vidíme u tohoto seznamu.

Nyní máme prostředky k identifikaci polí z našeho záznamu, ke kterým chceme mít přístup. Otevřeme tedy znovu dialogové okno našeho vlastního sloupce a přidáme Record.SelectFields . Chce to záznam jako záznam, takže toto podtržítko můžeme použít k přístupu k aktuálnímu záznamu, na kterém jsme. A pak jsme mu dali seznam se všemi těmito názvy polí, takže přidejte uzavírací závorku a stiskněte OK .

Dynamicky odklopte více sloupců v LuckyTemplates

Takže už nemáme seznam, ale nyní dostáváme záznam. Pojďme znovu kliknout na stranu do bílého prostoru a zobrazit obsah tohoto záznamu. Zde vidíme, že uvádí názvy polí záznamu a hodnoty polí záznamu.

Dynamicky odklopte více sloupců v LuckyTemplates

Nás ale zajímají pouze hodnoty pole záznamu, takže je musíme extrahovat. Vraťme se zpět do dialogového okna vlastního sloupce a přidejte Record.FieldsValues ​​.

Dynamicky odklopte více sloupců v LuckyTemplates

Nyní dostáváme znovu seznam a již ne záznam. Znovu klikneme na stranu do bílého prostoru a vidíte, že nyní máme seznam pouze s těmito hodnotami. Tak to vypadá dobře.

Dynamicky odklopte více sloupců v LuckyTemplates

Zkopírujeme úplnou logiku, kterou jsme vytvořili, kromě poslední závorky. A nyní můžeme odstranit náš dočasný sloupec, protože jej již nepotřebujeme.

Dynamicky odklopte více sloupců v LuckyTemplates

Na našem řádku vzorců vybereme náš druhý seznam a nahradíme jej naší logikou.

Dynamicky odklopte více sloupců v LuckyTemplates

Abychom vytvořili seznam s hodnotami polí záznamu pro kontakty, musíme změnit pouze příponu. Můžeme tedy vybrat i ten poslední seznam a vložit do něj naši logiku.

Dynamicky odklopte více sloupců v LuckyTemplates

Pak to místo hodin změňme na kontakty .

Dynamicky odklopte více sloupců v LuckyTemplates

Bez chyb a vypadá to dobře. Toto je nyní dynamické řešení pro odklopení více sloupců.

Dynamicky odklopte více sloupců v LuckyTemplates




Závěr

Takto můžete dynamicky uvolnit několik sloupcůpomocí List.Zip.

Pokud přijde nový atribut, bude automaticky převzat seznamem atributů. A když položka již neexistuje, nebude na tomto seznamu přítomna.

Doufám, že se vám to líbilo. Podívejte se na celé video níže, kde najdete další podrobnosti o tomto tutoriálu, a podívejte se na odkazy níže, kde najdete další obsah týkající se unpivot více sloupců v LuckyTemplates.

Vše nejlepší

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