Ottieni i valori della settimana precedente di LuckyTemplates usando DAX e Power Query

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.

Ottieni i valori della settimana precedente di LuckyTemplates usando DAX e Power Query

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.

Ottieni i valori della settimana precedente di LuckyTemplates usando DAX e Power Query

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.

Ottieni i valori della settimana precedente di LuckyTemplates usando DAX e Power Query

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 .

Ottieni i valori della settimana precedente di LuckyTemplates usando DAX e Power Query

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.

Ottieni i valori della settimana precedente di LuckyTemplates usando DAX e Power Query

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 .

Ottieni i valori della settimana precedente di LuckyTemplates usando DAX e Power Query

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.

Ottieni i valori della settimana precedente di LuckyTemplates usando DAX e Power Query

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.

Ottieni i valori della settimana precedente di LuckyTemplates usando DAX e Power Query

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.

Ottieni i valori della settimana precedente di LuckyTemplates usando DAX e Power Query

Dopodiché, lo espanderemo correttamente, usando solo ISO Weeknumber.

Ottieni i valori della settimana precedente di LuckyTemplates usando DAX e Power Query

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.

Ottieni i valori della settimana precedente di LuckyTemplates usando DAX e Power Query

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.

Ottieni i valori della settimana precedente di LuckyTemplates usando DAX e Power Query

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!

Leave a Comment

Power Automate si applica a ogni azione nei flussi di lavoro

Power Automate si applica a ogni azione nei flussi di lavoro

Scopri l

Tecniche di modellazione dei dati per organizzare le misure DAX

Tecniche di modellazione dei dati per organizzare le misure DAX

Tecniche di modellazione dei dati per organizzare meglio le misure DAX per un flusso di lavoro più efficiente.

Filtro Power Apps: cosè e come si usa?

Filtro Power Apps: cosè e come si usa?

Scopri come utilizzare la funzione di filtro in Power Apps e come incorporarla nelle formule esistenti all

Come commentare più righe in Python: una guida semplice e veloce

Come commentare più righe in Python: una guida semplice e veloce

Come commentare più righe in Python: una guida semplice e veloce

Connettori Power Automate: numero, testo e data e ora

Connettori Power Automate: numero, testo e data e ora

Acquisisci familiarità con i connettori Power Automate per la manipolazione di numeri, testo e date/ore.

Budget Vs Actual Vs Last Year - Suggerimenti per la rendicontazione finanziaria

Budget Vs Actual Vs Last Year - Suggerimenti per la rendicontazione finanziaria

Ora, è molto facile studiare il budget rispetto all

Come salvare e caricare un file RDS in R

Come salvare e caricare un file RDS in R

Imparerai come salvare e caricare oggetti da un file .rds in R. Questo articolo tratta anche come importare oggetti da R a LuckyTemplates.

Che cosè Power Query e M Language: una panoramica dettagliata

Che cosè Power Query e M Language: una panoramica dettagliata

Scopri tutto su Power Query e il linguaggio M per la trasformazione e la preparazione dei dati nel desktop di LuckyTemplates.

Cosè il sé in Python: esempi del mondo reale

Cosè il sé in Python: esempi del mondo reale

Cos'è il sé in Python: esempi del mondo reale

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.