Anulați pivotarea mai multor coloane în mod dinamic în LuckyTemplates

În acest tutorial, vom revizui un subiect pe care l-am abordat mai devreme despre cum să dezactivați mai multe coloane în Power Query folosind List.Zip. Un membru LuckyTemplates a întrebat pe cum să faceți această metodă dinamică. Puteți urmări videoclipul complet al acestui tutorial în partea de jos a acestui blog.

Am etichetat acest lucru ca avansat, deoarece vom scrie o serie de funcții M și unele dintre acestea ar putea fi chiar noi pentru tine.

Acestea fiind spuse, să trecem la Power Query.

Cuprins

Date în format tabelar

După cum puteți vedea, aceste date au fost deja transformate într-un format de tabletă adecvat, potrivit pentru analiză. Acest proces, deși foarte important, nu va fi acoperit aici, dar vom trece pe scurt peste fiecare pas.

Anulați pivotarea mai multor coloane în mod dinamic în LuckyTemplates

În pasul sursă, vedem o repetare constantă a perechilor de valori, care sunt orele și contactele pentru fiecare dintre atributele enumerate mai sus.

Anulați pivotarea mai multor coloane în mod dinamic în LuckyTemplates

În Pașii aplicați , puteți vedea restul pașilor. Am eliminat câteva rânduri de sus, am eliminat coloanele goale, ne-am curățat valorile textului și le-am completat. Apoi, ne-am transpus datele, am eliminat înregistrarea goală, am îmbinat coloanele unu și două, ne-am curățat din nou valorile textului și ne-am transpus datele înapoi.

Am creat un pas personalizat, pe care îl vom examina mai în detaliu mai târziu, am extras valori din lista noastră și apoi am schimbat tipul.

Anulați pivotarea mai multor coloane în mod dinamic în LuckyTemplates

Să ne uităm la întregul cod. Lucrul care ne interesează aici este funcția List.Zip . Scurtă recapitulare, este nevoie de o singură listă ca parametru și apoi returnează o listă. Ca rezultat, vedem că această listă unică în acest caz conține trei liste separate.

Dacă examinăm prima listă, aceasta conține nume de atribute codificate, doar valori de text care au fost introduse. A doua listă conține referințe de coloană codificate pentru valorile oră. Lista finală conține referințe de coloane codificate hard pentru valorile de contact.

List.Zip preia apoi un element din fiecare dintre aceste trei liste și le combină în funcție de poziția lor într-o nouă listă. De exemplu, fiecare prim element din acele liste este combinat într-o listă nouă. Același lucru se întâmplă pentru toate valorile enumerate pe locul al doilea în acea listă și așa mai departe.

Valorile hard-coded pot fi îngrijorate dacă este puțin probabil ca atributele să se schimbe în timp. Deci, dacă data viitoare, nu toate articolele sunt prezente sau există elemente noi, puteți avea probleme.

Modificarea codului pentru a debloca mai multe coloane în mod dinamic

Deci, cum facem această dinamică?

Primul lucru pe care îl fac este să parcurg codul pentru a vedea dacă există un loc în care să putem prelua acele valori de atribut fără a fi nevoie să proiectăm un pas separat pentru a realiza asta. Deci, vom face un pas înapoi prin cod și acest pas RemoveNull este perfect.

Anulați pivotarea mai multor coloane în mod dinamic în LuckyTemplates

Puteți vedea că listează toate valorile atributelor aici în coloana unu. Putem folosi interfața cu utilizatorul pentru a le extrage.

Anulați pivotarea mai multor coloane în mod dinamic în LuckyTemplates

Așadar, faceți clic dreapta pe acel antet și, mai jos, selectați Adăugați ca interogare nouă .

Anulați pivotarea mai multor coloane în mod dinamic în LuckyTemplates

Primim această listă și aceasta este o veste bună pentru că vrem să înlocuim acea listă codificată pe care am văzut-o mai devreme cu cea dinamică. Tot ce trebuie să facem este să curățăm valorile.

Anulați pivotarea mai multor coloane în mod dinamic în LuckyTemplates

Să începem prin a elimina aceste valori nule. Deci, în bara de formule, vom adăuga un List.RemoveNulls . După cum puteți vedea acum, toate elementele sunt repetate și asta din cauza perechilor de valori. Este listat o dată pentru ore.

