Ce este Sinele în Python: Exemple din lumea reală
Ce este Sinele în Python: Exemple din lumea reală
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.
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.
Tabelul ar trebui să arate precedentul cu o diferență de 7 zile între date.
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.
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 .
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.
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ă.
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 .
Apoi, redenumiți duplicatul DisDate și faceți clic pe Închideți și aplicați.
Î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ă.
Apoi, transformați vizualizarea într-un felietor.
După aceea, schimbați formatul slicer-ului la List . Vizualizarea va arăta astfel.
Apoi, duplicați slicerul și modificați câmpul de date cu coloana Date din tabelul Date.
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ă.
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.
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.
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.
Apoi, creați o altă variabilă care va prelua data deconectată selectată în slicer.
După ce ați terminat, veți vedea valoarea selectată în slicer-ul DisDate afișat în coloana Măsurare.
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.
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 .
Puteți vedea apoi un tabel care conține șapte valori începând cu 5 mai și revenind cu incremente de șapte.
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.
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.
După aceea, veți vedea că valorile se încheie pe 31 martie.
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.
Î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 .
Î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 .
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.
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.
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ă.
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.
Veți vedea acum că valorile din coloana Măsură nu se repetă.
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.
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.
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ă.
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.
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 .
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.
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 .
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 .
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.
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 .
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.
După toate acestea, veți vedea apoi data lipsă, 17 martie, în matrice.
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.
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.
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