Optimizare DAX: Unde să găsiți capcana DAX ascunsă

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.

Optimizare DAX: Unde să găsiți capcana DAX ascunsă

Avem și tabelul nostru extins pentru întâlniri. Aceasta va fi o analiză de timp bazată pe tabelul de date și tabelul de fapte.

Optimizare DAX: Unde să găsiți capcana DAX ascunsă

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.

Optimizare DAX: Unde să găsiți capcana DAX ascunsă

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).

Optimizare DAX: Unde să găsiți capcana DAX ascunsă

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.

Optimizare DAX: Unde să găsiți capcana DAX ascunsă

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.

Optimizare DAX: Unde să găsiți capcana DAX ascunsă

Ș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.

Optimizare DAX: Unde să găsiți capcana DAX ascunsă

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.

Optimizare DAX: Unde să găsiți capcana DAX ascunsă

Și din nou, vom folosi aceeași măsură ca înainte. Dar de data aceasta, vom elimina filtrul pe lună și pe an.

Optimizare DAX: Unde să găsiți capcana DAX ascunsă

Să-l aruncăm pe acesta în masa noastră. Dintr-o dată nu merge.

Optimizare DAX: Unde să găsiți capcana DAX ascunsă

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.

Optimizare DAX: Unde să găsiți capcana DAX ascunsă

Î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.

Optimizare DAX: Unde să găsiți capcana DAX ascunsă

Ceea ce ar trebui să obținem pentru numitor este același număr în fiecare rând, dar nu este.

Optimizare DAX: Unde să găsiți capcana DAX ascunsă

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.

Optimizare DAX: Unde să găsiți capcana DAX ascunsă

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.

Optimizare DAX: Unde să găsiți capcana DAX ascunsă

Să revenim la măsura noastră și să eliminăm contextul lunii și anului pe care le folosim ca sortare.

Optimizare DAX: Unde să găsiți capcana DAX ascunsă

Acum obținem exact ceea ce ar trebui, adică luna și anul calculate ca procent adecvat.

Optimizare DAX: Unde să găsiți capcana DAX ascunsă

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.

Optimizare DAX: Unde să găsiți capcana DAX ascunsă

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.

Optimizare DAX: Unde să găsiți capcana DAX ascunsă

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.

Optimizare DAX: Unde să găsiți capcana DAX ascunsă

Pentru domeniul de aplicare al anului, trebuie să eliminăm contextul pe an și să eliminăm contextul pe întregul tabel.

Optimizare DAX: Unde să găsiți capcana DAX ascunsă

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.

Optimizare DAX: Unde să găsiți capcana DAX ascunsă

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.

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