Funcții de interogare personalizate LuckyTemplates

Pentru tutorialul de astăzi, vom construi o funcție de interogare personalizată LuckyTemplates care se va ocupa de un format comun de date stivuite greu de gestionat. Această tehnică este ușor de reutilizat pe mai multe rapoarte și mai multe tabele. Puteți viziona videoclipul complet al acestui tutorial în partea de jos a acestui blog.

Aceasta este o continuare a tutorialului pe care l-am făcut recent, în care ne-am ocupat de un format comun de date stivuite greu de gestionat și am folosit Modulo, Pivot și unele funcții de curățare cu Power Query pentru a transforma acele date într-un format organizat și funcțional.

Funcții de interogare personalizate LuckyTemplates

Este foarte probabil că va trebui să repetați acest proces. Dacă acest tip de format a rezultat dintr-o copiere și inserare, probabil că se va întâmpla din nou. Deci, în acest caz, probabil că veți dori să construiți o funcție personalizată care va fi reutilizabilă pe mai multe rapoarte și mai multe tabele, indiferent de cum sunt denumite și ce altceva se află în acele tabele.

Cuprins

Cum să creați și să depanați funcții de interogare personalizate LuckyTemplates

Să trecem la Power Query în acest sens. Dacă mergem la tabelul nostru de date, în Editorul avansat, avem codul M pentru modul în care am ajuns să trecem de la datele acelei stive la formatul dorit.

Funcții de interogare personalizate LuckyTemplates

Dacă vrem să reutilizam acest lucru, facem doar clic dreapta pe Date și spunem, Creare funcție .

Funcții de interogare personalizate LuckyTemplates

Spune că nu va face referire la niciun parametru, dar este în regulă să creați o funcție fără parametri. Vom răspunde, da, pentru că vom adăuga parametrii pe măsură ce mergem în Editorul avansat. Vom numi această funcție, Unstack – 3 Elements , doar pentru că avem cele trei rânduri în format brut. Dacă am avea un format cu două rânduri, probabil că am construi unul separat care să fie de două sau patru elemente.

Funcții de interogare personalizate LuckyTemplates

Așa că acum, avem acest Invoke, nu avem parametri și să mergem la Editorul Avansat și să începem să lucrăm la acesta.

Funcții de interogare personalizate LuckyTemplates

În primul rând, nu avem nevoie de această Sursă. Vom folosi parametrii funcției pentru a ne defini sursa.

Funcții de interogare personalizate LuckyTemplates

Vrem să definim parametrul care va veni. Facem asta cu o paranteză deschisă și apoi un nume de parametru. Să numim asta, Stivă , care va fi acea coloană de date care este datele stivei neformatate care au venit din lipirea adreselor de e-mail.

Vrem ca aceasta să apară ca o listă și vrem ca aceasta să rezulte într-un tabel, deoarece pe măsură ce îl dezactivăm de la acea singură coloană la mai multe coloane, se trece de la o listă la un tabel. Și acum, trebuie să convertim acea listă primită într-un tabel, astfel încât să putem adăuga indexul nostru, să inițiem modul de dezactivare și să facem toate lucrurile pe care trebuie să le facem pentru a-l reformata.

Funcții de interogare personalizate LuckyTemplates

Îl vom numi ConvertStack și va folosi o funcție numită Table.FromList . La fel ca multe dintre funcțiile M, face exact ceea ce spune. Este nevoie doar de o listă. În acest caz, lista va fi lista noastră Stack. Și apoi, trebuie să înlocuim sursa aici cu ConvertStack-ul nostru. Arata destul de bine! Nu avem erori de sintaxă, așa că să apăsăm Terminat.

Acum ne oferă ceea ce ne-am dorit, adică abilitatea de a alege o coloană.

Funcții de interogare personalizate LuckyTemplates

Apoi, vom alege TestData, care sunt datele greșite formatate. Vom alege coloana Valoare, apoi facem clic pe OK. După aceea, facem clic pe Invoke.

Funcții de interogare personalizate LuckyTemplates

Cu toate acestea, primim această eroare. Este foarte greu de identificat care este această eroare. Una dintre problemele cu funcțiile personalizate este că nu depășesc Pașii aplicați, ci doar un pas pentru întreaga funcție personalizată. Dar există o modalitate de ocolire a asta în depanarea pe care ți-o voi arăta. Vă va fi mult mai ușor să vă dați seama ce se întâmplă aici.

Funcții de interogare personalizate LuckyTemplates

În loc să rulăm acest lucru pentru moment ca o funcție, o vom rula ca o interogare. Vom iniția manual acel apel Stack. Trebuie să definim ce este Stack pentru că nu îl desenăm prin interacțiunea de a-l alege în Invoke. Deci, avem Stack egal cu TestData și coloana Value din TestData.

Funcții de interogare personalizate LuckyTemplates

Ceea ce face este că îl descompune acum în Pașii aplicați. Acest lucru ne va ajuta să înțelegem de ce nu funcționează. Observați un lucru interesant când tragem Stack. Inițial, acesta trage TestData[Value], dar când îl convertim într-un tabel, în loc de Value este antetul coloanei, antetul coloanei este acum Coloana1.

Funcții de interogare personalizate LuckyTemplates

Amintiți-vă mesajul de eroare, a fost că nu a putut găsi coloana Valoare. Motivul pentru care nu a putut găsi coloana Value este că, funcția Table.FromList o redenumește în Column1.

Dacă coborâm în pașii aplicați, puteți vedea că este în pasul Added Custom unde primim eroarea. Aici nu a fost găsită valoarea înregistrării.

Funcții de interogare personalizate LuckyTemplates

Și așa, dacă mergem la Editorul avansat, găsim acel câmp Personalizat și putem vedea că este în Text.Remove unde scoatem acele caractere nedorite de care nu aveam nevoie, dar se referă în continuare la câmpul Valoare. Vom schimba asta în Coloana 1. De asemenea, în câmpul Coloane eliminate, se referă la Valoare, așa că îl vom schimba și în Coloana1.

Funcții de interogare personalizate LuckyTemplates

Și când ajungem la sfârșitul Pașilor Aplicați, produce rezultatul final perfect.

Funcții de interogare personalizate LuckyTemplates

Acum că știm că funcționează corect, mai avem doar un lucru de făcut. Rețineți că, pentru a o depana, am transformat funcția personalizată într-o interogare. Și așa, acum trebuie să luăm acea interogare și să o transformăm înapoi într-o funcție.

Funcții de interogare personalizate LuckyTemplates


Crearea unei funcții de curățare a textului personalizat în
codul M Power Query în coloanele personalizate Power Query | Interogarea funcției LuckyTemplates
și operatori în Editorul de interogări

Concluzie

În acest tutorial, am construit această funcție personalizată, am depanat-o, am testat-o ​​și funcționează excelent. Și așa că acum, oricând avem o stivă de trei elemente, putem doar să selectăm acel tabel, să alegem acea coloană din tabel și să rulăm acea funcție personalizată. Apoi, aplicați Modulo, unpivot-ul și curățați.

Acest lucru ar trebui să vă ofere câteva instrumente frumoase în ceea ce privește crearea de funcții personalizate. De asemenea, amintiți-vă acel truc despre depanare, transformându-l înapoi într-o interogare dintr-o funcție și apoi comutându-l înapoi după depanare. Este un instrument cu adevărat valoros care face mult mai ușoară depanarea funcțiilor personalizate.

Toate cele bune!

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