Ce este Sinele în Python: Exemple din lumea reală
Ce este Sinele în Python: Exemple din lumea reală
În acest tutorial, vă voi arăta o analiză detaliată a măsurătorilor DAX cu privire la modul în care am creat una dintre paginile mele preferate în raportul pe care l-am trimis pentru a 10-a Provocare LuckyTemplates.
Pagina Clasamente folosește o mulțime de măsuri DAX provocatoare. Dar cu ajutorul unuia dintre experții noștri LuckyTemplates, Antriksh Sharma, plus unele ramificări de măsură, am reușit să obțin rezultatele pe care mi le-am dorit.
Cuprins
Prezentare generală a paginii Clasamente
Înainte de a trece la analiza măsurătorilor DAX, vreau să vă arăt diferitele părți ale paginii la care lucrăm astăzi.
Așa arată pagina Clasamente . Spre deosebire de celelalte pagini din raportul meu, acesta conține în mare parte carduri.
Fiecare dintre aceste carduri a fost realizată folosind vizualul de card încorporat în desktopul LuckyTemplates, sub panoul Vizualizări.
Vă permite să navigați înapoi la alte pagini din raport prin aceste pictograme de sus.
Am discutat despre celelalte pagini ale acestui raport în celelalte tutoriale. Dacă vedeți celelalte pagini din acest raport, veți vedea că au și pictograme care duc la această pagină Clasare .
Partea stângă a paginii arată primele patru fabrici și furnizori, în timp ce partea dreaptă arată cele patru de jos.
De asemenea, am creat măsuri DAX individuale pentru a obține rezultate mai specifice. Aceste trei de sus, de exemplu, arată primele patru și cele patru fabrici de jos și furnizori pe baza minutelor de nefuncționare , a minutelor medii de nefuncționare și a defectelor .
Am fost și mai specific în partea de jos a paginii de raport. În partea stângă, am primit primele patru și cele patru centrale de jos, pe baza minutelor de nefuncționare, a minutelor medii de oprire și a defectelor.
În dreapta, am făcut același lucru, dar de data aceasta pe baza detaliilor vânzătorului.
Pe măsură ce parcurg acest tutorial, vă voi spune povestea cum mi-a venit ideea pentru această pagină. Apoi, vă voi oferi o detaliere pas cu pas a modului în care au fost create fiecare dintre aceste măsuri.
Obținerea de idei pentru măsurile DAX de utilizat
Ideea măsurilor DAX din acest slide mi-a venit de la unul dintre , Antriksh. Este un guru DAX și este grozav la optimizarea măsurilor. A fost distractiv să lucrez cu el la această analiză de măsurare DAX.
Cu aproximativ două săptămâni înainte de a fi anunțată cea de-a 10-a Provocare LuckyTemplates, am avut o conversație pe Skype despre un fișier PBIX pe care l-a postat pe Forumul LuckyTemplates.
După cum puteți vedea, am inclus o poză cu Antriksh, deoarece el a fost inspirația din spatele paginii despre care vom discuta aici. I-am spus că îi voi acorda credit atunci când voi ajunge să finalizez acest tutorial.
Modelul este simplu și utilizează câteva date de bază, cum ar fi Client, Produse și Vânzări.
Are o listă scurtă de țări în partea stângă.
Antriksh a creat o măsură pentru Top N Țări în funcție de vânzări . Am lista sortată de la cel mai mare la cel mai mic, așa cum este indicat de săgeata în jos.
În dreapta, există un card care arată primele patru și cele patru țări de jos. Lista de primele patru arată Statele Unite ale Americii , Australia , Regatul Unit și Germania , care se potrivesc cu primele patru de pe listă.
Cu toate acestea, cei patru de jos apar în ordine opusă. În loc să meargă de jos, care este Armenia , a început pe locul 5 pe listă, adică Kârgâzstan .
Acesta este motivul pentru care am făcut un alt card în partea de jos care folosește o versiune revizuită a măsurii folosite mai sus.
Observați că ultimele patru se potrivesc acum cu ordinea pe care mi-am dorit-o – Armenia , Thailanda , Siria și Kârgâzstan .
Să intrăm în măsurile DAX din spatele acestor carduri. Voi începe cu măsura pe care Antriksh a creat-o pentru prima carte.
Măsura inițială are peste 97 de rânduri pentru a obține rezultatele pe care le-am văzut pe primul card.
Când derulăm în jos până la al 20-lea rând, putem vedea că Antriksh a folosit ASC . Acesta este motivul pentru care cei patru de jos au apărut așa cum a apărut.
Acum că știu de unde a început problema, vă voi arăta cum arată măsura mea revizuită.
Permiteți-mi să evidențiez a doua carte, astfel încât să vă pot arăta măsura din spatele ei.
După cum puteți vedea, există doar 41 de rânduri în formula mea revizuită.
Am lucrat cu Antriksh pentru a o micșora cu 60% sau 70% decât măsura inițială. Nu numai că este mai puțin complicat, dar îmi oferă și rezultatele de care am nevoie – primii patru începând de la 1 la 4, iar cei de jos începând de la 8 la 5.
La câteva săptămâni după discuția mea cu Antriksh, a fost lansată a 10-a Provocare LuckyTemplates. O parte din cerințe a implicat un sistem de clasare, ceea ce m-a făcut să mă gândesc la măsura DAX a lui Antriksh. Mi-am dat seama că pot copia și lipi măsura, apoi pot aplica unele ramificări de măsură pentru a obține rezultatele de care am nevoie.
Analiza măsurii Dax: construirea măsurii pas cu pas
Acum, voi detalia măsurile pe care le-am folosit pentru pagina Clasamente pentru a obține rezultatele pe care mi le-am dorit. Această analiză a măsurătorii DAX mă poate ajuta să explic cum funcționează măsura, ținând cont de câte rânduri a fost nevoie pentru ao finaliza.
În celelalte tutoriale ale mele, am arătat cum îmi place să-mi grupez măsurile pentru a face lucrurile mai organizate . Așa că am creat un subdosar pentru Top N v2.
În acest dosar se află măsura mea pentru Minute de nefuncționare a Top N Plants Vendors . Veți vedea că are aceleași 41 de linii de cod pe care v-am arătat mai devreme în timp ce discutam măsura lui Antriksh. Practic, tot ce trebuia să fac a fost să înlocuiesc niște elemente pentru a obține rezultatele pe care le doresc.
Pentru a descompune mai bine acest lucru, am împărțit toată această măsură în 9 părți diferite. Voi trece peste fiecare dintre acești pași de la unu la nouă și voi explica ce realizează fiecare dintre aceștia.
Măsura utilizează o serie de variabile, astfel încât să pot obține rezultate mai clare. Setarea acestor variabile ajută utilizatorul final să vadă cum se îmbină măsura și explică detaliile modului în care am obținut fiecare rezultat.
Să începem cu primul pas, care setează numit BaseTable.
În acest tabel de bază, puteți vedea că fac referință la datele pentru Locația fabricii și Furnizor .
Când reveniți la fișierul PBIX, veți vedea cardul de sus care face referire atât la plante, cât și la furnizori. Acesta este motivul pentru care am nevoie de toate datele aici, spre deosebire de cardul de mai jos, care este, de asemenea, pentru minutele de nefuncționare, dar folosește doar datele despre locația fabricii.
Deoarece primul pas este simplu, să trecem la pasul doi.
Al doilea pas începe cu funcția .
Această funcție face referire la variabila pe care am creat-o la pasul 1 și la minutele de nefuncționare .
Se asigură că apare o valoare prin adunarea funcțiilor și . De asemenea, vreau ca rezultatele să fie mai mari sau egale cu zero. Acest lucru se datorează faptului că setul de date utilizat pentru acest raport a inclus unele combinații în care fie fabrica, fie vânzătorul este necompletat. Există, de asemenea, intrări în care valoarea este zero.
Al treilea pas implică încă un set de variabile, începând cu valoarea pentru N.
Aici, N este egal cu 4 pentru că vreau să apară primele patru și cele de jos.
De asemenea, stabilește un prefix pentru Top & N, plus o liniuță.
Când sunt puse împreună, vrea pur și simplu să arate „Top 4 -“, care este modul în care cardul corespunzător începe înainte de a enumera rezultatele așteptate.
Acum, să trecem la pasul al patrulea. Aici încep să vin cu rezultatele așteptate.
Unii s-ar gândi să folosească în acest caz. La urma urmei, încerc să clasific intrările și să vin cu cele mai bune rezultate. Cu toate acestea, Antriksh și cu mine am simțit că ar fi mai potrivit în acest caz, deoarece avem nevoie doar de primii patru în ordinea ASC .
Apoi, am folosit funcția , care folosește datele privind locația plantei.
De asemenea, setează formatul pentru cum vreau să apară lista. De aceea, veți vedea că are o bară oblică inversă și o virgulă, plus ghilimele pentru a semnifica spațiile. Este, de asemenea, setat la ordinea ASC , așa că dacă mă întorc la fișierul PBIX, veți vedea lista celor mai bune patru cu bare oblice inverse și virgule între rezultate.
The fifth step of the measure starts by replacing the last comma on the list with an And.
When you go back to the slide, you’ll see that the last entry does have an “and” before the vendor and plant location.
This is what’s being accomplished in step five. It’s creating a list and using the function for the LastCommaPosition.
Notice that this says that N is greater than 2. This means that the substitution happens after the 3rd string.
The sixth step will look familiar because it basically copies the same thing I did on top to start the list with “Top 4 -“.
The only difference here is that I want it to show up as “Bottom 4 -” instead of “Top 4 -“.
The part I previously discussed about using is once again used here at the bottom, but now I’m calling the variable BottomData instead of TopData. Again, this part inserts the backslash and comma in between the names of the plants and vendors.
When we look back at Antriksh’s original measure, this is also the same part where he used ASC, which resulted in the list coming out not as I expected. That’s why I’m using DESC here instead.
So basically, at this point onwards, most of it is just copied and pasted from the earlier parts of the measure. I’m just replacing the word “Top” with “Bottom” in most cases.
For step 8, I want to change the last comma with the word And.
The ninth step wraps up this measure.
This uses the function with the number 10. This ensures that the Top 4 and the Bottom 4 are showing up on separate lines. Think about it as the return key on your keyboard. It makes you go down to the next row so that the top and bottom four don’t show up on a single line.
Verifying The Results
Antriksh and I were able to trim down the original 90 plus rows of DAX into 41 lines. However, 41 lines might still be a lot for some users. Breaking down that measure the way we did was a great way to understand why the measure had to be written that way.
Acum că am explicat despre ce a fost fiecare pas, este timpul să verific dacă măsura respectivă face într-adevăr ceea ce ar trebui să facă. Să mergem la pagina Clasamente și să verificăm rezultatele cu cealaltă parte a raportului.
Voi începe cu Plantele/Vânzătorii după minutele de întrerupere .
Aceasta arată primele patru ca Linktype în New Britain, Flashpoint în Frazer, Quinu în Twin Rocks și Layo în Henning. În ceea ce privește ultimele patru, arată că Wikido din Middletown este cel mai rău în general.
Acum, mă voi îndrepta către pagina pentru Furnizori și plante combinate pentru a vedea dacă rezultatele se vor potrivi.
Cu coloana Rank By Downtime Minute sortată de sus în jos, arată rezultatul corect pentru primele patru.
Unii dintre voi s-ar putea întreba, totuși, de ce New Britain apare pe locul al doilea pe această listă, când apare în partea de sus a paginii de clasament .
Observați că clasamentul arată trei intrări în top 1. Acestea au fost clasate folosind RANKX.
Cu toate acestea, dacă te uiți la coloana pentru Minute de pauză , arată că New Britain arată 0, în timp ce Frazer și Twin Rocks arată fiecare 1. De aceea, pe cardul din pagina Clasamente, New Britain a ieșit totuși în fruntea Frazer și Twin Rocks. chiar dacă toți erau clasați pe primul loc.
Acum, să verificăm dacă cele patru de jos sunt corecte. Doar sortați rangul după minutele de întrerupere în ordine descrescătoare.
După cum puteți vedea, arată Middletown, Waldoboro, Barling și Chesaning ca fiind primii patru pe card. Aceasta înseamnă că măsura pentru plante/vânzători după minute de oprire este corectă.
Acum, să ne uităm la cardul Plants By Downtime Minutes .
Acest lucru arată că primele patru sunt Reading, Middletown, Waldoboro și Clarksville. Ultimele patru sunt Riverside, Charles City, Twin Rocks și Chesaning.
Pentru a verifica aceste rezultate, voi verifica pe pagina Plante și voi vedea dacă rezultatele se potrivesc. Cea mai mare diferență aici este că cardul pe care l-am verificat anterior se baza atât pe datele Plantelor, cât și pe cele ale vânzătorilor, în timp ce acesta se uită doar la datele Plants.
Când sortăm rangul după Minute de inactivitate de sus în jos, arată că primele patru sunt Reading, Middletown, Waldoboro și Clarksville.
Acum, să inversăm clasamentul de data aceasta pentru a vedea dacă cei patru de jos se potrivesc. Veți vedea că din cele 30 de plante de pe lista noastră, Riverside, Charles City, Twin Rocks și Chesaning ajung pe primele locuri.
Aceasta înseamnă că vedem rezultatele corecte pentru plante.
De data aceasta, să ne uităm la un card care clasifică Furnizori după defecte .
Voi merge la pagina Vânzători de data aceasta pentru a vedea dacă Dablist este cel mai bun furnizor și Yombu este cel mai rău pe baza defectelor.
Când sortăm vânzătorii de la cel mai bun la cel mai rău, se pare că primii patru se potrivesc cu cardul de pe pagina Clasamente .
Permiteți-mi să schimb rangul de la cel mai rău la cel mai bun și să văd dacă și cei patru de jos se potrivesc.
Veți vedea că Yombu este într-adevăr cel mai rău, împreună cu celelalte trei incluse în lista de jos patru de pe card.
Dax Measure Analysis: Aplicarea Measure Branching
Analiza măsurătorii DAX pe care am făcut-o mai devreme s-a uitat doar la măsura din spatele Plantelor/Vânzătorilor în funcție de minutele de întrerupere . Dar cum am lucrat la măsurile pentru celelalte carduri? Aici intervine ramificarea măsurătorilor .
Ramificarea măsurilor implică utilizarea unei măsuri existente pentru a obține alte rezultate.
În acest raport, pur și simplu am copiat și lipit măsura despre care am discutat mai devreme și am schimbat unele dintre elemente pentru a se potrivi cu ceea ce am nevoie.
Numele măsurii este, evident, primul lucru pe care îl voi schimba. Dar mai mult decât atât, trebuie să schimb și datele la care fac referire. De exemplu, am folosit atât locația fabricii , cât și datele despre furnizor pentru măsura noastră inițială.
Dar dacă voi folosi aceeași măsură pentru Plants By Downtime Minutes , atunci ar trebui să elimin datele furnizorului și să mă concentrez doar pe Locația plantei.
Va trebui să schimb asta pentru toate celelalte părți ale aceleiași măsuri care se referă și la ambele seturi de date, ca atunci când am folosit CONCATENATEX .
Același lucru este valabil și pentru Minutele de nefuncționare . Dacă ar fi să lucrez pe un card care se uită la Minute medii de întrerupere sau defecte , atunci tot ce trebuie să fac este să schimb această parte.
În ceea ce privește partea în care scrie „@DowntimeMins” în măsură, nu ar strica să o mențin așa, chiar dacă mă refer la defectele mele sau la minutele mele de inactivitate medie.
Dar dacă ești genul căruia îi place să păstreze lucrurile într-o anumită ordine, ai putea să intri și să schimbi și asta. Nu uitați că dacă schimbați acest lucru, va trebui să îl schimbați pe tot parcursul paginii. Asta înseamnă să depuneți un efort suplimentar pentru aceleași rezultate.
Vă puteți imagina cât timp am economisit utilizând ramificarea măsurării . Făcând acest lucru înseamnă că nu va trebui să continui să creez noi măsuri pentru fiecare parte a raportului la care lucrez. Trebuie doar să modific măsura existentă pe baza rezultatelor pe care vreau să le văd, reducându-mi foarte mult timpul de elaborare a raportului.
Pentru a vă arăta cum am făcut asta, să ne uităm la Vendors By Downtime Minutes .
Când voi ridica măsura, veți vedea că are aceleași 41 de rânduri ca Plante/Vânzători după minute de întrerupere .
Cu toate acestea, la pasul 1, am făcut referire doar la datele furnizorului și am eliminat Locația fabricii.
Am schimbat datele și în alte locuri unde este aplicabil.
Am păstrat minutele de nefuncționare, deoarece pe asta mă bazez rezultatele.
Deci, acestea sunt remedieri rapide ale măsurii, astfel încât aceasta să poată fi aplicată și în celelalte zone ale raportului.
Permiteți-mi să vă arăt un alt exemplu aici. De data aceasta, să ne uităm la Vânzători după defecte .
Încă o dată, ne uităm doar la vânzător aici.
Ceea ce am schimbat aici este referința la Minute de timp de nefuncționare . În schimb, am folosit Defects .
De asemenea, m-am asigurat că celelalte rânduri încă folosesc datele pentru Vendor.
Măsuri DAX în LuckyTemplates Folosind ramificarea măsurilor
Implementarea grupurilor de măsurători DAX în rapoartele dvs. – O revizuire a modelării LuckyTemplates
Extragerea unor perspective unice în LuckyTemplates folosind măsurile DAX de clasare
Concluzie
A fost o lucrare DAX puternică a lui Antriksh. Cu siguranță mi-a plăcut să lucrez cu el , să-l ramific și să îl aplic în diferitele părți ale raportului meu .
Analiza aprofundată a măsurătorilor DAX pe care am făcut-o a fost, de asemenea, o modalitate excelentă de a înțelege fiecare aspect al procesului. Lucrul la o măsură lungă poate părea descurajantă la început, dar o analiză amănunțită a măsurii DAX ca aceasta poate ajuta la rezolvarea lucrurilor.
Lucrul la această pagină a subliniat, de asemenea, importanța de a avea o comunitate de colaborare precum cea pe care o avem aici la LuckyTemplates. Este grozav că toată lumea are ocazia să lucreze cu oameni precum Antriksh, precum și cu alți membri și experți care au, de asemenea, câteva sfaturi și trucuri proprii.
Toate cele bune,
Jarrett
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