Obțineți valori LuckyTemplates din săptămâna anterioară folosind DAX și Power Query

Preluarea valorilor perioadei anterioare în LuckyTemplates este o sarcină comună, dar recuperarea valorilor săptămânii anterioare necesită o atenție specială. În acest tutorial, voi discuta două metode simple și versatile pentru obținerea valorilor LuckyTemplates din săptămâna anterioară, care pot fi completări utile la caseta de instrumente – una folosind DAX și cealaltă folosind Power Query. Puteți viziona videoclipul complet al acestui tutorial în partea de jos a acestui blog.

Acest tutorial a venit dintr-o întrebare pe care am primit-o de la un membru LuckyTemplates. Membrul a întrebat care este cel mai simplu mod de a determina numărul săptămânii precedente. Aceasta este o întrebare frecventă pe care o întâlnesc. Pare destul de simplu, dar cu cât te bagi mai mult în el, cu atât realizezi că sunt destul de multe de procesat.

Cuprins

Valorile din săptămâna anterioară în LuckyTemplates: problema

Dacă ne uităm la numărul săptămânii, avem 52 de săptămâni; înmulțiți asta cu șapte zile (o săptămână) și asta ajunge la 364. Deci, în fiecare an, există o zi în plus, iar apoi pentru anii bisecți, sunt două zile în plus. Aceste una sau două zile în plus ajung să provoace o mulțime de probleme.

Să creăm o măsură din tabelul nostru Date. Îl vom numi MAX Săptămâna # (număr). În această analiză, folosim tabelul cu date extinse LuckyTemplates; acesta are ISO Weeknumber , care este destul de util. Acum, să luăm MAX al numărului de săptămână ISO.

Obțineți valori LuckyTemplates din săptămâna anterioară folosind DAX și Power Query

Acum, să luăm o masă și să aruncăm Anul , precum și MAX Săptămâna noastră # . Acest set de date are 10 ani de date și vedem că primii doi ani au 52 de săptămâni. Apoi, avem doi ani cu 53 de săptămâni, trei ani cu 52 de săptămâni și apoi încă doi ani cu 53 și unul cu 52.

Obțineți valori LuckyTemplates din săptămâna anterioară folosind DAX și Power Query

Nu există cu adevărat un model perceptibil aici. Nu este ușor să te întorci și să prezici că într-un an vei avea 52 de săptămâni și în celălalt an vei avea 53.

Următorul lucru la care te-ai putea gândi dacă ești familiarizat cu funcțiile de inteligență temporală DAX este să folosești funcția DATEADD , care schimbă un interval de date înapoi cu o anumită perioadă. Face asta foarte bine pentru Zi, Lună, Trimestru și An, dar nu include Săptămâna, așa că trebuie să găsim o modalitate diferită de a face acest lucru.

În tabelul cu date extinse LuckyTemplates pe care îl folosim, Melissa (unul dintre experții LuckyTemplates) a inclus o funcție numită OFFSETS . Să ne aprofundăm în această funcție, deoarece este absolut esențială în rezolvarea acestui lucru dintr-o perspectivă DAX.

Privind perioada curentă (de exemplu 20 ianuarie, care este perioada creării acestui tutorial), ceea ce vedem este că offset este egal cu zero . Modul în care funcționează compensațiile este că, pentru perioada curentă, decalajul devine zero.

Săptămâna anterioară săptămânii curente este una negativă, două săptămâni înainte de săptămâna curentă este una negativă și așa mai departe. Și apoi, merge înainte de la numerele pozitive; săptămâna viitoare apoi primește unul, două săptămâni primește un doi etc.

Obțineți valori LuckyTemplates din săptămâna anterioară folosind DAX și Power Query

De fiecare dată când deschideți raportul referitor la data de astăzi, acesta calculează compensațiile. Acesta este incredibil de puternic și acum vă voi arăta cât de ușor este să rezolvați unele probleme dificile, cum ar fi acest număr LuckyTemplates din săptămâna anterioară, atunci când utilizați compensații.

Obținerea LuckyTemplates săptămâna anterioară folosind DAX

Să creăm o măsură nouă și să o numim Previous Wk # . Vom începe cu o variabilă ( SelWkOffset ), unde vom face doar o SELECTEDVALUE a WeekOffset . Deci, în rândul curent, va desena acel WeekOffset și îl va pune în variabila noastră.

Următoarea variabilă va fi Rezultat . Acesta este rezultatul final pe care îl dorim și vom folosi CALCULATE pentru că vom schimba contextul.

Apoi, vrem numărul de săptămână MAX ISO și acesta va fi supus acestor condiții de filtrare. Deci, vom elimina toate filtrele din tabelul Date și vom folosi ALL aici. Dacă am avea un slicer de dată, s-ar putea să dorim să folosim ALLSELECTED , dar deocamdată nu avem, așa că vom folosi ALL pentru a elimina filtrul din acel tabel Date.

