Soluzione LuckyTemplates tra date e orario di lavoro

Soluzione LuckyTemplates tra date e orario di lavoro

Nel blog di oggi, dimostrerò un approccio alla sfida Start Stop di Access Analytic in cui, utilizzando LuckyTemplates, verranno calcolate le ore lavorative totali tra le date. Puoi guardare il video completo di questo tutorial in fondo a questo blog .

L'attività consiste nel calcolare il numero totale di ore per un membro del personale in ogni mese e data. Ho presentato date di inizio e fine che possono superare i mesi e tenere conto dello stato affrontando possibili errori di battitura. 

Soluzione LuckyTemplates tra date e orario di lavoro

Sommario

Set di dati per l'orario di lavoro tra le date di LuckyTemplates

Passiamo all'editor di Power Query. 

Ecco i nostri dati per questa sfida. Abbiamo una tabella con colonne per il nome del personale, la data di inizio, l'ora di inizio, la data di fine, l'ora di fine e lo stato.

Soluzione LuckyTemplates tra date e orario di lavoro

Filtraggio delle righe

Iniziamo selezionando le righe in base al loro stato e l'editor di query può aiutarci con questa logica. Fare clic sulla freccia del menu a discesa accanto a Stato. Seleziona Filtri di testo e scegli Non inizia con. 

Soluzione LuckyTemplates tra date e orario di lavoro

Nella finestra Filtra righe che verrà visualizzata, scrivi "e". Quindi fare clic su OK .

Soluzione LuckyTemplates tra date e orario di lavoro

Non succederà ancora nulla e va bene perché scriviamo una "e" minuscola e l'"Escludi" nei nostri dati che inizia con una "E" maiuscola.

Per risolvere questo problema, utilizzeremo il terzo parametro facoltativo di Text.StartsWith . Nella barra della formula, vai alla fine della funzione Text.StartsWith. Aggiungi una virgola e entriamo nel nostro Comparer.OrdinalIgnoreCase. Fai clic sul segno di spunta e questo dovrebbe rimuovere le righe Escludi .

Soluzione LuckyTemplates tra date e orario di lavoro

Naturalmente, potremmo avere qualcuno che ha digitato erroneamente "Escludi" senza una "E" iniziale. In tal caso, possiamo creare una logica aggiuntiva per andare d'accordo con la situazione. 

