Cosè il sé in Python: esempi del mondo reale
Cos'è il sé in Python: esempi del mondo reale
Il recupero dei valori del periodo precedente in LuckyTemplates è un'attività comune, ma il recupero dei valori della settimana precedente richiede un'attenzione particolare. In questo tutorial, illustrerò due metodi semplici e versatili per ottenere i valori della settimana precedente di LuckyTemplates che possono essere utili aggiunte alla casella degli strumenti: uno tramite DAX e l'altro tramite Power Query. Puoi guardare il video completo di questo tutorial in fondo a questo blog.
Questo tutorial nasce da una domanda che ho ricevuto da un membro di LuckyTemplates. Il membro ha chiesto quale fosse il modo più semplice per determinare il numero della settimana precedente. Questa è una domanda comune che incontro. Sembra piuttosto semplice, ma più approfondisci, più ti rendi conto che c'è molto da elaborare.
Sommario
Valori della settimana precedente in LuckyTemplates: il problema
Se guardiamo il numero della settimana, abbiamo 52 settimane; moltiplicalo per sette giorni (una settimana) e ottieni 364. Quindi, in ogni anno, c'è un giorno in più, e poi per gli anni bisestili, ci sono due giorni in più. Questi uno o due giorni in più finiscono per causare molti problemi.
Creiamo una misura dalla nostra tabella Date. La chiameremo MAX Week # (numero). In questa analisi, stiamo usando la tabella delle date estese di LuckyTemplates; questo ha ISO Weeknumber , che è molto utile. Ora, prendiamo il MAX del numero della settimana ISO.
Ora, prendiamo una tabella e lasciamo cadere Year così come la nostra MAX Week # . Questo set di dati ha 10 anni di dati e vediamo che i primi due anni hanno 52 settimane. Quindi, abbiamo due anni con 53 settimane, tre anni con 52 settimane, e poi altri due anni con 53 e uno con 52.
Non c'è davvero uno schema riconoscibile qui. Non è facile tornare indietro e prevedere che un anno avrai 52 settimane e l'altro anno ne avrai 53.
La prossima cosa che potresti pensare se hai familiarità con le funzioni di intelligence temporale DAX è usare la funzione DATEADD , che sposta un intervallo di date indietro di un determinato periodo. Lo fa davvero bene per Giorno, Mese, Trimestre e Anno, ma non include Settimana, quindi dobbiamo trovare un modo diverso per farlo.
Nella tabella delle date estese di LuckyTemplates che stiamo utilizzando, Melissa (uno degli esperti di LuckyTemplates) ha incluso una funzione chiamata OFFSETS . Immergiamoci in questa funzione perché è assolutamente fondamentale per risolverlo da una prospettiva DAX.
Osservando il periodo corrente (ad esempio il 20 gennaio, che è il periodo di creazione di questo tutorial), ciò che vediamo è che offset è uguale a zero . Il modo in cui funzionano gli offset è che per il periodo corrente, l'offset diventa zero.
La settimana precedente alla settimana corrente è negativa, due settimane prima della settimana corrente è negativa due e così via. E poi, va avanti dai numeri positivi; la prossima settimana poi ottiene uno, due settimane ottiene due, ecc.
Ogni volta che si apre il report relativo alla data odierna, vengono calcolati gli offset. Questo è incredibilmente potente e ora ti mostrerò quanto è facile affrontare alcuni problemi difficili come questo numero della settimana precedente di LuckyTemplates quando utilizzi gli offset.
Ottenere LuckyTemplates la settimana precedente utilizzando DAX
Creiamo una nuova misura e chiamiamola Previous Wk # . Inizieremo con una variabile ( SelWkOffset ), dove faremo solo un SELECTEDVALUE di WeekOffset . Quindi, nella riga corrente, disegnerà quel WeekOffset e lo inserirà nella nostra variabile.
La variabile successiva sarà Result . Questo è il risultato finale che vogliamo e useremo CALCULATE perché cambieremo il contesto.
Quindi, vogliamo il numero della settimana MAX ISO e questo sarà soggetto a queste condizioni di filtro. Quindi, rimuoveremo tutti i filtri dalla tabella Date, quindi useremo ALL qui. Se avessimo un'affettatrice di date, potremmo voler usare ALLSELECTED , ma per ora non lo facciamo, quindi useremo ALL per rimuovere il filtro da quella tabella Date.
E poi, diremo che WeekOffset sarà uguale al nostro SelWkOffset meno uno . È qui che gli OFFSET diventano così potenti. Non puoi usare Weeknumber meno uno perché si azzera ogni anno. Ma poiché TUTTI GLI SCAMBI sono sequenziali, puoi trattarlo come faresti trovando l'anno precedente e semplicemente sottraendo uno per ogni anno precedente. E quindi questo, questo offset funziona allo stesso modo di un numero consecutivo.
Ora possiamo prendere e chiudere quella condizione di filtro, chiuso CALCULATE, e RETURN il nostro Result .
Ora, diamo un'occhiata a come funziona questa misura. Nella tabella qui sotto, possiamo vedere che sta facendo esattamente quello che speravamo. Nella settimana 52 per il primo periodo dell'anno successivo, la settimana precedente è 52. E poi, torna indietro di uno per ogni periodo, e così via.
Ora, cosa fai nei casi in cui non hai un offset?
Supponiamo che tu stia lavorando con una tabella Date aziendale che proviene dal tuo data warehouse e non include questi offset. C'è una tecnica che voglio mostrarti in Power Query. La prima volta che l'ho visto è stato in un post sul blog di Imke Feldmann.
Questo approccio funziona davvero bene per qualsiasi situazione in cui è possibile ordinare la tabella in ordine crescente e non deve avere un offset. Non deve avere nemmeno un campo data. Potrebbe essere un tipo di tavolo completamente diverso. Finché è ordinabile in ordine crescente, puoi utilizzare questa tecnica.
Quindi facciamo riferimento a questa tabella Dates Raw e la chiameremo Dates . Quindi, ci assicuriamo di ordinarlo in ordine crescente .
Successivamente, vogliamo raggruppare per settimana . Il motivo è che aggiungeremo due colonne di indice. Quando aggiungiamo quelle colonne di indice, vogliamo che siano alla granularità della settimana , non alla granularità del giorno.
Successivamente, vogliamo aggiungere quelle colonne di indice. La cosa importante qui è che il primo indice che aggiungeremo sarà un indice a base 0. E poi, aggiungeremo un secondo indice che è un indice in base 1.
Quindi, prenderemo questa colonna e uniremo una tabella in se stessa. Lo uniremo in base alle due diverse colonne dell'indice. Questo ci darà uno spostamento nelle righe.
Quindi, se prendiamo questo e uniamo il primo all'indice in base 0 all'indice in base 1, corrisponde a 521 a 522 righe. Questo è esattamente quello che ci aspetteremmo perché la seconda tabella non rileverà l'indice zero poiché inizia da uno.
Dopodiché, lo espanderemo correttamente, usando solo ISO Weeknumber.
Questo ci dà il numero della settimana precedente. E ora, espanderemo semplicemente il nostro raggruppamento originale ed elimineremo il campo WeekEnding e il numero della settimana ISO originale in modo da non duplicare.
Se lo mettiamo in una tabella, puoi vedere che sono esattamente gli stessi risultati dell'utilizzo della tecnica DAX. Funziona esattamente come la nostra misura DAX, ma in questo caso non è stato necessario utilizzare gli offset.
Conclusione
Questi sono due modi diversi in un modo molto versatile per trovare il numero della settimana precedente. Nella prima tecnica, puoi vedere il potere degli offset nel rendere piuttosto semplice quello che altrimenti sarebbe un calcolo difficile. La seconda tecnica funziona esattamente come la nostra misura DAX, ma in questo caso non è stato necessario utilizzare gli offset.
Spero che questo tutorial ti sia stato utile. Puoi guardare il tutorial video completo qui sotto e controllare i link correlati per contenuti più simili.
Saluti!
Cos'è il sé in Python: esempi del mondo reale
Imparerai come salvare e caricare oggetti da un file .rds in R. Questo blog tratterà anche come importare oggetti da R a LuckyTemplates.
In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.
Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.
In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.
Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.
Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.
Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.
Se finora utilizzi ancora Excel, questo è il momento migliore per iniziare a utilizzare LuckyTemplates per le tue esigenze di reportistica aziendale.
Che cos'è il gateway LuckyTemplates? Tutto quello che devi sapere