Ce este Sinele în Python: Exemple din lumea reală
Ce este Sinele în Python: Exemple din lumea reală
Vă voi arăta cum să faceți față unui tabel valutar în care unele zile nu sunt luate în considerare . Aceste zile pot fi weekend sau sărbători.
Aceasta poate să nu fie o problemă uneori, mai ales dacă afacerea pentru care pregătiți un raport nu se deschide în weekend și sărbători. Dar dacă o fac, s-ar putea să ajungi cu totaluri incorecte la sfârșitul lunii.
Știind cum să tratați datele lipsă vă va permite să comparați corect vânzările dacă sunt utilizate mai multe valute. Pot exista zile, de exemplu, în care credeți că vânzările totale sunt în scădere, deoarece valoarea monedei a scăzut. În realitate, vânzările totale pot fi scăzute, deoarece nu contabilizați toate zilele din perioada dată.
În acest exemplu, voi lua ultimul curs valutar disponibil și îl voi folosi la datele lipsă pentru a umple spațiul. Puteți urmări videoclipul complet al acestui tutorial în partea de jos a acestui blog.
Cuprins
Date date din tabelul ratelor valutare
Mai jos este tabelul cu fapte, care este tabelul Rate valutare . Acesta folosește euro ca monedă de bază.
Afișează date din ianuarie 2016 cu Crossrate asociat în fiecare zi.
Totul arată bine de la 1 ianuarie. Dar când am ajuns pe 26, următoarea dată de pe rândul următor este 29.
Aceasta înseamnă că îmi lipsesc datele din 27 și 28 .
Rețineți că unii ar putea prefera să folosească Power Query pentru a gestiona această situație. Deocamdată, vreau doar să mă concentrez pe DAX.
Acum să presupunem că vreau să folosesc 0.920 pe 27 și 28. Acesta este Crossrate folosit pe 26. Cum fac asta folosind DAX?
Unii ar putea spune că acest lucru se poate face cu ușurință în Excel. Ei pot avea dreptate într-o oarecare măsură.
Dar avantajul pe care LuckyTemplates îl are față de Excel este capacitatea de a se scufunda în continuare în date din diferite perspective, fără a fi nevoie să refaceți sau să schimbați nimic, ceea ce s-ar întâmpla cel mai probabil în Excel.
Vă voi arăta toate măsurile pe care trebuie să le luați în considerare, precum și diferiții pași pe care i-aș face pentru a acoperi orice date lipsă din tabelele Rate valutare.
Măsura cursului valutar
Mai întâi, permiteți-mi să vă arăt masa mea principală. Am deja câteva date aici, inclusiv data și cursul valutar e pentru euro .
În acest caz, cursul valutar folosește pur și simplu funcția .
Deoarece am de-a face cu un curs valutar pe zi, este ușor de utilizat funcții precum SUM , , sau orice altceva similar. Datele care apar pe rând ar avea sens complet.
Singura problemă aici este ce se va întâmpla cu Total .
Aceasta arată că Totalul este 26.693, ceea ce nu are deloc sens. Este literalmente doar însumând ratele valutare ale tuturor zilelor. Din această cauză, ar trebui să găsesc o modalitate de a repeta de-a lungul zilelor pentru a obține totalul real .
Așa că mă voi uita la măsura mea Currency Data pentru a încerca să rezolv asta.
Măsurarea datei curente
Personal, fac întotdeauna o măsură a Datei curente care aduce orice dată la care mă aflu în contextul Filtrului curent .
De asemenea, prefer să folosesc . În acest exemplu, utilizarea funcției MAX îmi va da 1/31 la Total, ceea ce ar avea mai mult sens, deoarece aceasta este ultima dată dată.
Data ultimei monede
Tabelul meu conține și data ultimei monede . Obțin acest lucru utilizând funcția și făcând referire la tabelele FactCurrencyRates și Date .
Deși aceasta arată funcția LASTDATE , este și posibil să utilizați MAX . Aceasta folosește aceeași premisă ca și tabelul Date curente , dar oferă un anumit moment în timp în raport cu tabelul Rate valutare .
Derulând în jos, văd că nu există date pentru zilele de 27 și 28 ale lunii.
Pentru a rezolva acele zile lipsă, voi vorbi despre coloana Data ultimei monede raportate .
Data ultimei monede raportate
Data ultimei monede raportate va determina cursul de utilizat pentru zilele lipsă. Conceptul este că ultimul curs valutar raportat va fi același curs pentru a fi utilizat în zilele în care lipsesc date .
Deoarece nu există date atât pentru data de 27, cât și pentru data de 28, aceasta înseamnă că datele pentru data de 26 vor fi aplicate.
Exemplul nostru arată, de asemenea, că ultima dată a monedei raportate poate să nu fie neapărat ziua anterioară. Deoarece nu există nici date pentru data de 27, ar trebui totuși să mă întorc la data de 26 pentru a-mi da seama ce tarif să folosesc pe data de 28.
Înainte de a trece la măsura care arată cum s-a făcut acest lucru, amintiți-vă că totul aici se întâmplă în contextul modului în care funcționează un filtru. Trebuie să mă gândesc la ce date specifice vreau să mă concentrez.
Deoarece sunt pe rândul zilei de 27 a lunii, vreau să elimin orice referință de filtru și să mă concentrez pe data de 26. Aceasta înseamnă aducerea sau deoarece acestea îmi permit să modific filtrul aplicat. Nu vă confundați cu funcția , care poate restricționa datele și mai mult.
Așadar, iată măsura pe care am folosit-o pentru data ultimei monede raportate . Am folosit CALCULATE pentru acest exemplu.
Întotdeauna încerc să găsesc cât mai multe variabile. Trebuie doar să mă uit la domeniul de aplicare al fiecărei variabile, deoarece variabilele preiau valoarea locului în care sunt definite .
În acest caz, voi folosi Data curentă , deoarece știu că această variabilă nu se va schimba indiferent de funcțiile pe care le folosesc.
Rețineți că nu este necesar să găsiți această variabilă. Este doar un obicei care îmi permite să verific domeniul de aplicare al fiecărei variabile pe care o voi folosi în măsură.
Revenind la măsură, cum îi spun DAX să elimine filtrele pentru data curentă și să-mi ofere data ultimei monede înregistrate ?
În primul rând, voi folosi FILTER pentru tabelul (DimDate).
Funcția ALL elimină filtrele aplicate, deschizând tabelul DimDate pe care să îl folosesc.
Apoi, folosesc MIN pentru a-i spune DAX că vreau să folosesc partea din coloana DimDate care este egală fie cu Data ultimei monede, fie cu Data curentă .
Ce se întâmplă dacă data ultimei monede și data curentă nu sunt identice? Apoi folosiți întotdeauna Data ultimei monede .
Iată de ce între 1/26 și 1/27, măsura va lua 1/26. De aici, data potrivită va fi aplicată tabelului Rate valutare pentru a obține ultimul curs valutar raportat .
Ultimul curs valutar raportat
Permiteți-mi să trageți ultimul curs valutar raportat în tabelul meu.
Veți vedea că zilele de 27 și 28 folosesc acum 0,9200 ca curs valutar , deoarece este același curs folosit pe 26.
Mai jos este măsura pe care am folosit-o pentru ultimul curs valutar raportat .
Din nou, încep întotdeauna prin definirea unor variabile. În acest caz, folosesc Moneda selectată și Data ultimei monede raportate .
Voi folosi Currency Selected deoarece am de-a face cu diferite valute aici. Acesta este motivul pentru care trebuie să precizez ce monedă specifică este evaluată la un moment dat.
În acest exemplu, diferitele valute pot fi accesate folosind slicerul dat.
Desigur, nu trebuie să fie un feliător care este în uz. Poate proveni și dintr-o masă sau dintr-un vizual. Ceea ce contează este că există un filtru care vă permite să vedeți datele în diferite valute.
În ceea ce privește LastReportedDate , este același lucru cu Ultima Monedă Raportată Data despre care am vorbit mai devreme.
Pentru variabila Rate , am folosit funcția .
Aduc rata încrucișată din tabelul de fapte pentru CurrencyRates .
Deoarece am o mulțime de monede într-un singur tabel, nu pot folosi doar data ca un singur punct de referință. Trebuie să fie o combinație între moneda potrivită și data potrivită.
Acesta este motivul pentru care mă refer și la simbolul monedei egal cu Currency Selected .
De asemenea, fac referire la LastReportedDate .
De aceea, uitându-se la tabel, arată a 26-a de trei ori înainte de a sări pe a 29-a.
Vânzări convertite utilizând ultima rată raportată versus folosind data curentă
Sunt acum la final, care implică conversia vânzărilor utilizând ultimul curs valutar raportat .
Practic, măsura ia doar această Rată a ultimului raport valutar și o înmulțește cu Măsura de bază , care în acest caz este vânzările totale .
Odată ce măsura respectivă este aplicată, veți vedea că aceste două date ajung să fie goale. Aceasta înseamnă că nu există vânzări la aceste date .
De asemenea, se dovedește că există vânzări pe 27 și 28 (unde anterior nu existau date valutare).
Din moment ce am făcut referire la ultimul curs valutar raportat , aceste numere au fost convertite în euro.
De data aceasta, vă voi arăta vânzările convertite folosind data curentă.
De data aceasta, se uită doar la Data curentă , în loc să ia în considerare ultima dată raportată .
Odată ce am pus acea măsură în tabelul din altă coloană, arată doar spații goale pe 27 și 28.
Comparând vânzările convertite între utilizarea Ratei ultimului raport și utilizarea Datei curente , Totalul arată o diferență uriașă.
În cazul în care vânzările convertite utilizând ultima dată raportată arată un total de peste 4 milioane, vânzările convertite utilizând data curentă arată doar 3,8 milioane în total.
De aceea este foarte important să înțelegeți ce variabilă utilizați. Dacă te uiți la Total, se pare că euro a primit o mare lovitură, trăgând valoarea în jos. Dar, în realitate, scăderea totală se datorează datelor necontabilizate din tabelul Rate valutare.
Curățarea datelor
Acum că am completat datele lipsă, voi curăța tabelul.
Tocmai am adăugat aici o coloană Formatted Sales care arată clar cifrele în euro.
De când am trecut prin atât de mulți pași, am acumulat un număr destul de mare de coloane aici.
Dar nu toate acestea sunt necesare pentru prezentarea datelor. Așa că voi merge mai departe și voi scăpa de acestea eliminându-le din panoul Valori .
Odată ce acestea au fost eliminate, ajung cu un tabel mai curat, cu doar datele necesare afișate.
Rețineți că pot schimba în continuare moneda folosind slicer-ul din dreapta.
Pentru a-mi face tabelul mai complet, voi adăuga toate celelalte monede dezactivând opțiunea Selectare unică .
Aceasta va afișa numerele mele în USD, euro și lire sterline.
De asemenea, văd niște spații goale aici reprezentând zilele în care nu există vânzări.
Le voi elimina pe acestea dezactivând „ Afișați elementele fără date ”.
Acum, tabelul conține doar rânduri care reprezintă datele cu vânzări.
Acest lucru îmi oferă o comparație bună a numerelor pe baza diferitelor valute.
Totalurile arată, de asemenea, numerele corecte, deoarece am folosit pentru a itera fiecare dintre rânduri.
Este foarte important. Dacă nu utilizați SUMX , va ajunge doar să adăugați toate coloanele fără să vă gândiți dacă este utilizat cursul valutar corect.
Crearea unui tabel de conversie valutară în LuckyTemplates
Logica cu mai multe monede în LuckyTemplates – O LOOKUPVALUE Exemplu
de format de monede în LuckyTemplates folosind DAX
Concluzie
După cum am menționat mai devreme, aceasta nu este neapărat singura modalitate de a trata datele lipsă. De fapt, există o mulțime de alte moduri de a face acest lucru.
În unele cazuri, de exemplu, puteți utiliza datele de la începutul lunii și puteți aplica același număr în întregul tabel de cursuri valutare. Voi discuta despre aceste alte abordări în viitor pe bloguri separate.
Deocamdată, am folosit această abordare, deoarece folosirea ultimei rate raportate este cea mai logică pentru mine. Cred că este cea mai intuitivă opțiune.
Un lucru pe care aș dori să subliniez, de asemenea, este necesitatea de a înțelege totul dintr-un context de filtru. Cum suprascriu filtrul? Cum aduc ultimele date raportate? Acestea vă vor ajuta să înțelegeți cum să obțineți numerele potrivite în cele din urmă.
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