¿Cómo creo una columna de fórmula con fechas / turnos personalizados?Estoy trabajando en un análisis relacionado con la estructura del turno de trabajo. Operamos 12 horas por turno. Es decir, trabajamos de 7 a.m. a 7 p.m. (turno de día, D) y de 7 p.m. a 7 a.m. (turno de noche, N).
Actualmente tengo un script de columna de fórmula de la siguiente manera:
"WW" || Char (Week of Year (:date)) || "." || Char (Day of week (:date) - 1) ||
If (Hour (:date) <= 19 & Hour(:date) >= 7, "D", "N")
Parece que no funciona de la manera que esperaba bcs según este script, cambió a un nuevo día cada vez que llegaba a las 12 a. M.
Por ejemplo:
El script convertirá 12/01/2020 5:49:47 AM a WW49.2N. Debería ser WW49.1N. WW49.2D comienza cuando la fecha y la hora son el 12/01/2020 7:00:00 a.m. Esto se debe a que el turno de noche es de 7 p.m. a 7 a.m. ¿Alguien puede sugerir o aconsejar una forma alternativa de crear el guión?
AnalíticaTabla de datosOtroScriptingRe: ¿Cómo creo una columna de fórmula con fechas / turnos personalizados?Creo que la mejor manera de manejar esto es hacer una corrección en los valores de fecha y hora restando 7 horas, lo que hace que los turnos se alineen con los valores del día.
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"
);
Re: ¿Cómo creo una columna de fórmula con fechas / turnos personalizados?solo quería confirmar, cuando dices - En Horas (7) ¿Significa sustrato 7 horas?
Re: ¿Cómo creo una columna de fórmula con fechas / turnos personalizados?Resta 25200 segundos del valor especificado para la columna Fecha de la fila actual.
25200 = 60 segundos por minuto X 60 minutos por hora X 7 horas
Además, cometí un pequeño error en mi fórmula.La comparación If () debe tener una comparación "<" para el segundo elemento, no "<="
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"
);