Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Acest tutorial va discuta despre alegerea sau filtrarea unei anumite date în rapoartele de date LuckyTemplates . Materialul folosit în acest tutorial provine de pe . Veți învăța cum să rezolvați problema și să înțelegeți metodele folosite. Puteți urmări videoclipul complet al acestui tutorial în partea de jos a acestui blog.

Cuprins

Înțelegerea raportului de date în LuckyTemplates

Acesta este exemplul de raport de date care va fi utilizat. Este alcătuit dintr-o masă vizuală și două dispozitive de tăiere.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Obiectivul este de a avea o selecție a datei peste coloana Date de pe slicer. Înseamnă că odată ce este selectată o dată în slicer, vizualizarea tabelului va afișa zilele anterioare cu un interval de 7 zile. În acest exemplu, datele selectate în sectorul de date sunt 12 mai 2007.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Tabelul ar trebui să arate precedentul cu o diferență de 7 zile între date.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

De asemenea, trebuie să creați un parametru care să arate în mod dinamic numărul de date pe baza selecției. Dacă selectați 3 , imaginea tabelului ar trebui să arate doar 3 date.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Recrearea tabelului și a vizualizărilor

Primul pas este să creați un parametru ce se întâmplă dacă . În interiorul desktopului LuckyTemplates, accesați fila Modelare și selectați Parametru nou .

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Adăugați un nume la parametru și setați Tipul de date la Număr întreg . Apoi, setați valorile minime, maxime, incrementale și implicite, așa cum se vede în imaginea de mai jos. Adăugați dispozitivul de tăiere în pagină bifând caseta.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

După ce apăsați OK, va fi generat un slicer. Convertiți dispozitivul de tăiere într-o listă făcând clic pe butonul derulant și selectând Listă.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Următorul lucru de făcut este să creați un tabel de date duplicat care va fi folosit ca un tabel de date deconectat. Accesați editorul de interogări de putere și duplicați Date .

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Apoi, redenumiți duplicatul DisDate și faceți clic pe Închideți și aplicați.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Încărcarea tabelelor de date și a sectoarelor în LuckyTemplates

Odată ce tabelul duplicat este încărcat în modelul LuckyTemplates, creați un slicer cu coloana de dată din tabelul de date deconectat. Deschideți tabelul DisDate și trageți Data pe pânză.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Apoi, transformați vizualizarea într-un felietor.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

După aceea, schimbați formatul slicer-ului la List . Vizualizarea va arăta astfel.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Apoi, duplicați slicerul și modificați câmpul de date cu coloana Date din tabelul Date.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Selectarea unei date din sectorul Date va limita numărul de rânduri vizibile din tabelul de vânzări din matrice. Dacă selectați 14 martie 2005, matricea va afișa doar acea dată.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Rezultatul și măsura nu vor funcționa dacă utilizați această setare. Motivul este că încă înainte ca măsura să înceapă să funcționeze, accesul matricei a fost deja filtrat. Pentru acele valori filtrate, nu veți putea genera datele cu intervale.

Crearea de măsuri pentru tăietorii de selecție

Trebuie să creați o setare de date care să nu filtreze matricea direct atunci când o selecție este plasată peste un slicer. Filtrarea matricei trebuie să vină prin codul DAX și nu direct din slicere. Deci, dacă selectați o dată din slicer-ul DisDate, nu se vor produce modificări în matrice.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Acest lucru se întâmplă deoarece tabelul DisDate nu are o relație cu tabelul Date. Acesta este motivul pentru care masa deconectată este esențială.

Ștergeți slicerul cu tabelul Date și creați prima măsură. Măsura va prelua valoarea care este selectată din slicerul Date pentru afișare. Prima variabilă pe care trebuie să o creați este ValuesToShow . Apoi, echivalează-l cu valoarea Datelor de afișat și introduceți RETURN pentru a returna valorile selectate.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Trageți măsura respectivă în matrice. Dacă selectați 6 din secțiunea Date pentru afișare, coloana Măsură din matrice va obține și 6.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Apoi, creați o altă variabilă care va prelua data deconectată selectată în slicer.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

După ce ați terminat, veți vedea valoarea selectată în slicer-ul DisDate afișat în coloana Măsurare.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Crearea unui tabel calculat

Creați o listă de date cu intervale de 7 zile începând de la data selectată în slicer. Apoi, asigurați-vă că matricea va genera numărul de zile pe baza selecției Date pentru afișare a slicer-ului. Pentru a face acest lucru, mai întâi trebuie să creați un tabel calculat .

