Calendario delle festività di LuckyTemplates: calcola la data W/DAX

Calendario delle festività di LuckyTemplates: calcola la data W/DAX

La creazione di un calendario delle festività di LuckyTemplates è fondamentale per molti calcoli di Time Intelligence. In questo tutorial, ti mostrerò come calcolare le date delle festività specifiche utilizzando le misure DAX. Puoi guardare il video completo di questo tutorial in fondo a questo blog.

Questo esempio proviene da una delle iniziative chiamata Problem of the Week, in cui ogni mese prendiamo un problema DAX o Power Query del mondo reale e lo analizziamo in dettaglio.

Calendario delle festività di LuckyTemplates: calcola la data W/DAX

Ho usato una tecnica chiamata Rubber Duck Debugging. Viene in genere utilizzato per il debug, ma trovo che sia anche molto utile per elaborare il framework iniziale che utilizzerai per risolvere un problema complesso come in LuckyTemplates.

Calendario delle festività di LuckyTemplates: calcola la data W/DAX

Fondamentalmente è solo usare una papera di gomma o una persona con cui parli e dire la soluzione che stai immaginando ad alta voce e sviluppare un piano su come attaccherai il problema.

Il semplice atto di dare voce che spesso ti aiuta a risolvere il problema. In alcuni casi in una situazione di debug, ti fa capire cosa stai facendo, se ha senso e aiuta a trovare un modo per risolverlo affrontando il problema.

Di seguito è riportato il problema DAX del mondo reale per questa particolare sfida. Abbiamo una tabella qui con 10 giorni festivi con il mese e il giorno. Alcuni giorni sono giorni specifici e altri sono giorni relativi. Dobbiamo trovare la data delle vacanze e le misure del giorno celebrato.

Calendario delle festività di LuckyTemplates: calcola la data W/DAX

Per fare ciò, dobbiamo analizzare il campo Giorno in due componenti. La prima analisi è l'occorrenza (terzo, ultimo, primo, secondo) e la seconda analisi è il giorno (lunedì, giovedì). Queste sono due informazioni critiche che dobbiamo separare.

Sommario

Calcolo di date specifiche nel calendario delle festività di LuckyTemplates

Normalmente, lo farei in Power Query solo attraverso una divisione per delimitatori, ma poiché lo stiamo facendo con DAX, dovremo farlo in un modo diverso. (Nota che non siamo autorizzati a utilizzare Power Query in questa sfida.)

Dobbiamo calcolare le date minima e massima per l'anno, il mese e il nome del giorno specificati. In questo caso, ad esempio, possiamo dire per il 2027, gennaio e il terzo lunedì. Una volta ottenuto quel giorno minimo per un determinato mese, possiamo aggiungervi sette giorni per arrivare al secondo lunedì, 14 giorni per arrivare al terzo lunedì e 21 giorni per arrivare al quarto lunedì.

Un'altra tecnica che desidero condividere con voi relativa a questa sfida è quella che chiamo Costruzione in parti durante la creazione di una misura. Lo trovo davvero utile in una misura complessa in cui se hai molte variabili, hai molti componenti da costruire.

Quello che faccio sempre è che ho una variabile risultato ( Risultato VAR ) alla fine e la mia ultima affermazione che è solo Risultato restituito . Questo rende davvero facile tornare indietro e testare le variabili che ho costruito. Posso esaminarlo, rintracciarlo e risolverlo in parti.

Calendario delle festività di LuckyTemplates: calcola la data W/DAX

L'ultima tecnica che voglio condividere con te è quella che chiamo Ricerca di funzioni sconosciute. Ad esempio, se non so quale funzione utilizzare per questa verifica del calendario delle festività di LuckyTemplates, accedo alla scheda Strumenti esterni e vado alla Guida DAX SQLBI .

Calendario delle festività di LuckyTemplates: calcola la data W/DAX

Ha una funzione davvero interessante qui chiamata Gruppi (sul lato sinistro), dove le funzioni sono raggruppate per tipo. Quindi, se sto pensando di analizzare una stringa di testo, ad esempio, posso andare a cercare Text functions .

Calendario delle festività di LuckyTemplates: calcola la data W/DAX

Fornisce tutte le funzioni di testo di DAX. Questo è un ottimo modo per trovare rapidamente la funzione DAX necessaria per una misura.

Calendario delle festività di LuckyTemplates: calcola la data W/DAX

Misure DAX per il calendario delle festività di LuckyTemplates

Per la misura Holiday Date , ho creato questa serie di s , raccogliendo le date dall'affettatrice, il mese festivo, il numero del mese e il giorno dalla tabella Date.  

Quindi, ho la durata di quel giorno selezionato utilizzando la funzione di lunghezza ( ). In questo caso, ha restituito del testo, quindi ho dovuto racchiuderlo in per modificare quel testo in un valore numerico.

E poi, ho usato la funzione per la posizione dello spazio e avvolgendolo VALUE, ma dicendo, cerca spazio all'interno del giorno selezionato, partendo dalla posizione uno e restituendo zero se non trovo quella stringa lì dentro.

Il CharsBeforeSpace (caratteri prima dello spazio) è solo il SpacePosition. Il numero di CharsAfterSpace (caratteri dopo lo spazio) è solo la lunghezza ( SelDayLen ) della stringa meno la posizione dello spazio. Da ciò, possiamo eseguire FirstParse e SecondParse .

Calendario delle festività di LuckyTemplates: calcola la data W/DAX

A questo punto, ora abbiamo due variabili, una che rappresenta l'occorrenza e una che rappresenta il giorno.

E poi, abbiamo un ( Calc1st ) di base in cui togliamo il filtro dalla tabella Date. Quindi, applichiamo i filtri dell'anno selezionato dall'affettatrice, il nome del mese e quindi il giorno della settimana da quella seconda analisi che abbiamo fatto.

Calendario delle festività di LuckyTemplates: calcola la data W/DAX

Allo stesso modo, facciamo la stessa cosa per l'ultimo calcolo ( VAR CalcLast ).

Calendario delle festività di LuckyTemplates: calcola la data W/DAX

Una volta che abbiamo tutto questo, passa a un'istruzione e l'ultima parte è il risultato RETURN.

Calendario delle festività di LuckyTemplates: calcola la data W/DAX

Infine, voglio guidarti attraverso la misura Celebrated On come bonus aggiuntivo dalla sfida. Questo è solo un semplice in cui ho preso la data della festività calcolata nella misura precedente, sono andato alla tabella Date e ho cercato il nome del giorno della settimana. E poi ho appena fatto una dichiarazione SWITCH in cui abbiamo preso quel risultato di DayLookup. E infine, concludo con un RETURN DateAdjust .

Calendario delle festività di LuckyTemplates: calcola la data W/DAX


Creazione di una tabella di calendario per le festività in LuckyTemplates
Calendari personalizzati di LuckyTemplates: calcolo per la modifica mese dopo mese - 445 calendari
Confronto temporale per tabelle di date non standard in LuckyTemplates

Conclusione

Questa sfida del calendario delle festività di LuckyTemplates, come ho già detto, è un problema del mondo reale. La soluzione che mi è venuta in mente è piuttosto complessa, ma davvero efficace nel calcolare le date specifiche delle festività.

Spero che tu abbia imparato molto da questo tutorial. Guarda il tutorial video completo per una spiegazione più dettagliata delle misure DAX.

Saluti!


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.