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

Să aruncăm o altă privire asupra problemei discutate în acest tutorial , care a comparat în mod dinamic primele N zile lucrătoare ale fiecărei luni. Această problemă s-a bazat pe o interogare a unui membru LuckyTemplates de pe forumul nostru, în care a dorit să caute și să compare în mod dinamic primele 5, 10, 15 și 20 de zile facturabile (în afara weekendurilor și a sărbătorilor) pentru o anumită lună cu luna precedentă.

În loc să folosim Power Query, vom veni cu o soluție de limbaj de codare DAX. Puteți viziona videoclipul complet al acestui tutorial în partea de jos a acestui blog.

În primul videoclip , am venit cu o soluție de interogare de putere despre cum să rezolv această problemă. Dar apoi unul dintre experții noștri LuckyTemplates, Antriksh Sharma, a venit cu o măsură extraordinar de eficientă, în care merită, de asemenea, să o analizăm mai profund. Vom discuta câteva dintre tehnicile pe care le-a folosit în dezvoltarea unei măsuri, care vă vor oferi instrumente suplimentare în cutia dvs. de instrumente DAX.

Cu siguranță a făcut-o pentru mine și pentru unii dintre ceilalți experți care s-au uitat la asta. Comparația similară a zilelor lucrătoare comparabile de-a lungul lunilor este un model valoros, în general, care poate fi folosit în multe situații.

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

Să ne aprofundăm în interogare de putere și să aruncăm o privire la ceea ce a făcut Antriksh aici. Avem luna și anul , vânzările totale și, în sfârșit, vânzările totale pentru N zile lucrătoare pe care le-am selectat utilizând interogarea de putere pe baza parametrului care se întâmplă dacă am dezvoltat.

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

Antriksh a adoptat o abordare foarte diferită, în care a folosit o măsură șocant de scurtă pentru a rezolva întreaga problemă. Primul lucru pe care l-am observat despre acest lucru a fost utilizarea comenzii .

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

Aceasta este o funcție DAX pe care nu o folosesc foarte des, dar se potrivește perfect pentru acest tip de problemă. Dacă aruncăm o privire la Ghidul SQL BI DAX, acesta spune că funcția GENERATE este o funcție de tabel care folosește ca intrare două tabele diferite și apoi face un echivalent al comenzii SQL CROSS APPLY.

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

Deci, este nevoie de un tabel de bază (Tabel1) și repetă pe acesta, apoi ia o a doua expresie de tabel și o evaluează pentru fiecare rând din primul tabel, apoi revine la tabel ca rezultat.

Să luăm măsura lui Antriksh și să o aruncăm în masă. Putem vedea că produce exact aceleași rezultate ca și soluția de interogare de energie pe care am făcut-o data trecută. Deci este bine și validează destul de bine ambele măsuri.

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

Să dezactivăm această măsură. Primul filtru aplicat aici este Dates[IsBusinessDay] = TRUE. Aceasta elimină toate datele non-weekend și non-sărbătoare pe baza câmpului tabel de date extins IsBusinessDay.

Vorbim despre asta mult mai mult în primul tutorial , unde am analizat și cum să le legăm în masa noastră de vacanță.

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

Partea interesantă a acestui lucru vine cu adevărat în cele două intrări în tabel. Primul tabel este doar un tabel cu o singură coloană din câmpul Month & Year din tabelul Date.

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

Dar a doua intrare în tabel este locul unde se întâmplă lucrurile interesante. Antriksh a folosit o și apoi a folosit parametrul nostru dinamic ca număr de rânduri în TOPN.

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

Măsurarea vânzărilor totale este atașată celui de-al doilea tabel și apoi aplicată primului tabel.

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

Cuprins

Înțelegerea unei măsuri complexe folosind limbajul de codare DAX

Una dintre cele mai ușoare modalități de a vă da seama ce face o măsură complexă ca aceasta este să accesați Editorul tabelar . Putem arunca o privire la această expresie și ne dăm seama ce face mai întâi această expresie TOPN.

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

