Ce este Sinele în Python: Exemple din lumea reală
Ce este Sinele în Python: Exemple din lumea reală
Pentru această postare, aș dori să vorbesc despre un sfat recent LuckyTemplates pe care l-am venit pentru un membru al forumului . Întrebarea s-a ocupat de un model util în ceea ce privește analiza primelor N zile lucrătoare sau a primelor N zile facturabile dintr-o anumită lună față de aceeași perioadă din luna anterioară. Puteți viziona videoclipul complet al acestui tutorial în partea de jos a acestui blog.
TJ Henneman a vrut să compare primele 5 zile facturabile ale lunii curente cu primele 5 zile facturabile ale lunii precedente, iar apoi în Ziua 10, Ziua 15 și Ziua 20. Rețineți că dorește să se uite doar la zilele facturabile, deci acest lucru nu include weekend-urile și sărbătorile. Puteți verifica postarea lui .
Cred că există o soluție cu adevărat interesantă de interogare de putere aici. Am lucrat și cu o soluție DAX interesantă la această problemă. Voi trece peste acestea din urmă într-un alt tutorial.
De asemenea, vreau să vă prezint o tehnică recentă de raportare pe care am folosit-o pentru LuckyTemplates Challenge #16. Am folosit un indicator KPI de derulare care va funcționa foarte bine pentru această problemă specială.
Dar pentru acest sfat LuckyTemplates, voi atinge soluția de interogare de putere. Să intrăm în LuckyTemplates și să aruncăm o privire asupra datelor noastre. Pentru aceasta, am simulat datele folosind instrumentul de set de date de practică pe care l-am creat la LuckyTemplates, pe care îl puteți folosi gratuit. Acest lucru este excelent pentru a crea un set de date de bază de schemă stea și pentru a testa soluții.
Cuprins
Modelul nostru de date
Modelul nostru de date utilizează tabelul nostru cu date extinse plus o serie de tabele de dimensiuni. Avem, de asemenea, un tabel de vânzări cu trei ani de date parțiale în primul an, date complete în al doilea an și date parțiale în al treilea an. În cele din urmă, avem și un tabel Măsuri .
De asemenea, am modificat ușor acest set de date. Am adus un tabel de vacanțe și l-am legat de tabelul cu date extinse , astfel încât să poată calcula corect vacanțele pe care le vom elimina în această analiză. Dacă nu sunteți sigur cum să faceți acest lucru, consultați acest tutorial .
Apoi am filtrat prima lună parțială din setul de date, deoarece luna respectivă avea doar câteva zile de date și nu avea zilele lucrătoare de care avem nevoie. Rețineți că începem cu prima lună completă; dar în afară de asta, acesta va fi setul dvs. de date standard. Deci, haideți să trecem la interogarea de putere și să începem să lucrăm la acest sfat LuckyTemplates.
Dacă ne uităm la datele noastre, puteți vedea că avem comenzi diferite într-o anumită zi. Scopul este să numărăm tot ceea ce începe cu 1 aprilie ca prima zi lucrătoare, 2 aprilie ca a doua zi lucrătoare, 3 aprilie ca a treia zi lucrătoare și așa mai departe. Vom număra acest lucru de la 1 la N zile lucrătoare pentru fiecare lună, în timp ce luăm weekend-urile și sărbătorile.
Crearea unui tabel duplicat
Pentru a începe lucrurile, trebuie să creăm o copie a acestui tabel, astfel încât să putem agrega în vânzări totale și să-l aducem la nivelul de observație individual. Vom numi acest tabel duplicat Vânzări agregate .
Poate că ați observat, am duplicat tabelul de vânzări în loc să facem referire la el. În acest caz, vom alătura acest tabel cu tabelul original de vânzări. Dacă facem referire la el, va cauza probleme atunci când ne vom alătura celor doi.
Primul lucru pe care trebuie să-l faceți este să utilizați gruparea după în coloana OrderDate . Faceți clic pe butonul Avansat pentru că ne va oferi o imagine completă a ceea ce facem aici. Vom pune Vânzări totale pe zi ca noul nostru nume de coloană și va fi suma totalului liniei noastre.
Acum avem fiecare dată (prima coloană) și vânzările totale pentru ziua respectivă (a doua coloană).
Îmbinarea Tabelului de Date
Următorul pas în acest sfat LuckyTemplates este să îmbinați acest lucru cu tabelul nostru Date pentru a afla care dintre acele zile sunt zile lucrătoare și care dintre ele nu. Putem să grupăm din nou, să le împărțim și să le numărăm corespunzător.
Vom îmbina tabelul nostru Date și vom lega OrderDate la Data . Putem vedea în partea de jos că selecția se potrivește cu fiecare rând al tabelului, așa cum ar trebui.
Domeniul care ne interesează în primul rând este IsBusinessDay .
Acesta este câmpul principal pe care îl vom grupa și apoi vom folosi câmpurile Month & Year și MonthnYear .
De asemenea, trebuie să verificăm DayofWeekName pentru a ne asigura că eliminăm zilele potrivite.
Odată ce facem clic pe butonul OK , ne va oferi exact ceea ce avem nevoie.
De asemenea, trebuie să ne asigurăm că Data comenzii este sortată în ordine crescătoare.
Apoi ne întoarcem și creăm un al doilea Group By .
De data aceasta, vom face clic pe butonul Avansat , vom grupa pe Lună și An , apoi vom adăuga o a doua grupare.
A doua grupare este pentru IsBusinessDay, astfel încât să le putem număra pe cele în care zilele lucrătoare sunt adevărate.
Apoi vom crea o funcție AllRows, astfel încât să nu se agreeze și să putem reveni la nivelul original de granularitate.
Acest lucru ar trebui să ne ofere tabele imbricate în care putem vedea un tabel pentru adevărat și un tabel pentru fals pentru fiecare lună.
Crearea unei coloane personalizate
În continuare, trebuie să creăm o coloană personalizată pentru a adăuga numărul de care avem nevoie pentru zilele lucrătoare.
Vom folosi o funcție numită Table.AddIndexColumn , care va funcționa pe tabelul AllRows și o vom numi Day Index . Dorim ca indicele să înceapă cu 1 și să crească cu 1 cu fiecare nouă zi lucrătoare.
Apoi putem elimina primele trei coloane și putem extinde a patra coloană personalizată.
Dacă ne uităm la rezultat, acesta ne oferă indexul zilelor, care numără zilele lucrătoare (adevărat), apoi numără zilele care sunt weekenduri și sărbători în fiecare lună (fals). În continuare, trebuie să verificăm dacă acestea sunt în tipul lor de câmp adecvat.
Să revenim la masa noastră de vânzări. Vom îmbina tabelul Aggregate pe care tocmai l-am creat cu tabelul nostru de vânzări.
Le vom îmbina pe acestea la data de comandă . Puteți vedea în partea de jos că se potrivește cu toate rândurile din primul tabel.
Când extindem coloana Sales Agg, selectați noile câmpuri pe care tocmai le-am adăugat: coloanele Month & Year , DayOfWeekName , MonthnYear , IsBusinessDay și DayIndex .
De asemenea, să ne curățăm datele înainte de a face clic pe Închideți și aplicați . Să mutăm tabelul Sales Agg în secțiunea noastră Data Prep , apoi să descarcăm acel tabel, deoarece nu vom avea nevoie de el în modelul de date. Apoi faceți clic pe Închideți și aplicați .
Munca noastră de pregătire a interogării de energie este acum gata.
Crearea unui parametru ce se întâmplă dacă
Amintiți-vă că în sarcina inițială dorim să variam numărul de zile pe care le analizăm de la 5 la 10 și de la 15 la 20. Cred că cea mai bună modalitate de a face acest lucru este cu un nou parametru ce se întâmplă dacă .
Vom numi parametrul ce se întâmplă dacă Primele N zile lucrătoare și tipul său de date va fi un număr întreg. Minimul este setat la un increment de 1 și un maxim de 20. Apoi vom fi implicit 5, care este prima valoare pe care a dorit-o utilizatorul.
Acum avem un slicer care creează automat măsura de recoltare pentru a capta valoarea slicer.
Să creăm un tabel cu rezultatele noastre. Să punem dimensiunea Lună și An în pânză și apoi să o sortăm după Lună și An .
Odată ce acest câmp este sortat corespunzător, putem doar să renunțăm la măsura Vânzărilor totale și să o extindem.
Crearea unei măsuri pentru numărul de zile lucrătoare
Trebuie să creăm încă o măsură care să analizeze valoarea parametrului glisor și să calculeze doar pentru numărul de zile lucrătoare.
Vom numi această nouă măsură Vânzări totale N Zile de autobuz . Vom începe cu funcția , deoarece ne schimbăm cu siguranță contextul și cu măsura noastră de vânzări totale. Vom filtra acest lucru cu din tabelul nostru de vânzări.
Următorul pas este să scriem condițiile de care dorim să ținem cont pentru glisor. Avem indicele zilelor vânzărilor pe care l-am creat în Power Query și dorim ca acesta să fie mai mic sau egal cu valoarea primelor N zile lucrătoare, care este valoarea recoltată a slicer-ului.
De exemplu, dacă glisorul este la 5, vrem toate zilele din tabelul Vânzări în care indicele zilei este mai mic sau egal cu 5.
Și apoi vrem să scoatem zilele nelucrătoare. Vom face referire la tabelul Date și vom folosi câmpul IsBusinessDay. Ne vom uita doar la rezultatul care este ADEVĂRAT.
În cele din urmă, readuceți contextul pentru Lună și An și închideți măsura. Ar trebui să fim bine să mergem în acest moment.
Să aruncăm noua măsură în tabelul nostru.
Putem duce glisorul la marcajul de 10 zile, iar tabelul va calcula dinamic la marcajul de 10 zile.
Concluzie
În acest sfat LuckyTemplates, am vorbit despre cum să faceți o comparație similară în mod dinamic folosind o soluție Power Query. Putem pune acest lucru într-o diagramă cu bare sau într-o diagramă cu linii.
În unele dintre tutorialele noastre viitoare, vom arunca o privire asupra soluției DAX și vom implementa vizualizarea scroller-ului KPI.
Dacă v-a plăcut conținutul prezentat în acest tutorial special, vă rugăm să nu uitați să vă abonați la canalul TV LuckyTemplates .
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