Tabelul calculat vă ajută să vizualizați modul în care datele sunt generate în codul DAX. Accesați Vizualizarea datelor și faceți clic pe Tabel nou.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Introduceți variabila SelectedDate și echivalați-o cu funcția DATE . Apoi, introduceți o dată în paranteze. Apoi, creați o altă variabilă care va specifica numărul de date pe care doriți să le afișați în matrice. Introduceți DatesToShow și echivalați-l cu numărul de date.

După aceea, creați o altă variabilă care va genera o listă de date cu intervale de 7 zile. Introduceți DatesList și utilizați funcția GENERATESERIES . este o funcție care generează o listă de numere prin trecerea mai multor argumente.

Pentru primul argument, introduceți SelectedDate – (DatesToShow * 7)  ca valoare de început. Apoi, introduceți SelectedDate ca valoare finală. Pentru ultimul argument, introduceți 7 pentru valoarea de increment sau intervalul dintre date. Odată terminat, închideți funcția și introduceți RETURN și DateList .

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Puteți vedea apoi un tabel care conține șapte valori începând cu 5 mai și revenind cu incremente de șapte.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Acum, veți observa că a creat prea multe date decât ceea ce aveți nevoie. În eșantionul de raport inițial, ultima dată afișată cu aceleași selecții Date pentru afișare și Data a fost 31 martie.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Pentru a remedia acest lucru, puteți fie să modificați valoarea variabilei DatesToShow la 5, fie să scădeți 1 din 6. În acest exemplu, 1 este scăzut din 6.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

După aceea, veți vedea că valorile se încheie pe 31 martie.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Injectarea datelor în contextul filtrului

Apoi, trebuie să utilizați și să injectați aceste date într-un context de filtru de dată. De asemenea, trebuie să calculați valoarea vânzărilor în contextul filtrului. Deci, copiați sintaxa GENERATESERIES și reveniți la măsura dvs.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

În măsură, adăugați o nouă variabilă și introduceți DatesToShow . Apoi, echivalează acea variabilă cu sintaxa GENERATESERIES . Schimbați variabilele din sintaxă din SelectedDate în DisSelectedDate și DatesToShow în ValuesToShow .

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

În cele din urmă, creați o variabilă pentru rezultat. Echivalează-l cu funcția CALCULATE peste Total Sales și DatesToShow pentru a injecta toate datele primite din sintaxa GENERATESERIES în contextul filtrului. Odată terminat, introduceți Rezultatul în funcția RETURN .

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Acum, veți vedea că matricea nu va afișa datele pe care le solicită codul DAX. Dacă aduceți măsura vânzărilor totale în matrice, veți vedea că codul returnează însuși suma vânzărilor.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Problema cu măsura este că data care a fost creată în sintaxa GENERATESERIES are o linie de date cu tabelul de date deconectat. Aceasta înseamnă că tabelul Date nu este conectat la tabelul Vânzări. De aceea, atunci când lista de date a fost aplicată în contextul filtrului, nu a inclus tabelul Vânzări.

Trebuie să utilizați funcția pentru a crea relații virtuale și pentru a aplica contextul de filtru.

Utilizarea TREATAS pentru a fixa data în matricea LuckyTemplates

Trebuie să tratați valorile care au fost primite de la sintaxa GENERATESERIES ca și cum ar fi parte din tabelul original de date. Practic, aceasta este construirea unei filiații cu coloana Date a tabelului Date care se află în modelul de date.

Deci, în variabila Rezultat, introduceți TREATAS după tabelul Vânzări totale și furnizați argumentele. Pentru primul argument, furnizați coloana sau tabelul care nu are relația. În acest caz, se utilizează coloana DatesToShow .

Pentru al doilea argument, furnizați coloana la care doriți să mapați descendența coloanei din primul argument. În acest exemplu, se utilizează coloana Date din tabelul Date.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Cu toate acestea, chiar și cu corecțiile din cod, coloana Măsură din matrice tot nu va afișa valorile corecte atunci când utilizați slicer-ul. De asemenea, puteți observa că valorile din interiorul coloanei se repetă.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Problema constă în modul în care a fost scris codul. TREATAS aplică toate valorile în contextul filtrului și suprascrie contextul filtrului existent la data selectată cu toate valorile care au fost preluate din funcția GENERATESERIES .

Utilizarea funcției KEEPFILTERS peste TREATAS

Pentru a vă asigura că filtrul este injectat în filtru fără a trece peste contextul de filtru existent, trebuie să utilizați funcția KEEPFILTERS . modifică semantica de filtrare a lui CALCULATE .