Să copiem porțiunea TOPN și să creăm o nouă interogare DAX . Rețineți că interogările DAX încep cu EVALUATE.

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

Când lipim porțiunea TOPN, vom vedea că aceasta trage primele 5 date din tabelul comenzilor de vânzări. Există un tabel în TOPN care este compus din valorile tuturor datelor comenzilor din tabelul de vânzări.

Această funcție TOPN ia valoarea parametrului what-if (care în acest caz este 5) și o aplică câmpului pentru data comenzii de vânzare. Apoi trage primele 5 date în contextul filtrului într-o ordine crescătoare pe baza acelui câmp.

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

Având în vedere că nu există un context de filtrare suplimentar, este doar extragerea primelor 5 date din întregul tabel.

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

Coloana @Sales doar adaugă vânzările totale în contextul de filtru adecvat la tabelul TOPN.

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

Până acum, avem primul tabel al lunii și anului, al doilea tabel al TOPN-ului primului N datează din tabelul de vânzări și apoi vânzările totale asociate cu acesta.

Utilizarea tabelului GENERATE în limbajul de codare DAX

Să aruncăm o privire la ceea ce face acest tabel GENERATE. Vom reveni în Editorul tabelar și vom crea o nouă interogare DAX.

Vom începe așa cum facem întotdeauna cu EVALUATE, lipim în porțiunea GENERATE a codului și facem clic pe 5.

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

Putem observa că pentru fiecare rând al primului tabel, acesta iterează și se unește cu cele 5 rânduri din tabelul TOPN evaluat în context cu funcția @Sales.

A durat primele 5 zile lucrătoare din aprilie, primele 5 zile lucrătoare din mai, primele 5 zile lucrătoare din iunie și așa mai departe până când ajunge la sfârșitul primului tabel.

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

Este exact ceea ce avem nevoie, iar acum devine o chestiune relativ simplă de a aduna acele valori. Avem rezultatul (care este variabila de tabel a rezultatelor GENERATE) și apoi trebuie să însumăm funcția @Sales.

În context, acum însumăm primele 5 zile lucrătoare din aprilie, primele 5 zile lucrătoare din mai și așa mai departe până când ajungem la totalul nostru de 23.737.430 USD, caz în care nu are context de lună și an pentru a funcționa .

Aceasta însumează întreaga coloană @Sales și ne obține exact același total pe care l-am avut în soluția noastră de interogare de putere.

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

Puteți vedea că dacă schimbăm slicer-ul la 10, obținem dinamic aceleași rezultate cu limbajul de codare DAX ca și în interogare de putere.

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

Avem și diagrama cu bare în partea de jos care se ajustează dinamic pentru a reflecta modificările pe care le-am făcut.

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

Ajustați dinamic titlul măsurii

Mai este un truc suplimentar pe care voiam să-ți arăt. Puteți să creați o ajustare dinamică a parametrului de tip what-if și să-l legați dinamic într-un titlu de măsură.

De exemplu, dacă schimbăm slicer-ul din partea de sus la 15, acesta va schimba în mod dinamic numele măsurii din partea de jos în Total vânzări pentru primele 15 zile lucrătoare ale fiecărei luni .

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

Există o modalitate ușoară de a face acest lucru în DAX folosind formatarea condiționată . Practic luăm doar trei șiruri. Primul este vânzările totale pentru primul și apoi concatenați-l cu valoarea pe care o recoltăm din parametrul what-if, apoi legați-o de restul titlului.

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

Apoi intrăm în vizual, mergem la formatarea condiționată a titlului și facem clic pe fx .

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

Vom formata după valoarea câmpului și vom alege acea măsură de titlu dinamică. Aceasta va schimba selecția parametrului ce se întâmplă dacă.

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

Concluzie

Ceea ce avem acum este o soluție completă folosind limbajul de codare DAX. Am discutat despre un mod cu adevărat creativ și eficient de a face acest lucru folosind funcția GENERATE. Vreau să-i mulțumesc lui Antriksh pentru că ne-a împărtășit cunoștințele sale geniale DAX. Am învățat multe în timp ce treceam prin soluția lui DAX și sper că și tu.


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