Power Query M: Model alternativ 0-1 în tabelul de date

Acest tutorial se concentrează pe utilizarea funcției Power Query M number.mod pentru a crea un model alternativ 0-1 în tabelul Date. Soluția pe care ți-o voi arăta a venit de la unul dintre utilizatorii de putere ai comunității noastre, Rajesh, de la LuckyTemplates. Puteți urmări videoclipul complet al acestui tutorial în partea de jos a acestui blog.

Scopul este de a genera o secvență de patru zerouri alternate cu patru uni, apoi repetă-o pe tot parcursul zilei.

Power Query M: Model alternativ 0-1 în tabelul de date

Rajesh a fost perfect cu analiza și defalcarea problemei folosind funcția Power Query M pentru a o rezolva. Acestea fiind spuse, să trecem la Power Query.

Cuprins

Funcția Power Query M Number.Mod

Power Query M, în special funcția number.mod va fi nucleul soluției noastre. Ce face?

Puteți verifica documentația internă a oricărei funcții M introducând numele acesteia fără paranteze, așa cum se arată aici în bara de formule. Această funcție returnează restul unei diviziuni întregi. Este nevoie de până la trei parametri, primii doi, un număr și divizorul, care este tot un număr.

Power Query M: Model alternativ 0-1 în tabelul de date

Acum să începem. Voi selecta exemplul meu de interogare care conține un interval de date pe care l-am pregătit.

Power Query M: Model alternativ 0-1 în tabelul de date

În multe cazuri, number.mod este folosit în combinație cu o coloană index care este apoi folosită ca prim parametru. Dar nu am de gând să fac asta pentru că dacă te gândești la asta, valoarea datei este un număr întreg. Deci, crearea unui index care împărtășește aceeași granularitate ca și coloana Date, în care fiecare rând are o valoare unică este ceva ce putem evita.

Tot ceea ce trebuie să facem pentru a imita un index este să scădem prima dată din tabelul nostru Date din fiecare dată din coloana Date. Pentru a face acest lucru, putem stoca valoarea datei de începere într-o variabilă, astfel încât să o putem folosi din nou și din nou. Consider că Editorul avansat este cel mai bun loc pentru a face acest lucru.

Așa că voi deschide fereastra Editor avansat și voi crea o nouă variabilă. Să-i spunem StartDate . Mi-am codificat prima întâlnire aici, așa că o voi copia și lipi. Nu uitați virgula de la sfârșit și acum putem înlocui acea primă întâlnire cu variabila Data de început.

Power Query M: Model alternativ 0-1 în tabelul de date

După cum puteți vedea, nimic nu s-a schimbat.

Power Query M: Model alternativ 0-1 în tabelul de date

Crearea unei coloane personalizate pentru modelul Power Query M

Prin intermediul acestui mini tabel, vom adăuga o coloană personalizată.

Power Query M: Model alternativ 0-1 în tabelul de date

Să numim această coloană, Pattern , și să introducem funcția Power Query M, number.mod . Veți vedea cei doi parametri aici, un număr ca număr anulabil și un divizor ca număr nullabil. Deci, necesită două valori de tip număr ca parametri.

Power Query M: Model alternativ 0-1 în tabelul de date

Acum nu avem numere, nu? Avem date și nu există conversie automată de tip în ele. Deci, trebuie să obținem numărul din valoarea noastră de dată. Deci introducem aici, number.from apoi coloana noastră Date și apoi scădem variabila StartDate .

Power Query M: Model alternativ 0-1 în tabelul de date

Acum, să presupunem că prima dată din tabelul nostru Date returnează una, apoi StartDate va returna și una. Și astfel, unu minus unu este egal cu zero. Vreau ca numerotarea indexului nostru să înceapă cu unul în loc de zero. Așa că va trebui să adăugăm unul înapoi plus unul. Acum, unu minus unu este egal cu zero plus unu returnează unul pentru prima înregistrare.

Power Query M: Model alternativ 0-1 în tabelul de date

Pentru a doua înregistrare, obținem o valoare de două (2) pentru data din coloana Date, minus unu (1) din valoarea noastră StartDate care este egală cu unu, plus cea pe care o adăugăm înapoi returnează un doi și așa mai departe . Modelul nostru de repetare s-a bazat pe o serie de patru valori alternative. Deci, ca divizor, voi trece valoarea patru (4).

Power Query M: Model alternativ 0-1 în tabelul de date

Să vedem ce face asta. În rândul patru, obținem zero, precum și în rândul opt. Deci, fiecare a patra apariție returnează o valoare zero pentru acea înregistrare.

Power Query M: Model alternativ 0-1 în tabelul de date

Crearea unui construct IF-THEN-ELSE

Să revenim la caseta de dialog cu clienții și să extindem logica pe care am scris-o până acum. Cu excepția divizorului, trebuie să repetăm ​​aceeași logică pentru a putea identifica o a opta apariție.

Cu toate acestea, pe al optulea rând, vrem o valoare diferită. Deci, pentru a face o distincție între a patra și a opta apariție, putem folosi un construct IF-THEN-ELSE. În acest fel, putem returna o valoare pentru primul test logic care returnează un adevărat.

Deci , dacă , și voi lipi înapoi codul nostru aici (cu excepția divizorului), schimbați acel divizor într-un opt, astfel încât un al optulea rând va returna zero. Deci, dacă este egal cu zero, înseamnă că nu vei ajunge la adevărat sau fals. Atunci vrem unul (1). Altfel , dacă logica noastră de aici identifică un al patrulea rând egal cu zero, atunci vrem zero (0). Altfel, nu vrem să primim o valoare înapoi. Deci, să adăugăm un null .

Power Query M: Model alternativ 0-1 în tabelul de date

Acum, să ne verificăm din nou logica. Deci, la fiecare a patra apariție, obținem acel zero. Și apoi, pe a opta, primim unul. În continuare, obținem zero și unu și așa mai departe.

Deci asta arată bine. Tot ce trebuie să facem acum este să umplem aceste valori.

Power Query M: Model alternativ 0-1 în tabelul de date

Deci, în interiorul barei de formule, vom adăuga un Table.FillUp la început, apoi câteva paranteze de deschidere. La sfârșitul codului nostru, adăugăm un număr de tip - trebuie să adăugăm și o coloană ca listă. Deci, trecem prin virgulă , apoi folosim parantezele pentru inițializatorul listei și trecem ca valoare text în numele coloanei noastre, Pattern . Nu uitați parantezele de închidere și apăsați OK.

Power Query M: Model alternativ 0-1 în tabelul de date


Ghid pentru începători pentru codul M în
funcția M LuckyTemplates pentru tabelul de date – Cum să adăugați un parametru în editorul de interogări
Sortarea coloanelor din tabelul de date în LuckyTemplates

Concluzie

Acesta este un scenariu foarte unic și, sincer, nu mă pot gândi la o aplicație pentru acest tipar specific, dar sper că puteți vedea potențialul de a crea secvențe folosind funcția Power Query M, number.mod.

Pentru mai multe detalii, urmăriți videoclipul complet de mai jos pentru acest tutorial.

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