Introduceți KEEPFILTERS înainte de funcția TREATAS și confirmați măsura.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Veți vedea acum că valorile din coloana Măsură nu se repetă.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Dacă extindeți lunile mai și aprilie, veți vedea că valorile din coloana Măsură sunt egale cu valorile din coloana Vânzări totale.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Eliminați măsura Vânzărilor totale din matrice și selectați un număr în secțiunea Date pentru afișare. Veți vedea apoi numărul echivalent de date afișat în matrice.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Remedierea problemelor de date lipsă în matricea LuckyTemplates

O altă problemă cu acest raport este că atunci când selectați 8 în slicerul DatesToShow , matricea nu se schimbă.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Dacă selectați 9 în slicer, matricea arată doar 8 date. De asemenea, veți observa că 17 martie lipsește din lista de date.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Motivul este că în unele zile în tabelul Date, nu există tranzacții care se potrivesc în tabelul Vânzări. Deci măsura returnează un gol pentru acele date. Deoarece returnează gol, codul care rulează în spatele matricei elimină rândurile goale din rezultat.

LuckyTemplates utilizează apoi rezultatul returnat pentru a popula matricea. Deci, deoarece unele zile revin necompletate, nu puteți vedea vânzările și intrările din acele zile în matrice.

Dacă doriți să afișați ceva pentru zilele fără vânzări în datele dvs., reveniți la măsură și eliminați sintaxa CALCULATE .

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Utilizarea DAX pentru a rezolva data lipsă în LuckyTemplates

Creați o linie de date scriind TREATAS peste coloanele DatesToShow și Date din tabelul Date . Apoi, verificați dacă toate datele returnate de funcția TREATAS sunt incluse în contextul filtrului.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

De acolo, împărțiți execuția în mai multe variabile. Schimbați numele variabilei din Result în CreateDataLineage pentru a arăta că stochează rezultatul TREATAS .

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Apoi, creați o altă variabilă care va deține toate datele care sunt vizibile în contextul de filtru provenit din matrice. Introduceți VisibleDate ca nume de variabilă și utilizați peste coloana Data .

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Următorul lucru de făcut este să creați o coloană peste rezultatul funcției TREATAS care ar conține suma vânzărilor. Scrieți DatesWithSales ca nume de variabilă și utilizați peste variabila CreateDataLineage .

În interiorul funcției, creați o nouă coloană și denumiți-o Valoarea vânzărilor cu măsura vânzărilor totale în contextul rândului pentru a iniția tranziția contextului.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

După aceea, creați o variabilă care să verifice dacă toate datele care sunt stocate în variabila DatesWithSales sunt incluse în contextul filtrului. Introduceți IsDateInFilterContext ca nume de variabilă și utilizați funcția .

De acolo, scrieți DatesWithSales ca prim argument al funcției. Apoi, introduceți Dates[Date] ÎN VisibleDate ca al doilea argument pentru a verifica dacă data conținută în tabelul DatesWithSales este inclusă în variabila VisibleDate .

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Ultima variabilă pe care trebuie să o creați este Result . Utilizați funcția peste variabila IsDateInFilterContext . Scrieți [@Sales Amount] + 0 pentru a include zilele care nu au fost incluse anterior.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

După toate acestea, veți vedea apoi data lipsă, 17 martie, în matrice.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Folosind +0 în măsura inițială

Pașii anteriori v-au arătat cum să construiți o măsură pentru a include toate datele care nu au tranzacții în tabelul de fapte. Acum, dacă utilizați + 0 în măsura originală pe care ați creat-o, valorile din coloana Măsură vor fi toate 0.

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Alegeți o dată specifică în LuckyTemplates utilizând calculul DAX

Motivul este că variabila Rezultat conține fie un necomplet, fie o sumă de vânzări. Deci, dacă adăugați 0, înlocuiți spațiul liber cu 0. Amintiți-vă că coloanele rezumate elimină rândurile goale din setul de date. Returnați-le în LuckyTemplates, astfel încât să poată afișa doar rânduri limitate și nu spațiile libere.

Dar, deoarece se adaugă 0, coloana rezumat este forțată să păstreze rândurile. Apoi returnează un tabel care conține toate datele care există în tabelul Date și arată zero oriunde este aplicabil sau când este gol.

Acesta este motivul pentru care trebuie să rescrieți măsura într-un mod în care trebuie doar să adăugați 0 la datele care sunt vizibile în contextul filtrului și sunt incluse în variabila DatesToShow .


Conectori Power Automate: număr, text și dată, oră
Tabel extins pentru date Power Query M Funcție
Power Query LuckyTemplates | Creați înregistrări noi pe baza câmpurilor de dată

Concluzie

Pentru a crea un raport de date care vă permite să selectați o anumită dată într-o matrice LuckyTemplates , trebuie să utilizați tabele calculate și funcții DAX . Funcțiile și măsurile DAX trebuie scrise într-un mod care să poată obține cu ușurință rezultate.

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