Și apoi, vom spune că WeekOffset va fi egal cu SelWkOffset minus unu . Aici OFFSET-urile devin atât de puternice. Nu puteți folosi Numărul Săptămânii minus unu pentru că se resetează în fiecare an. Dar, deoarece TOATE OFFSET-urile sunt secvențiale, le puteți trata așa cum ați trata găsirea anului precedent și doar scăzând câte unul pentru fiecare an anterior. Și astfel, acest offset funcționează la fel cum ar face un număr consecutiv.

Acum putem să luăm și să închidem acea condiție a filtrului, să putem opri CALCULATE și doar RETURNA rezultatul nostru .

Obțineți valori LuckyTemplates din săptămâna anterioară folosind DAX și Power Query

Acum, să vedem cum funcționează această măsură. În tabelul de mai jos, putem vedea că face exact ceea ce am sperat. În săptămâna 52 pentru perioada unu din anul următor, săptămâna anterioară este 52. Și apoi, face un pas înapoi în fiecare perioadă și așa mai departe.

Obțineți valori LuckyTemplates din săptămâna anterioară folosind DAX și Power Query

Acum, ce faci în cazurile în care nu ai un offset?

Să presupunem că lucrați cu un tabel de date corporative care provine din depozitul dvs. de date și care nu include aceste compensații. Există o tehnică pe care vreau să ți-o arăt în Power Query. Prima dată când l-am văzut a fost într-o intrare de blog a lui Imke Feldmann.

Această abordare funcționează foarte bine pentru orice situație în care puteți comanda tabelul în ordine crescătoare și nu trebuie să aibă un offset. Nu trebuie să aibă nici măcar un câmp de dată. Ar putea fi un tip complet diferit de masă. Atâta timp cât este sortabil în ordine crescătoare, puteți folosi această tehnică.

Deci, să facem referință la acest tabel Date brute și îl vom numi Date . Apoi, ne asigurăm că sortăm acest lucru în ordine crescătoare .

Obțineți valori LuckyTemplates din săptămâna anterioară folosind DAX și Power Query

În continuare, vrem să grupăm după săptămână . Motivul pentru aceasta este că vom adăuga două coloane de index. Când adăugăm acele coloane de index, vrem ca acestea să fie la granularitatea săptămânii , nu la granularitatea zilei.

Obțineți valori LuckyTemplates din săptămâna anterioară folosind DAX și Power Query

Apoi, dorim să adăugăm acele coloane de index. Lucrul important aici este că primul index pe care îl vom adăuga va fi un index bazat pe 0. Și apoi, vom adăuga un al doilea indice care este un indice bazat pe 1.

Obțineți valori LuckyTemplates din săptămâna anterioară folosind DAX și Power Query

Apoi, vom lua această coloană și vom îmbina un tabel în sine. Îl vom îmbina pe baza celor două coloane de index diferite. Asta ne va oferi o schimbare în rânduri.

Deci, dacă luăm asta și îmbinăm primul cu indexul bazat pe 0 cu indexul bazat pe 1, se potrivește cu 521 la 522 de rânduri. Este exact ceea ce ne-am aștepta, deoarece cel de-al doilea tabel nu va ridica indicele zero, deoarece începe la unu.

Obțineți valori LuckyTemplates din săptămâna anterioară folosind DAX și Power Query

După aceea, vom extinde acest lucru în mod corespunzător, folosind doar ISO Weeknumber.

Obțineți valori LuckyTemplates din săptămâna anterioară folosind DAX și Power Query

Asta ne dă numărul săptămânii anterioare. Și acum, ne vom extinde gruparea inițială și vom elimina câmpul WeekEnding și numărul ISO original al săptămânii, astfel încât să nu dublăm.

Obțineți valori LuckyTemplates din săptămâna anterioară folosind DAX și Power Query

Dacă punem asta într-un tabel, puteți vedea că sunt exact aceleași rezultate ca folosind tehnica DAX. Funcționează exact așa cum a făcut măsura noastră DAX, dar în acest caz, nu a fost nevoie să folosim compensațiile.

Obțineți valori LuckyTemplates din săptămâna anterioară folosind DAX și Power Query

Concluzie

Acestea sunt două moduri diferite într-un mod foarte versatil de a găsi numărul săptămânii precedente. În prima tehnică, puteți vedea puterea offset-urilor în realizarea, ceea ce altfel ar fi un calcul dificil, destul de simplu. A doua tehnică funcționează exact ca măsura noastră DAX, dar în acest caz, nu a fost nevoie să folosim offset-urile.

Sper că veți găsi acest tutorial util. Puteți urmări tutorialul video complet de mai jos și puteți consulta linkurile aferente pentru mai mult conținut similar.

Noroc!

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