Cosè il sé in Python: esempi del mondo reale
Cos'è il sé in Python: esempi del mondo reale
Ti mostrerò come calcolare i giorni lavorativi / giorni lavorativi tra due date con le festività contate o senza le festività. Questo è un argomento che è stato chiesto più e più volte sul .
Credo anche che questo sarà un ottimo modo per chiudere questa serie di Time Intelligence, sapendo che copre molti degli altri elementi discussi in precedenza. Questi elementi includono la creazione di una tabella delle festività, la creazione di una tabella delle date estesa e l'utilizzo della funzione Puoi guardare il video completo di questo tutorial in fondo a questo blog.
Sommario
Modi per calcolare i giorni lavorativi tra due date
Parlerò dei diversi approcci che puoi utilizzare per calcolare i giorni lavorativi.
Excel consente agli utenti di calcolare i giorni lavorativi in modo semplice attraverso l'uso della sua funzione NETWORKDAYS . Tuttavia, DAX non ha una funzione del genere , quindi discuterò dei modi per aggirare questo problema.
Un modo per farlo è utilizzare alcuni elementi della tabella delle date estesa.
Un'altra opzione è attraverso un approccio che ho ottenuto da Imke Feldmann dal blog thebiccountant.com. Ha creato una funzione NetworkDays personalizzata che può essere richiamata direttamente da Power Query , rendendo il processo molto più veloce e meno complicato.
Per mostrarti come funzionano questi approcci, utilizzerò uno scenario molto comune.
Ho cento progetti che ho reso anonimi.
Ho anche una data di inizio e una data di fine per ogni progetto.
Ho creato anche una semplice misura dei giorni trascorsi . Questo è fondamentalmente il numero grezzo di giorni tra ciascuna delle date di inizio e di fine . Ho usato la funzione per fare questo, una funzione utile per datediff giorni lavorativi.
Il modello dati è molto semplice. Contiene tabelle per date e progetti .
Mostra anche la tabella dei fatti, che include l' ID progetto , la data di inizio e la data di fine .
A scopo di confronto, ho anche calcolato i NetworkDays (con e senza festività) utilizzando Excel (non power bi).
Ovviamente puoi fare la stessa cosa e importare dati da Excel. Ma l'obiettivo qui è utilizzare LuckyTemplates per calcolare il numero di giorni lavorativi senza dover utilizzare Excel.
Calcolo dei giorni lavorativi tra le date utilizzando DAX
Ogni volta che si ha a che fare con il conteggio delle date, è sempre utile utilizzare la funzione nella tabella Date.
Ho anche usato DATESBETWEEN per restringere il campo tra la data di inizio e la data di fine . Ho anche aggiunto IsWorkingDay per applicare la semplice logica booleana secondo cui se è un giorno lavorativo dovrebbe essere . I fine settimana restituirebbero .
L'ho finito con il filtro solo per tenere conto del contesto degli affettatori.
Per quanto riguarda la versione con festività, è molto simile alla misura di cui ho appena parlato.
È la stessa espressione che utilizza la funzione DATESBETWEEN . Ho solo aggiunto un e IsHoliday.
Ancora una volta, ho usato la funzione ALLSELECTED proprio alla fine.
Guarda cosa succede quando trascino queste due misure nella mia tabella.
Come previsto, la colonna Workdays w/ Holidays corrisponde perfettamente alla colonna Excel w/ Holidays . La stessa cosa vale per la colonna Workdays w/o Holidays, che corrisponde alla colonna Excel w/o Holidays .
Calcolo dei giorni lavorativi utilizzando Power Query
L'approccio di cui parla Imke Feldmann del blog thebiccoountant.com offre una soluzione ancora più semplice quando si utilizza Power Query.
Nel suo blog sulla funzione NETWORKDAYS, ha fornito un codice M che può essere richiamato in Power Query.
Basta copiare il codice M dal suo blog.
Quindi, vai in Power Query e in New Source , apri una Query vuota.
Entra nell'editor avanzato .
Quindi incolla l'intero codice nella pagina. Assicurati di avere un segno di spunta verde per assicurarti che non ci siano errori nel tuo codice.
Una volta richiamato, ti porterà a questo modello.
Non importa cosa inserisco qui, quindi andrò dal 1° gennaio 2018 al 1° gennaio 2020.
Questo verrà ora visualizzato sotto le mie domande. Lo rinominerò per renderlo più facile da usare in seguito.
Lo chiamerò Networkdays .
Ora posso iniziare a utilizzare quella query. Entrerò nel mio Data .
Quindi, in Aggiungi colonna , farò clic su Richiama funzione personalizzata .
Lo chiamerò NWD e utilizzerò la funzione Networkdays .
Quindi, sceglierò Data di inizio e Data di fine da questi menu a discesa di seguito.
Mi dà la possibilità qui di cambiare l'inizio della settimana da lunedì a qualcos'altro.
Per questo scopo, lunedì va bene, quindi lo lascerò così com'è. Quindi, farò clic su OK.
Come puoi vedere, calcola immediatamente il NetworkDays equivalente alla colonna NetworkDays di Excel .
Ora, fammi modificare così posso escludere le festività. Devo solo entrare nel mio tavolo delle feste .
Se ricordi dal modello, la tabella Holiday è il terzo parametro qui.
Quindi userò solo la tabella Festività qui e farò riferimento alla colonna Data.
Farò clic sul segno di spunta qui per applicare tali modifiche.
[00:11:00]
Ora è stato aggiornato e ha rimosso tutte le festività. È esattamente uguale alla colonna per Excel NetworkDays senza festività.
Rinominerò semplicemente questa colonna NWD Nessuna festività.
Aggiunta dei numeri del giorno lavorativo e del fine settimana nella tabella delle date: tecnica di intelligenza temporale in LuckyTemplates
Visualizzazione del numero del giorno lavorativo in LuckyTemplates utilizzando DAX
Calcolo della media in LuckyTemplates: isolamento dei risultati del giorno della settimana o del fine settimana utilizzando DAX
Conclusione
Vedrai che entrambi gli approcci che ho usato erano molto diversi l'uno dall'altro, ma entrambi hanno prodotto gli stessi risultati. Questo dimostra solo che ci sono davvero molti modi per massimizzare LuckyTemplates, anche quando la specifica funzione di Excel che stai cercando non ha una controparte diretta.
Questa è stata una grande corsa per la serie Time Intelligence. Mi è piaciuto lavorare con Melissa Dekorte per mostrarti tutti questi fantastici scenari di Time Intelligence.
Una delle cose che voglio davvero sottolineare qui è che DAX è la parte più interessante di LuckyTemplates. Ma man mano che padroneggi i dettagli di LuckyTemplates, inizierai ad apprezzare altre soluzioni che non coinvolgono affatto DAX. L'ultimo approccio che ti ho mostrato sopra, così come i suggerimenti che ho condiviso nei video precedenti su Time Intelligence lo dimostrano.
Ti auguro il meglio,
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