Ce este Sinele în Python: Exemple din lumea reală
Ce este Sinele în Python: Exemple din lumea reală
Vreau să mă concentrez astăzi pe ceva pe care îl numesc capcana DAX ascunsă. Dacă te confrunți cu această situație, te va face să simți că îți pierzi mințile pentru că DAX-ul tău va arăta corect, dar nu va funcționa. Vă voi prezenta când se întâmplă acest lucru și ce puteți face în acest sens și, în acest proces, vă voi vorbi și despre unele bune practici generale de optimizare DAX. Puteți viziona videoclipul complet al acestui tutorial în partea de jos a acestui blog.
Să aruncăm mai întâi o privire la ceea ce lucrăm aici. Avem aproximativ 10 ani de date din Internet Movie Database. Tabelele de fapte sunt destul de simple și avem date de evaluare, date de buget și date brute.
Astăzi, ne vom uita la încasările la nivel mondial.
Avem și tabelul nostru extins pentru întâlniri. Aceasta va fi o analiză de timp bazată pe tabelul de date și tabelul de fapte.
Cuprins
Total brut pe an la nivel mondial
Vrem să facem ceva cu adevărat comun și simplu. Totalul nostru brut global este doar o sumă agregată foarte simplă, pe care dorim să o transformăm într-un procent.
Pentru a face acest lucru, luăm numărătorul ( măsură totală brută la nivel mondial ) și numitorul ( măsură totală brută mondială , dar am eliminat contextul din filtrul anului).
Am folosit pentru că cred că este mai intuitivă când citiți codul, dar dacă preferați , funcționează la fel de bine. Împărțim doar numărătorul la numitor pentru a obține rezultatul.
Dacă luăm măsura rezultată și o aruncăm în tabelul nostru, veți vedea că face exact ceea ce ne așteptăm să facă. Primim 100% în partea de jos și primim anii convertiți în procentele lor individuale. Până acum totul e bine și nu am întâmpinat încă probleme.
Total brut la nivel mondial pe trimestru
Să aruncăm o privire la o situație similară în care mergem pe trimestru. Această măsură ar putea fi utilă deoarece există ipoteze că încasările din sezonul de vară al filmelor sunt diferite de începutul anului și spre sfârșitul anului care duce la sezonul Oscar.
Din nou, avem exact aceeași măsură cu funcția REMOVEFILTERS pe numerele trimestrului în loc de anul.
Și dacă aruncăm măsura pe care tocmai am făcut-o în tabel, de asemenea, face exact ceea ce ne așteptăm.
Total la nivel mondial brut pe lună și an
Să aruncăm o privire la cel de-al treilea caz, care poate fi cu adevărat obișnuit, unde vrem să ne uităm după lună și an.
Și din nou, vom folosi aceeași măsură ca înainte. Dar de data aceasta, vom elimina filtrul pe lună și pe an.
Să-l aruncăm pe acesta în masa noastră. Dintr-o dată nu merge.
Putem spune ce nu funcționează. Știm că măsura brută la nivel mondial funcționează, așa că înseamnă că numărătorul este bine, dar numitorul nu este. În fiecare dintre cazurile anterioare, funcția REMOVEFILTERS a eliminat filtrul în mod corespunzător, dar aici, în mod clar, nu a făcut-o.
Putem testa acest lucru schimbând ceea ce am returnat aici în rezultat.
În loc de Rezultat, să folosim Numitorul. Rețineți că acesta va fi formatat într-un procent, așa că va părea puțin amuzant.
Ceea ce ar trebui să obținem pentru numitor este același număr în fiecare rând, dar nu este.
Ne putem da seama că nu elimină filtrul pe lună și an și credem că se datorează faptului că Luna și Anul sunt în text.
Dar precedentul pentru trimestru a fost exprimat și în text, deci nu este doar pentru că textul său. Trebuie doar rezolvat. Odată ce aruncați câmpul fără să-l sortați, acesta va fi sortat alfabetic.
În tabelul extins pentru date, să aruncăm o privire la acel câmp numit Month & Year . Dacă ne uităm la aceasta în coloana Sortare după , vom vedea ceva interesant.
Vom vedea că acea coloană este sortată după o valoare numerică numită MonthYear. Când sortați o coloană după alta, acea coloană de sortare devine de fapt parte a contextului de filtru. Acesta este ceea ce a aruncat acest calcul.
Să revenim la măsura noastră și să eliminăm contextul lunii și anului pe care le folosim ca sortare.
Acum obținem exact ceea ce ar trebui, adică luna și anul calculate ca procent adecvat.
Când eliminați un context de filtru, va fi nevoie de două câmpuri pentru a face acest lucru când este sortat . Puteți întreba că, în loc să fie nevoie să faceți două câmpuri aici, de ce nu putem elimina filtrele din întregul tabel de date?
Răspunsul este că putem, iar acest lucru va funcționa pentru cele trei exemple despre care am vorbit, deoarece fiecare dintre aceste coloane face parte din tabelul nostru de date. Eliminarea întregului context de filtru de pe acel tabel va funcționa pentru toate cele trei cazuri, dar aceasta este de fapt o idee proastă.
Ca principiu general de optimizare DAX, trebuie să eliminați cât de mult context de filtru este necesar pentru a obține rezultatul dorit.
În cele mai multe cazuri, nu veți prezenta acest lucru într-un format tabelar. O veți prezenta ca o matrice și veți avea nevoie de o măsură mai complexă, deoarece aveți două granularități diferite în aceeași coloană. Această măsură pare complicată, dar chiar nu este.
Aceasta este doar o extensie a ceea ce am făcut deja. Prima parte a acestui calcul de optimizare DAX arată numitorii pentru granularitatea diferită. Înlăturăm contextul filtrului pentru o lună, pentru an și pentru întregul tabel.
Pentru a doua parte a calculului, am folosit SWITCH TRUE. Pentru această funcție, trebuie să treceți de la cel mai specific la cel mai puțin specific. Luna este domeniul nostru cel mai strâns și mai specific, așa că de aici începem. Va trebui să eliminăm contextul folosind acele două câmpuri pe care le-am identificat.
Pentru domeniul de aplicare al anului, trebuie să eliminăm contextul pe an și să eliminăm contextul pe întregul tabel.
Să aruncăm o privire la ce se întâmplă dacă trebuie să luăm și să eliminăm contextul din întregul tabel de date . Vom folosi o măsură diferită care elimină contextul din întregul tabel de date pentru toate cele trei cazuri.
Vom vedea că măsura îndepărtează exagerat contextul. În loc să calculeze contribuția fiecărei luni la acel an, se calculează contribuția acelei luni la întregul set de date. Nu este ceea ce vrem să se întâmple, deoarece eliminarea contextului din întreaga masă este de fapt doar un instrument contondent atunci când este nevoie de un bisturiu.
Concluzie
Există multe situații în care aveți o matrice și trebuie să controlați cu atenție contextul pe care îl eliminați. A elimina doar contextul de pe întregul tabel va cauza astfel de probleme.
Sper că atunci când apare această situație (ceea ce se va întâmpla invariabil, la un moment dat), o veți recunoaște ca fiind capcana ascunsă despre care am discutat în această postare de optimizare DAX și o veți putea evita fără aceeași frustrare. că mi-a cauzat când l-am văzut prima dată și nu mi-am putut da seama de ce DAX-ul meu nu funcționa corect.
Dacă v-a plăcut subiectul de optimizare DAX abordat în acest tutorial special, vă rugăm să vă abonați la canalul TV LuckyTemplates . Avem o cantitate imensă de conținut care iese tot timpul de la mine și de la o serie de creatori de conținut, toți dedicați îmbunătățirii modului în care utilizați LuckyTemplates și Power Platform.
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