Possiamo verificare se la parola non include una "X" estendendo la nostra funzione e utilizzando Text.Contains . Per farlo, aggiungi o Text.Contains ([Status], "x", Comparer.OrdinalIgnoreCase .

Si noti che rispetto alla prima clausola, abbiamo sostituito la "e" con una "x". Continuiamo a ignorare il caso e avvolgiamo una serie di parentesi attorno a entrambe le nostre clausole. Fai clic sul segno di spunta e dovremmo ottenere una tabella senza le righe contenenti lo stato Exclude o Xclude .

Soluzione LuckyTemplates tra date e orario di lavoro

Aggiunta di una colonna personalizzata

Passiamo ora alla parte principale di questa sfida. Aggiungeremo una colonna personalizzata utilizzando l'interfaccia utente e poi passeremo all'editor. 

Inizia con l' icona del mini tavolo nell'angolo in alto a sinistra del tavolo. Fare clic su di esso e nel menu a discesa selezionare Aggiungi colonna personalizzata

Soluzione LuckyTemplates tra date e orario di lavoro

A questo punto, ci interessa solo portare i dati che ci serviranno in seguito. E poiché lavoreremo con più campi, creiamo un record utilizzando gli inizializzatori di record, rappresentati con parentesi quadre. 

Creiamo le variabili e assegniamo le colonne disponibili. Inizia digitando SD che equipareremo alla data di inizio. Possiamo farlo facendo clic su Data di inizio nella colonna a destra.

Faremo lo stesso per le variabili ST, ED e ET da assegnare rispettivamente a Start Time, Stop Date e Stop Time . Quindi, chiudi il record con una parentesi di chiusura. Fare clic su OK.

Soluzione LuckyTemplates tra date e orario di lavoro

Una colonna personalizzata con i record verrà aggiunta alla tabella. Fare clic sullo spazio bianco accanto a Registra e si aprirà un riquadro di anteprima. Questo introdurrà tutti i valori di questa riga.

Soluzione LuckyTemplates tra date e orario di lavoro

Orario di lavoro tra le date di LuckyTemplates: le variabili

Possiamo quindi formattare le nostre variabili attraverso la finestra Editor avanzato . Ecco come dovrebbe apparire la finestra dell'editor avanzato. 

Soluzione LuckyTemplates tra date e orario di lavoro

Quindi, mettiamo le nostre variabili in nuove righe separate.

Soluzione LuckyTemplates tra date e orario di lavoro

Ora possiamo espandere la logica di cui abbiamo bisogno. Quindi, invece di un record, potremmo anche usare un'espressione let nidificata qui. Nota che uno di questi funzionerà perché abbiamo più variabili o nomi di campo con valori assegnati a loro.

La nostra data di inizio è attualmente scritta come valore di testo e dobbiamo trasformarla in un formato di data appropriato. Per fare ciò, avvolgi la funzione Date.FromText attorno ad esso. 

Soluzione LuckyTemplates tra date e orario di lavoro

Per l' ora di inizio , anch'essa formattata come stringa, dobbiamo convertirla in un numero. Quindi, possiamo dividerlo per cento e arrotondarlo per rimuovere eventuali cifre decimali. 

Utilizzando la funzione Number.From , dividi il valore della data di inizio per 100 . Quindi, avvolgili all'interno della funzione successiva, Number.Round , e aggiungi , 0 alla fine per arrotondare senza cifre decimali. 

Soluzione LuckyTemplates tra date e orario di lavoro

Per End Date e End Time, copieremo semplicemente le stesse funzioni che avevamo rispettivamente in Start Date e Start Time e le sostituiremo con le variabili appropriate.

Soluzione LuckyTemplates tra date e orario di lavoro

Una volta che le variabili sono formattate correttamente, crea un altro campo nel nostro record per una logica aggiuntiva. Crea una nuova riga premendo Invio. 

Dobbiamo costruire un elenco di date dalla prima data fino alla data di fine. Chiameremo quelle date LD e useremo la funzione List.Dates

Il primo parametro di questa funzione è la data di inizio che sarebbe la nostra SD. Quindi, vuole un conteggio come numero o la differenza tra la data di inizio e la data di fine. Possiamo ottenerlo usando la funzione Number.From seguita da ( ED – SD) + 1 . Nota che il "+1" non viene mostrato nelle prossime serie di schermate, ma dovrebbe esserci un +1 .

Il terzo parametro si chiama step come durata e vogliamo un incremento di un giorno. Possiamo ottenerlo usando Duration.From (1). 

Soluzione LuckyTemplates tra date e orario di lavoro

Abbiamo creato un elenco con le date dalla primissima data di inizio fino alla data di fine. Quello che vogliamo dopo è creare un elenco di orari che vada di pari passo con quello. 

Chiamiamo questo LT per i tempi di elenco. LT può avere un periodo giornaliero di un solo giorno che richiede una logica leggermente diversa rispetto a se si estende su più giorni. Quindi è qualcosa per cui dobbiamo creare una condizione. 

Vogliamo che la condizione dica "se la nostra data di inizio è la stessa della nostra data di fine, allora l'ora di fine meno l'ora di inizio". I risultati dovrebbero essere in un elenco di formato, quindi usiamo l' inizializzatore di elenco rappresentato da { }

Soluzione LuckyTemplates tra date e orario di lavoro

Ora, se disponiamo di un intervallo di date che si estende su più giorni, la prima data sarà 24 meno l'ora di inizio. Lo aggiungeremo alla nostra condizione come istruzione else . Ancora una volta, formattalo come un elenco usando le parentesi graffe.

Soluzione LuckyTemplates tra date e orario di lavoro

A questo punto, non abbiamo tenuto conto degli altri giorni interi, quindi utilizzeremo il simbolo e commerciale (&) per aggiungere più elenchi. Per ogni giorno intero, crea un elenco con il valore 24 che rappresenta le 24 ore che abbiamo in un giorno. Useremo List.Repeat per questo. 

Con la funzione List.Repeat , crea un elenco che contiene 24 e ripetilo un numero di volte contando il numero di giorni in LD . Per ottenere ciò, usa List.Count (LD)   quindi sottrai 2 perché abbiamo un elenco separato per la nostra data di inizio e creeremo un altro elenco per l'ora di fine. 

In sostanza, questo creerà un elenco con solo 24 ore per ogni giorno intero. 

Soluzione LuckyTemplates tra date e orario di lavoro

Per l'ora di fine, possiamo aggiungerla di nuovo come elenco utilizzando la e commerciale, quindi, utilizzando gli inizializzatori di elenco, chiamiamo ET. 

Soluzione LuckyTemplates tra date e orario di lavoro

Finora, abbiamo due grandi elenchi, un elenco di date e un elenco di orari, con le loro lunghezze uguali tra loro. Da questi due elenchi, possiamo costruire una singola tabella. 

In una nuova riga, creiamo un'altra variabile per la tabella che chiameremo t e utilizzeremo la funzione Table.FromColumns . Questa funzione richiede liste come lista e useremo il nostro LD. 

Il nostro LD contiene singole date dalla data di inizio fino alla data di fine. Possiamo trasformare quell'elenco di date nel valore della data di fine mese passando LD e chiamando la funzione Date.EndOfMonth . Quindi nella riga successiva, prendiamo anche  il nostro LT .

Soluzione LuckyTemplates tra date e orario di lavoro

Premi Invio per creare un'altra riga e imposta la nostra tabella come tipo table . La nostra tabella avrà due colonne, la prima colonna è una colonna data. Quindi, crea una colonna Data e chiama la funzione Date.Type .

La seconda colonna sarà la nostra colonna Ore e sarà un numero intero. Pertanto, creeremo una colonna Hrs e chiameremo Int8.Type.

Soluzione LuckyTemplates tra date e orario di lavoro

Abbiamo la parentesi di chiusura per chiudere il nostro record e una parentesi di chiusura per chiudere la nostra funzione Table.AddColumn . Fare clic su Fine e otteniamo un elenco di record in una colonna personalizzata. 

Soluzione LuckyTemplates tra date e orario di lavoro

Ancora una volta, fai clic sullo spazio bianco accanto a ciascun record e la tabella dovrebbe aprirsi nella parte inferiore dello schermo. 

Soluzione LuckyTemplates tra date e orario di lavoro

Si noti che abbiamo la nostra tabella t nell'ultima riga. Proviamo a scavare in uno dei Registri. Fare clic con il tasto destro sul primo risultato e Aggiungi come nuova query

Soluzione LuckyTemplates tra date e orario di lavoro

Otterremo lo stesso riepilogo di prima e se clicchiamo su Table , dovremmo ottenere i nostri valori Date e Hrs .

Soluzione LuckyTemplates tra date e orario di lavoro

Ma siamo principalmente interessati alla tabella di output finale. Per concentrarci su questo, rimuoviamo la query di aiuto facendo clic con il pulsante destro del mouse su Custom e scegliendo Delete . Conferma facendo clic su Elimina nella finestra pop-up.

Soluzione LuckyTemplates tra date e orario di lavoro

Una volta eliminato, possiamo tornare alla nostra query iniziale e fare nuovamente clic sullo spazio bianco accanto a Record. Mostrerà gli stessi risultati di prima. Ma questa volta, espandiamo la barra della formula e chiamiamo [t] accanto alle nostre parentesi di chiusura.

Soluzione LuckyTemplates tra date e orario di lavoro

Nella colonna Custom, possiamo vedere che ogni Record è cambiato in Table

Soluzione LuckyTemplates tra date e orario di lavoro

Orario di lavoro tra le date di LuckyTemplates: proiezione

Dalla tabella che stiamo osservando, ci sono solo due colonne di interesse: il nome dello staff e la nostra colonna personalizzata. Possiamo usare la proiezione per conservare solo quelle due colonne di questa tabella. 

Vai alla barra della formula e accanto alla nostra parentesi di chiusura, seleziona i campi che vogliamo mantenere inserendoli tra parentesi quadre. Quindi premere il segno di spunta.

Soluzione LuckyTemplates tra date e orario di lavoro

Dovremmo ottenere questo risultato.

Soluzione LuckyTemplates tra date e orario di lavoro

Possiamo espandere la tabella nidificata facendo clic sulle icone delle frecce  accanto a Custom . Deseleziona Usa il nome della colonna originale come prefisso e fai clic su OK.

Soluzione LuckyTemplates tra date e orario di lavoro

La nostra tabella dovrebbe apparire così.

Soluzione LuckyTemplates tra date e orario di lavoro

Orario di lavoro tra le date di LuckyTemplates: valori aggregati

Tutto ciò che resta da fare ora è aggregare questi valori. Per farlo, seleziona la colonna Staff Name e vai a Transform. 

Nella finestra pop-up, scegli Hrs sotto la colonna Values ​​perché è ciò che vogliamo aggregare. Quindi, seleziona Sum sotto Aggregate Value Function . Quindi fare clic su OK.

Soluzione LuckyTemplates tra date e orario di lavoro

Il nostro output finale sarà simile a questo. 

Soluzione LuckyTemplates tra date e orario di lavoro


Creazione di una tabella di date in LuckyTemplates Il modo più rapido possibile
Confronto temporale per tabelle di date non standard in LuckyTemplates
Valore DateTime: come eliminare i secondi

Conclusione

In questo blog, hai visto un approccio alla Start Stop Challenge di Access Analytic. Hai imparato a calcolare il numero totale di ore lavorate da ciascun membro del personale in un mese e come gestire eventuali errori di battitura nei tuoi dati. 

Con questa tecnica e LuckyTemplates, l'orario di lavoro tra le date può essere facilmente calcolato nella propria organizzazione o come pratica per approfondire le proprie conoscenze e competenze 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

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 blog tratterà anche come importare oggetti da R a LuckyTemplates.

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.

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.

Introduzione al filtraggio del contesto in LuckyTemplates

Introduzione al filtraggio del contesto in LuckyTemplates

In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.

Idee di materializzazione per cache di dati in DAX Studio

Idee di materializzazione per cache di dati in DAX Studio

Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.

Reporting aziendale tramite LuckyTemplates

Reporting aziendale tramite LuckyTemplates

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

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cos'è il gateway LuckyTemplates? Tutto quello che devi sapere