Anulați pivotarea mai multor coloane în mod dinamic în LuckyTemplates

Și apoi din nou, pentru contacte, pentru a elimina acele duplicate, putem adăuga un List.Distinct . Acum am creat această logică și tot ce trebuie să facem este să o copiem și să o lipim înapoi în interogarea noastră exemplu.

Anulați pivotarea mai multor coloane în mod dinamic în LuckyTemplates

În interogarea Eșantion , deschideți Editorul avansat și creați un nou nume de variabilă. Să-i spunem, AttributeList . Apoi lipim codul și punem o virgulă.

Anulați pivotarea mai multor coloane în mod dinamic în LuckyTemplates

Acum să ne întoarcem la pasul Personalizat. În List.Zip, putem înlocui prima listă cu numele variabilei noastre (AttributeList).

Anulați pivotarea mai multor coloane în mod dinamic în LuckyTemplates

Acum să aruncăm o privire mai atentă la a doua listă. Știm că face referire la nume de coloane și fiecare dintre aceste nume de coloane începe cu același atribut pe care îl avem deja în acea listă, urmat de un spațiu și un text „ore”.

Trebuie doar să adăugăm un sufix la fiecare articol. Deci, să ne întoarcem cu un pas și să adăugăm o coloană personalizată pentru a crea o logică.

Unpivot mai multe coloane în mod dinamic: Adăugarea logică personalizată de coloane

Este doar o coloană temporară, așa că nu trebuie să-i dăm un nume propriu. Îl vom elimina după ce terminăm.

Anulați pivotarea mai multor coloane în mod dinamic în LuckyTemplates

Pentru a modifica valorile dintr-o listă, putem folosi funcția List.Transform . Trebuie să transformăm valorile din AttributeList , așa că o voi lipi.

Aici, în anteturi, vedem că valorile textului încep cu o literă majusculă, iar restul sunt litere mici. Atributul nostru conține doar un cuvânt cu majuscule, așa că trebuie să transformăm și acea valoare a textului. Și putem folosi caracterul de subliniere pentru a accesa fiecare articol din listă și vom adăuga acel sufix.

Cu aceasta, obținem o valoare de listă în coloana noastră. Nu contează pe care îl selectați, dar faceți clic pe lateral în spațiul alb din oricare dintre ele de aici.

Anulați pivotarea mai multor coloane în mod dinamic în LuckyTemplates

Sub pagină, vedem o previzualizare a listei pe care am creat-o. Deci vedeți că acele antete de coloană sunt acum majuscule corect, astfel încât să se potrivească cu anteturile de coloană pe care le vedem aici cu această listă.

Acum avem mijloacele de a identifica câmpurile din înregistrarea noastră pe care dorim să le accesăm. Deci, să deschidem din nou caseta de dialog pentru coloana personalizată și să adăugăm Record.SelectFields . Vrea o înregistrare ca înregistrare, așa că putem folosi acel caracter de subliniere pentru a accesa înregistrarea curentă pe care ne aflăm. Și apoi i-am dat o listă cu toate acele nume de câmpuri, așa că adăugați o paranteză de închidere și apăsați OK .

Anulați pivotarea mai multor coloane în mod dinamic în LuckyTemplates

Deci nu mai avem o listă, dar acum obținem un record. Să facem clic din nou în lateral în spațiul alb pentru a vedea conținutul acelei înregistrări. Aici vedem că listează numele câmpurilor de înregistrare și valorile câmpului de înregistrare.

Anulați pivotarea mai multor coloane în mod dinamic în LuckyTemplates

Dar ne interesează doar valorile câmpului de înregistrare, așa că trebuie să extragem asta. Să ne întoarcem la caseta de dialog cu coloana personalizată și să adăugăm Record.FieldsValues ​​.

Anulați pivotarea mai multor coloane în mod dinamic în LuckyTemplates

Acum primim din nou o listă și nu mai avem o înregistrare. Facem din nou clic în lateral în spațiul alb și vedeți că acum avem o listă cu doar acele valori. Deci arată bine.

Anulați pivotarea mai multor coloane în mod dinamic în LuckyTemplates

Să copiem întreaga logică pe care am creat-o, cu excepția ultimelor paranteze de închidere. Și acum putem elimina coloana noastră temporară pentru că nu mai avem nevoie de ea.

Anulați pivotarea mai multor coloane în mod dinamic în LuckyTemplates

