Ce este Sinele în Python: Exemple din lumea reală
Ce este Sinele în Python: Exemple din lumea reală
Vă voi arăta cum să utilizați funcția de compensare în LuckyTemplates . Este unul dintre cele mai dinamice instrumente pe care le puteți folosi în special în tabelele dvs. de date.
Odată ce stăpâniți cum să o aplicați în proiectele dvs. de informații despre timp, puteți obține informații mai aprofundate pe care nu le veți obține folosind nicio altă abordare. Puteți urmări videoclipul complet al acestui tutorial în partea de jos a acestui blog.
Cuprins
Înțelegerea mecanicii funcției de offset
Voi începe prin a vă arăta mecanica funcției de offset.
Compensațiile arată diferența dintre data de astăzi și celelalte date din datele dvs.
După cum puteți vedea în tabelul meu de date de mai jos, m-am concentrat pe Trimestru și An , astfel încât să pot vedea mișcarea reală a datelor.
Rândul violet arată perioada curentă . Rețineți că perioada curentă are întotdeauna o valoare de offset de 0 .
Deasupra, în galben, arată toate datele care vin din trecut . Veți vedea că cifrele de aici sunt fie 0, fie mai mici decât 0, reprezentate de datele negative .
Aceasta înseamnă că pentru datele din viitor , acestea vor arăta valori pozitive . În funcție de granularitatea coloanei, aceasta poate conține și un 0 .
Deci, ce face compensațiile puternice?
Decalajele pot fi numere secvențiale reprezentând diferența dintre diferitele date din tabel . Dar ceea ce face ca compensațiile să fie grozave este că nu au limite .
De exemplu, trimestrele vor fi de la 1 la 4, reprezentând cele 4 trimestre dintr-un an. Lunile durează de la 1 la 12, în timp ce săptămânile pot dura de la 1 la 52 sau 53, în funcție de ce an este. Dar odată ce ajung la ultimul număr, trebuie să o iau de la capăt.
Acesta nu este cazul compensațiilor. Când vine vorba de compensații, acestea vor afișa întotdeauna o poziție relativă față de data curentă și cealaltă dată la care se face referire .
Deci, de fiecare dată când tabelul de date este reîmprospătat, este actualizată și logica care face ca compensațiile să funcționeze. Aceasta înseamnă că o valoare actualizată va fi afișată și în tabelul de date.
Exemplu de coloană de compensare a săptămânii
Pentru a vă oferi o imagine mai clară a modului în care funcționează funcția de offset, vă voi da un exemplu despre cum este aplicată.
În datele mele eșantion, arată data de astăzi ca 24 aprilie 2020 .
Din nou, principiile de compensare afirmă că perioada curentă este reprezentată de 0, datele viitoare sunt reprezentate de valori pozitive și perioadele trecute sunt reprezentate de numere negative .
Am și un slicer pe pagina mea care conține valoarea WeekOffset. În prezent, arată toate valorile de la -53 la 0, cu 0 reprezentând săptămâna curentă .
24 aprilie (care este astăzi) cade în săptămâna 17 .
Acest tabel extins de date acoperă numai numerele săptămânii ISO . Aceasta înseamnă că săptămânile încep o zi de luni . Aceasta înseamnă, de asemenea, că o săptămână va conține întotdeauna 7 zile .
Dar există o mulțime de cerințe de săptămâna personalizate care nu urmează aceeași logică. Puteți afla mai multe despre aceste cazuri în diferite subiecte abordate în Forumul LuckyTemplates.
De asemenea, ați putea lua în considerare utilizarea Lună și An în loc de Săptămâna și Anul dacă acest lucru se aplică mai bine situației dvs.
Revenind la datele eșantionului, este posibil să fi observat că valorile WeekOffset sunt într-un interval de numere secvențiale perfecte .
Acest lucru se datorează faptului că au aceeași granularitate peste tot . Nu există valori duplicat și nu există valori lipsă.
Desigur, măsura Vânzărilor Totale utilizată aici este realizată în mod obișnuit, cu doar un obișnuit peste Vânzări pentru Cantitatea ori Prețul . Apoi, totul este agregat pentru a obține o valoare săptămânală.
Dar dacă vreau să văd doar ultimele 4 săptămâni de vânzări?
Trebuie doar să-mi schimb slicerul într-un interval de la -3 la 0 .
Acum, tabelul meu arată doar ultimele patru săptămâni de vânzări.
Deci, pe măsură ce mă deplasez în timp, tabelul meu de date este actualizat. Același lucru se întâmplă dacă noi rezultate de vânzări sunt încărcate în tabelul de fapte.
Utilizarea decalajelor în DAX
De data aceasta, vă voi arăta cum poate fi utilizată funcția de offset în măsurile DAX.
Am un tabel cu Săptămâna și Anul și Vânzările totale .
Deci, dacă vreau să calculez vânzările din săptămâna precedentă fără compensații, ar trebui mai întâi să extrag care este numărul CurrWeek , apoi să verific care este valoarea CurrYear .
Dacă trebuie să trec peste limita unui an, va trebui să calculez care este numărul al săptămânii pentru anul trecut.
De acolo, aș folosi SUMX ca funcție de iterare pe tabelul de date. De asemenea, ar trebui să verific dacă CurrWeek este săptămâna numărul 1 .
Dacă nu este săptămâna 1, trebuie doar să scad 1 din valoarea CurrWeek pentru CurrYear . După aceea, vânzările totale pot fi în sfârșit rezumate .
Privind tabelul de mai jos, puteți vedea acum că toate valorile sunt perfect agregate. Valorile care apar sub Vânzări totale sunt pur și simplu reportate în săptămâna următoare.
Chiar dacă trec de limita unui an din 2017 până în 2018, tiparul nu se rupe. Vânzările totale din ultima săptămână din 2017 sunt încă perfect calculate pentru săptămâna numărul 1 din 2018.
De data aceasta, voi face același calcul, dar cu compensarea tabelului de date aplicate.
Așa arată măsura atunci când folosesc offset-uri.
Deci, pentru a obține valoarea PrevWeek , trebuie doar să fac referire la WeekOffset selectat și să scad 1.
Apoi, voi folosi funcția pentru vânzări totale peste Datele în care WeekOffset este egal cu valoarea PrevWeek .
Privind rezultatele, rezultatele par a fi perfecte, chiar și în tranziția din 2017 în 2018.
Problema se află însă în Total . Evident, aceasta nu este valoarea corectă.
Iată cum voi remedia asta.
În primul rând, rețineți că coloana Săptămâna și Anul este în ordine crescătoare .
În schimb, voi schimba asta și voi sorta coloana în ordine descrescătoare , cu 2020 în partea de sus.
Deoarece nu există un context care provine din Săptămâna și Anul , acesta nu identifică valoarea de compensare a săptămânii curente, dar încă scădea 1 . Dar ceea ce pot face este să aplic un total cumulat pentru a ajusta totalul .
Iată cum va arăta măsura:
Începutul măsurii nu se schimbă. Este exact la fel ca măsura anterioară pe care am aplicat-o.
Dar, deoarece trebuie să folosesc un model similar cu totalurile cumulate, trebuie să folosesc funcția CALCULATE în Prima Săptămână peste Datele cu 1 scăzut din ea.
De asemenea, trebuie să identific valoarea MAX WeekOffset din datele ALLSELECTED și să scad una și din aceasta.
Apoi, voi folosi din nou funcția CALCULATE pentru Total Sales . Voi folosi funcția pentru a include TOATE Datele . Valoarea WeekOffset trebuie să fie mai mare sau egală cu FirstWeek și mai mică sau egală cu LastWeek .
Din nou, acesta urmează modelul de bază pentru totalurile cumulate.
Apoi pot trece la verificarea totalului general folosind modelele .
Așadar , DACĂ Săptămâna și Anul IȘINSCOPE , mă aștept ca rezultatele să arate vânzările LWS . Dar dacă nu este, mă aștept ca LWTotal să apară.
Deci, dacă mă întorc la tabelul meu, acum va afișa totalul corect.
Compensații pentru săptămâni specifice
Permiteți-mi să mă întorc la exemplul pe care l-am folosit mai devreme, unde am filtrat datele pentru a afișa doar ultimele patru săptămâni.
Dacă intru în măsură, pot veni cu aceleași rezultate folosind offset-uri. Cam așa ar arăta.
A trebuit doar să identific valoarea curentă WeekOffset pentru contextul care vine din rânduri.
Odată ce am asta, pot aplica funcția CALCULATE pe vânzările totale ale TOATE Datele în care WeekOffset este mai mare sau egal cu ThisWeek minus 3, sau mai mic sau egal cu valoarea pentru ThisWeek .
Aceasta returnează exact aceeași valoare ca exemplul pe care încerc să îl reproduc.
Totaluri cumulate bazate pe rezultatele medii lunare în LuckyTemplates
Normalizarea datelor în LuckyTemplates pentru diferite zile Rezultatele
Construiți un tabel cuprinzător de date în LuckyTemplates foarte rapid
Concluzie
Exemplele pe care vi le-am arătat mai sus demonstrează cât de dinamice sunt cu adevărat compensațiile. Le puteți folosi în filtre, felii și chiar în calcule DAX.
Compensațiile pot fi, de asemenea, utilizate în tabele de date extinse pentru săptămâni, luni, trimestre, ani și ani fiscali. Acestea oferă multă flexibilitate și vă pot ajuta cu ușurință să obțineți rezultatele dorite.
Continuați să vă jucați cu compensații și vedeți ce alte utilizări puteți avea pentru ele. De asemenea, puteți verifica pentru alte cazuri în care funcția de compensare s-a dovedit a fi utilă.
Toate cele bune,
Melissa
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