Ce este Sinele în Python: Exemple din lumea reală
Ce este Sinele în Python: Exemple din lumea reală
Vă voi arăta cum să transformați un cod M pentru un tabel de date într-o interogare de tabel. Puteți urmări videoclipul complet al acestui tutorial în partea de jos a acestui blog.
Aș considera nivelul de dificultate pentru acest tutorial ca fiind intermediar, deoarece dacă aveți experiență cu codurile M, v-ar fi ușor să urmați. Dacă nu aveți nicio experiență similară, vă sugerez să căutați mai întâi codurile M pentru a vă facilita înțelegerea conceptelor prezentate aici.
Cuprins
Interogare de funcție invocată și interogare de tabel de date
Aceasta este interogarea tabelului de date și interogarea funcției invocate.
Dacă vă uitați la panoul Pași aplicați din dreapta, există doar un pas. Afișează sursa pentru acea interogare.
Deci, dacă doriți să dezvoltați codul M pentru acest tabel de date, va trebui să comutați între funcție și interogarea tabelului pentru a vedea orice modificări pe care le aplicați.
Aceasta înseamnă că este mai complicat să tratați erorile cauzate de oricare dintre modificările dvs. Va duce la o eroare în interogarea tabelului în sine, apoi va trebui să căutați prin linii de cod pentru a remedia eroarea.
Pagina următoare arată interogarea dată care returnează un tabel în loc de o funcție.
Privind la pașii aplicați din dreapta, veți vedea că există mai mulți pași enumerați de data aceasta.
Aceasta înseamnă că, pe măsură ce dezvoltați codul M pentru tabelul de date, veți vedea imediat rezultatele modificărilor dvs. în această interogare de tabel.
Mai important, de fiecare dată când modificarea dvs. duce la o eroare, puteți identifica cu ușurință pasul care a cauzat eroarea. Acest lucru facilitează rezolvarea problemei.
Aplicarea Codului M
Codul M din tabelul de date poate fi găsit în Forumul LuckyTemplates. Se află sub subiectul Tabelul de date extins Power Query M Funcție din cadrul M Code Showcase.
Codul M este până sus. Voi evidenția întregul cod și îl voi copia.
Apoi, voi crea o nouă interogare goală.
Voi deschide Editorul meu avansat și voi lipi acel cod.
Din moment ce văd că nu au fost detectate erori, voi face clic pe Terminat.
Lasă-mă să redenumesc asta și să-i numesc Date.
Această interogare returnează o funcție, dar ceea ce vreau este un tabel.
Pentru a face modificările necesare, voi reveni în Editorul avansat.
Transformarea funcției într-un tabel
Pentru a face ca acest return să fie un tabel în loc de o funcție, ar trebui să fac câteva modificări codului M în Editorul avansat.
Privind codul M, pot vedea cu ușurință cel puțin două medii bazate pe numărul de instrucțiuni let.
Fiecare instrucțiune let are propria sa clauză in, care poate fi găsită în partea de jos.
S-ar putea să credeți că ar fi mai ușor să ștergeți această ultimă clauză pentru a o transforma într-un tabel.
Dar nu am de gând să fac asta. În schimb, voi comenta asta adăugând două bare oblice în fața ultimei clauze.
O să fac și pentru prima declarație let. Acest lucru îl face inactiv.
Sub instrucțiunea interioară let, voi crea o secțiune pentru a-mi declara parametrii, deoarece mai trebuie să transmit acești parametri acestui cod.
Voi marca unde trebuie declarate acele variabile.
Acum voi copia prima variabilă din instrucțiunea exterioară let și o voi lipi în spațiu.
În setul meu de date, datele istorice nu merg mai departe de 2017. Deci, pentru a transmite valoarea variabilei StartDate, pot folosi data intrinsecă. Voi pune 1 ianuarie, apoi voi încheia rândul cu o virgulă.
Apoi voi copia și lipi următoarea variabilă, care este EndDate.
Știu că EndDate ar necesita prognoză. De aceea vreau ca acest EndDate să fie întotdeauna sfârșitul anului viitor.
Am deja o variabilă în codul meu M pentru CurrentDate, așa că mă voi referi la asta.
Din nou, voi folosi data intrinsecă. Voi extrage Date.Year și voi folosi CurrentDate ca valoare a anului +1. De asemenea, vreau ca data să fie 31 decembrie.
Din nou, închei acel rând cu o virgulă.
Următoarea variabilă este un parametru opțional numit FYStartMonth.
Așa că am de gând să copiez acel nume și să-l inserez.
Observați că a apărut o subliniere roșie sub FYStartMonth sub variabila pe care tocmai am lipit-o.
Asta pentru că numele lor se potrivesc. Nu a fost o problemă când erau în medii separate. Dar numele variabilelor dintr-un singur mediu trebuie să fie unice. Aceasta înseamnă că trebuie să schimb numele noii variabile pe care tocmai am lipit-o.
În loc să-l numesc FYStartMonth, o voi numi FYStartMonthNum.
Nu voi aloca o valoare pentru această variabilă, așa că voi pune doar null.
Deoarece am schimbat numele variabilei, trebuie să schimb și numele oriunde a fost referit acest parametru.
Revenind la variabilă, voi închide acea linie adăugând o virgulă la sfârșit.
Următorul parametru este lista opțională de sărbători. Voi copia și lipi și asta și, de asemenea, îl voi declara ca nul.
Același lucru este valabil și pentru WDStartNum. Îl voi copia și lipi, apoi îl voi declara ca nul.
Pentru a marca unde începe codul tabelului de date, voi adăuga un alt comentariu aici.
După ce apăs pe Done, veți vedea că interogarea returnează acum tipul potrivit.
Acum am un tabel în loc de o funcție.
În interiorul panoului Pași aplicați, pot vedea, de asemenea, toți pașii care compun interogarea.
Dacă vreau să fac modificări în tabelul de date, este destul de ușor să folosești panglica pentru a modifica sau adăuga pași. Pentru fiecare modificare pe care o fac, voi vedea imediat rezultatele în interogare.
Transformarea interogării tabelului înapoi într-o funcție
Să presupunem că vreau să transform interogarea tabelului de date înapoi într-o funcție. Este doar o chestiune de a ajusta câteva lucruri în codul M pentru a inversa modificările pe care le-am făcut mai devreme.
Voi reveni în Editorul avansat și voi elimina barele oblice înainte de declarația exterioară let.
În continuare, voi elimina barele oblice înainte de declarațiile in.
Apoi voi comenta blocul variabil pe care l-am adăugat mai devreme. Așa că voi adăuga o bară oblică și un asterisc aici.
Apoi un asterisc și o bară oblică după blocul variabil.
Îți amintești când am schimbat această linie de cod mai devreme din cauza FYStartMonthNum?
Voi copia acea linie de cod. Apoi, voi adăuga o nouă linie și o voi lipi.
Îl voi tăia pe primul (care este locul în care am făcut modificările la numele variabilei mai devreme).
Apoi, pe al doilea, voi găsi numele variabilelor editate.
Și le voi transforma înapoi în FYStartMonth.
Odată ce apăs pe Done, interogarea tabelului se va transforma din nou într-o funcție.
Crearea unui tabel de date dinamice în LuckyTemplates: tutorial pentru editorul de interogări
Crearea unui tabel de date în LuckyTemplates
Configurarea unei date de început și de sfârșit dinamice pentru tabelele de date Power Query
Concluzie
Încă o dată, v-am arătat cât de convenabile sunt codurile M, mai ales în cazuri ca acestea în care am convertit o funcție într-o interogare de tabel și invers. Atâta timp cât aveți acces la codul M pe care îl avem în Forumul LuckyTemplates, îl puteți utiliza în scenarii ca acestea în viitor.
De asemenea, puteți naviga prin alte coduri M pe care le puteți utiliza în alte situații în M Code Showcase de pe Forumul . Este o comunitate de colaborare, așa că puteți citi comentariile pentru alte idei de la experții și membrii noștri.
Toate cele bune,
Melissa
***** Învățați LuckyTemplates? *****
Ce este Sinele în Python: Exemple din lumea reală
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.
Î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.
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.
Î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.
Vreau să arăt cum serviciul online LuckyTemplates Apps poate ajuta la gestionarea diferitelor rapoarte și informații generate din diverse surse.
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.
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.
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