Pe bara de formule, selectăm a doua noastră listă și o înlocuim cu logica noastră.

Anulați pivotarea mai multor coloane în mod dinamic în LuckyTemplates

Pentru a crea o listă cu valorile câmpurilor de înregistrare pentru contacte, tot ce trebuie să schimbăm este sufixul. Deci putem selecta și ultima listă și lipim în logica noastră.

Anulați pivotarea mai multor coloane în mod dinamic în LuckyTemplates

Apoi, în loc de ore , să schimbăm acest lucru în contacte .

Anulați pivotarea mai multor coloane în mod dinamic în LuckyTemplates

Fără erori și arată bine. Aceasta este acum o soluție dinamică pentru a debloca mai multe coloane.

Anulați pivotarea mai multor coloane în mod dinamic în LuckyTemplates


LuckyTemplates Unpivot Columns – Tutorial Power Query
Cum să dezactivați coloanele în LuckyTemplates
Unpivot și Pivot Basics în LuckyTemplates – Query Editor Review

Concluzie

Așa dezactivați mai multe coloane în mod dinamic în folosind List.Zip.

Dacă apare un nou atribut, acesta va fi preluat automat de AttributeList. Și când un articol nu mai există, nu va fi prezent pe lista respectivă.

Sper că ți-a plăcut asta. Urmăriți videoclipul complet de mai jos pentru mai multe detalii despre acest tutorial și consultați linkurile de mai jos pentru mai mult conținut despre dezactivarea mai multor coloane în LuckyTemplates.

Toate cele bune

Melissa

Leave a Comment

Ce este Sinele în Python: Exemple din lumea reală

Ce este Sinele în Python: Exemple din lumea reală

Ce este Sinele în Python: Exemple din lumea reală

Cum să salvați și să încărcați un fișier RDS în R

Cum să salvați și să încărcați un fișier RDS în R

Veți învăța cum să salvați și să încărcați obiecte dintr-un fișier .rds în R. Acest blog va trata, de asemenea, cum să importați obiecte din R în LuckyTemplates.

Primele N zile lucrătoare revizuite – O soluție de limbaj de codare DAX

Primele N zile lucrătoare revizuite – O soluție de limbaj de codare DAX

În acest tutorial despre limbajul de codare DAX, aflați cum să utilizați funcția GENERATE și cum să schimbați în mod dinamic titlul unei măsuri.

Prezentați perspective utilizând tehnica vizuală dinamică cu mai multe fire în LuckyTemplates

Prezentați perspective utilizând tehnica vizuală dinamică cu mai multe fire în LuckyTemplates

Acest tutorial va acoperi cum să utilizați tehnica Multi Threaded Dynamic Visuals pentru a crea informații din vizualizările dinamice de date din rapoartele dvs.

Introducere la filtrarea contextului în LuckyTemplates

Introducere la filtrarea contextului în LuckyTemplates

În acest articol, voi trece prin contextul filtrului. Contextul de filtrare este unul dintre subiectele majore despre care orice utilizator LuckyTemplates ar trebui să învețe inițial.

Cele mai bune sfaturi pentru utilizarea aplicațiilor din serviciul online LuckyTemplates

Cele mai bune sfaturi pentru utilizarea aplicațiilor din serviciul online LuckyTemplates

Vreau să arăt cum serviciul online LuckyTemplates Apps poate ajuta la gestionarea diferitelor rapoarte și informații generate din diverse surse.

Analizați modificările marjei de profit ore suplimentare – Analytics cu LuckyTemplates și DAX

Analizați modificările marjei de profit ore suplimentare – Analytics cu LuckyTemplates și DAX

Aflați cum să vă calculați modificările marjei de profit folosind tehnici precum măsurarea ramificării și combinarea formulelor DAX în LuckyTemplates.

Idei de materializare pentru cache-urile de date în DAX Studio

Idei de materializare pentru cache-urile de date în DAX Studio

Acest tutorial va discuta despre ideile de materializare a cache-urilor de date și despre modul în care acestea afectează performanța DAX-ului în furnizarea de rezultate.

Raportare de afaceri folosind LuckyTemplates

Raportare de afaceri folosind LuckyTemplates

Dacă încă utilizați Excel până acum, atunci acesta este cel mai bun moment pentru a începe să utilizați LuckyTemplates pentru nevoile dvs. de raportare a afacerii.

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți