Ce este Sinele în Python: Exemple din lumea reală
Ce este Sinele în Python: Exemple din lumea reală
Tabelul virtual LuckyTemplates este subiectul meu DAX preferat. Ele sunt cheia pentru a debloca întreaga putere a DAX. Tabelele virtuale sunt singurul tip de tabele din LuckyTemplates care sunt complet dinamice și există probleme care pot fi rezolvate doar prin aplicarea tehnicilor de tabele virtuale în cadrul măsurilor dvs. Puteți viziona videoclipul complet al acestui tutorial în partea de jos a acestui blog.
În acest tutorial, voi împărtăși cele mai bune 5 sfaturi și trucuri pe care le-am acumulat de-a lungul anilor care m-au ajutat cu adevărat să înțeleg și să depanez ce se întâmplă în mesele virtuale Power Bi.
Exemplul prin care voi trece astăzi este de pe și vine de la un membru pe nume Dave C, care lucrează în domeniul siguranței industriale. Dave a avut o serie de scoruri de siguranță și a vrut să le normalizeze astfel încât scorul maxim să fie 10 și apoi să vină dinamic cu al N-lea în acea listă.
Inițial, ne-am gândit să facem acest lucru printr-o măsură simplă , dar ulterior ne-am dat seama că multe dintre valorile lui normalizate au legături. De exemplu, dacă doriți al șaptelea element din listă, nu va fi un număr șapte într-un RANKX. Nu există o modalitate ușoară de a scoate asta dintr-o stare de filtru. Așa că ne-am hotărât asupra unei măsuri bazate , astfel încât să numără întotdeauna cel de-al n-lea număr.
Acest lucru este asemănător cu când trageți a șaptea carte dintr-un pachet, numărați șapte cărți, apoi răsturnați acel teanc de șapte, iar cartea de jos este cea pe care o doriți. Vom face echivalentul cu asta într-o măsură TOPN.
Cuprins
Sfat #1: Utilizați un instrument extern pentru a vizualiza tabelul virtual LuckyTemplates
Puteți utiliza DAX Studio sau Editorul tabelar. În acest exemplu, folosesc Editorul tabelar 3 (TE3). Este posibil din punct de vedere tehnic să faceți acest lucru folosind fila Modelare – Tabel nou, dar asta va crea tabele fizice în modelul dvs. de date. Va trebui să comutați manual între asta și editor și este doar un mod lent și dificil de a face acest lucru.
Când vedeți modul dinamic în care poate fi realizat printr-un instrument extern, veți vedea beneficiile.
Deci, în cadrul TE3, creăm o nouă interogare DAX. Putem lua măsura noastră inițială și copia aceasta în interogarea noastră DAX.
Dacă vă amintiți, interogările DAX încep întotdeauna cu EVALUATE . Vom primi o eroare inițial, deoarece interogările DAX returnează tabele . Aceasta a fost o măsură cu ultimele două variabile care sunt scalare. Ceea ce putem face aici este să schimbăm valoarea returnată , care este următorul meu sfat.
Sfat #2: Depanați-vă tabelul virtual LuckyTemplates în părți folosind variabile
Puteți depana tabelele virtuale în același mod ca și cu măsurile - bucată cu bucată, schimbând valoarea returnată. Să începem cu primul tabel virtual, vEvalTable . Pur și simplu înlocuim valoarea RETURN (finală) cu prima noastră variabilă (VAR). Și puteți vedea că eroarea dispare deoarece interogarea DAX primește acum un tabel.
În vEvalTable, luăm datele originale, care sunt scorurile de siguranță, și le normalizăm și adăugăm acea coloană Valoare normalizată la tabelul virtual. Avem indicele, valoarea regiunii și valoarea normalizată. Putem sorta aceste valori în sus sau în jos și putem filtra și valorile.
Acest lucru ne oferă exact ceea ce ne așteptam. Returnează 50 de rânduri, care este setul complet de date. Toate acestea merg bine, așa că haideți să coborâm și să explorăm următorul tabel, care este vTableTopN . În acest tabel, luăm TOPN folosind a n-a valoare a glisorului articolului. În acest exemplu, avem a șaptea valoare a tabelului virtual de mai sus (vEvalTable) și luăm acel TOPN pe baza valorii normalizate în ordine descrescătoare.
Deci, când ne schimbăm funcția RETURN în asta, aceasta cade și nu primim nimic. Să aruncăm o privire la motivul pentru că acesta este un concept cu adevărat important pentru depanare și înțelegere a tabelelor virtuale.
Dacă ne uităm la formulă, avem a Nth Item Slider Value ca principal suspect aici. Întorcându-ne la LuckyTemplates, putem vedea că practic este doar recoltarea numărului șapte. Rețineți că glisoarele există în contextul unei pagini .
Și astfel, în acest caz, când ne uităm la depanarea acelui tabel din context, acea valoare selectată nu are context în jurul ei . Nu are nimic în ceea ce privește capacitatea de a trage acel număr. Obținem un TOPN, dar nu știm care este N în TOPN, deoarece valoarea selectată returnează un gol.
Cum ne descurcăm cu asta? Să ne uităm la măsura de valoare selectată. De cele mai multe ori, acordăm întotdeauna atenție primului parametru din , dar există un al doilea parametru, care este un alternativ. Asta ne duce la al treilea sfat al meu.
Sfat #3: Utilizați parametrul alternativ în SELECTEDVALUE
Ceea ce s-a întâmplat aici este că a scos golul ca alternativă. Dar ceea ce vrem să facem (în scopuri de depanare) este că vrem să punem o valoare reală aici . Deci, punem numărul 7 și îl salvăm.
Acum avem niște valori. Returnează șapte rânduri, care este exact ceea ce ar trebui din cauza acelei valori TOPN de șapte.
Să continuăm până la următorul tabel virtual, care este vTableNthItem . Avem acel teanc de șapte cărți, iar masa asta practic îl întoarce. Am fost în ordine descrescătoare în tabelul anterior, iar acum suntem în ordine crescătoare.
Dacă luăm și copiem acest lucru în secțiunea RETURN, obținem rezultatele. Este interesant că nu revine niciun rând. Se întorc trei rânduri pentru că acestea trei sunt la egalitate. Acesta este exact motivul pentru care folosim TOPN mai degrabă decât RANKX, în acest caz.
Acum să mergem la Rezultat . Dacă copiem rezultatul VAR în secțiunea RETURN, acesta ajunge la al patrulea sfat.
Sfat #4: Folosiți { } pentru a transforma scalari în tabele
În cadrul formulei, luăm valoarea maximă ( ) acelui vTableNthItem și returnăm valoarea normalizată. Acesta poate fi , poate fi , poate fi . Este doar un agregator care returnează acea valoare în acel tabel. Și așadar, dacă copiem acest lucru, ne va da o eroare, deoarece acesta este acum un scalar.
Dar acesta este al patrulea sfat al meu, care este în contextul depanării. Ce poți face este să adaugi doar parantezele . Procedând astfel, se transformă acel scalar într-un tabel.
Și apoi, ceea ce avem aici este doar o verificare finală a erorilor, adică dacă se dovedește că tabelul de evaluare este mai mic decât numărul de rânduri, va returna date insuficiente. Dar știm în acest caz că setul nostru de date este suficient de mare. Cu toate acestea, putem testa asta tastând Final . Din nou, deoarece acesta este un scaler, avem nevoie și de paranteze și obținem aceeași valoare aici.
Am aprofundat și am depanat acest tabel virtual și am folosit valoarea alternativă din SELECTEDVALUE pentru a nu cădea în afara contextului. Acum vreau doar să vă arăt un sfat suplimentar pe care l-am găsit cu adevărat util.
Sfat #5: Folosiți CONCATENATEX/UNICHAR pentru a transforma un tabel într-un scalar
În contextul efectuării depanării, veți dori să vedeți în LuckyTemplates cum arată acel tabel. Regula generală este că o măsură poate returna doar un scalar, nu un tabel. Dar, există un truc pe care ți-o voi arăta și care îi permite să returneze aproape o masă.
Să aruncăm o privire la această măsură, care este Visualized Virtual Table , și avem aici toate tabelele virtuale pe care le aveam inițial. De exemplu, vrem să afișăm, să zicem pe prima pagină a raportului, vTableTopN.
Puteți utiliza această funcție De fapt, puteți lua acel nume de tabel virtual (vTableTopN) și puteți lua valorile din acel tabel și le puteți concatena. Puteți crea ceva care arată practic ca o masă virtuală.
Dacă luăm această măsură, trebuie să revenim la LuckyTemplates și să o plasăm într-o măsură de card. De obicei, tabelul dă o eroare, dar prin CONCATENATEX a transformat acel tabel într-un scaler. Puteți vedea că este destul de primitiv, dar revine exact ceea ce ne așteptăm și o face într-un mod dinamic.
Este o modalitate de a împinge un tabel într-o măsură și de a arăta asta în raportul dvs. Este un truc foarte util de depanare. Acesta va oferi un format bun într-o valoare a cardului pe care îl puteți utiliza într-un raport.
Stăpânește tabele virtuale în LuckyTemplates folosind
tabele virtuale DAX în interiorul funcțiilor de iterare în LuckyTemplates – Concepte DAX
Tabele în LuckyTemplates: tipuri și distincții
Concluzie
Sperăm că acest tutorial vă oferă ceva de gândit în ceea ce privește lucrul cu o masă virtuală LuckyTemplates. Acestea sunt câteva sfaturi și trucuri suplimentare pentru a înțelege ce se întâmplă în mesele dvs. virtuale. Sper că ați găsit asta de ajutor.
Vizitați site- ul nostru pentru mai multe tutoriale LuckyTemplates și consultați linkurile de mai jos pentru mai mult conținut similar.
Toate cele bune!
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