Come faccio a creare una colonna formula con date / turni personalizzati?Sto lavorando ad un'analisi relativa alla struttura dei turni di lavoro. Operiamo 12 ore per turno. Significa che lavoriamo dalle 7:00 alle 19:00 (turno di giorno, D) e dalle 19:00 alle 7:00 (turno di notte, N).
Attualmente ho uno script di colonna formula come segue:
"WW" || Char (Week of Year (:date)) || "." || Char (Day of week (:date) - 1) ||
If (Hour (:date) <= 19 & Hour(:date) >= 7, "D", "N")
Sembra che non funzioni nel modo in cui mi aspettavo bcs basato su questo script, è cambiato in un nuovo giorno ogni volta che l'ora ha raggiunto le 12:00.
Per esempio:
Lo script convertirà il 12/01/2020 5:49:47 AM in WW49.2N. Dovrebbe essere WW49.1N. WW49.2D inizia quando la data e l'ora sono 12/01/2020 7:00:00 AM Questo perché l'orario per il turno notturno è dalle 19:00 alle 7:00. Qualcuno può suggerire o consigliare un modo alternativo per creare la sceneggiatura?
AnalyticsTabella datiAltroScriptingRi: Come faccio a creare una colonna formula con date / turni personalizzati?Penso che il modo migliore per gestirlo sia fare una correzione sui valori di data e ora sottraendo 7 ore, il che rende i turni in linea con i valori del giorno
correctedDate = :date - In Hours( 7 );
"WW" || Char( Week Of Year( correctedDate ) ) || "." || Char( Day Of Week( correctedDate ) - 1 ) ||
If( Hour( correctedDate ) >= 0 & Hour( correctedDate ) <= 12,
"D",
"N"
);
Ri: Come faccio a creare una colonna formula con date / turni personalizzati?volevo solo confermare, quando dici - In ore (7) significa supporto 7 ore?
Ri: Come faccio a creare una colonna formula con date / turni personalizzati?Sottrae 25200 secondi dal valore specificato per la colonna Data per la riga corrente.
25200 = 60 secondi al minuto X 60 minuti all'ora X 7 ore
Inoltre, ho commesso un leggero errore nella mia formula.Il confronto If () dovrebbe avere un confronto "<" per il secondo elemento, non "<="
correctedDate = :date - In Hours( 7 );
"WW" || Char( Week Of Year( correctedDate ) ) || "." || Char( Day Of Week( correctedDate ) - 1 ) ||
If( Hour( correctedDate ) >= 0 & Hour( correctedDate ) < 12,
"D",
"N"
);