Comment créer une colonne de formules avec des dates/équipes personnalisées ?Je travaille sur une analyse liée à la structure des quarts de travail. Nous opérons 12 heures par quart de travail. Cela signifie que nous travaillons de 7h à 19h (équipe de jour, D) et de 19h à 7h (équipe de nuit, N).
Actuellement, j'ai un script de colonne de formule comme suit :
"WW" || Char (Week of Year (:date)) || "." || Char (Day of week (:date) - 1) ||
If (Hour (:date) <= 19 & Hour(:date) >= 7, "D", "N")
On dirait que cela ne fonctionne pas comme je m'attendais à ce que bcs soit basé sur ce script, il passait au nouveau jour chaque fois que l'heure atteignait minuit.
Par exemple:
Le script convertira le 01/12/2020 5:49:47 en WW49.2N. Ce devrait être WW49.1N. WW49.2D démarre lorsque la date et l'heure sont le 12/01/2020 7:00:00 AM. En effet, l'heure du quart de nuit est de 19h à 7h. Quelqu'un peut-il suggérer ou conseiller une autre façon de créer le script ?
Modélisation statistique avancéeAutomatisation et scriptsÉtudes de consommation et de marchéConception d'expériencesRe : Comment créer une colonne de formules avec des dates/équipes personnalisées ?Vos quarts de travail sont de 7h à 19h D et de 19h à 7h N.Si une heure pour l'équipe de nuit du 2ème jour est au-delà de minuit, JMP renverra le jour (:date) renverra le jour 3, car JMP mesure les jours en fonction de minuit.Cependant, si pour les calculs, nous décalons la valeur :date de 7 heures, cela signifiera que le quart de nuit sera de midi à minuit, et ne franchira jamais la limite de jour JMP.
Re : Comment créer une colonne de formules avec des dates/équipes personnalisées ?Je vois que jmp calculerait toujours en secondes. d'ailleurs @txnelson pourriez-vous expliquer pourquoi nous devons soustraire 7 heures (25 200 secondes) de l'heure réelle ?
La condition scénarisée indique que n'importe quel moment entre 12h00 et 12h00 est le jour ("D")
Re : Comment créer une colonne de formules avec des dates/équipes personnalisées ?Il soustrait 25200 secondes de la valeur spécifiée pour la colonne Date de la ligne actuelle.
25200 = 60 secondes par minute X 60 minutes par heure X 7 heures
De plus, j'ai fait une petite erreur dans ma formule.La comparaison If() doit avoir une comparaison "<" pour le deuxième élément, pas "<="
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 : Comment créer une colonne de formules avec des dates/équipes personnalisées ?Je voulais juste confirmer, quand vous dites - En Heures( 7 ) cela signifie-t-il substrat 7 heures?
Re : Comment créer une colonne de formules avec des dates/équipes personnalisées ?Je pense que la meilleure façon de gérer cela est de faire une correction sur les valeurs de date et d'heure en soustrayant 7 heures, ce qui aligne les décalages sur les valeurs du jour
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 : Comment créer une colonne de formule avec des dates/décalages personnalisés ?C'est intéressant, car vous auriez pu échanger les positions de >= et < dans la formule :
correctedDate = :date - In Hours( 7 );
"WW" || Char( Week Of Year( correctedDate ) ) || "." || Char( Day Of Week( correctedDate ) - 1 ) ||
If( 0 < Hour( correctedDate ) <= 12,
"D",
"N"
);
Je travaille sur un problème similaire et l'affectation des décalages nuit/jour est légèrement différente, selon la position relative des symboles < et <= dans l'instruction if. Il serait intéressant de permettre l'utilisation directe des horodatages dans la formule if (si heure > 12:00:00...). C'est peut-être le cas, mais je n'ai pas suffisamment étudié la question.
Cependant, ma question principale : comment avez-vous choisi l'emplacement des symboles < et <= ? Bien sûr, il est important d'avoir une répartition égale de 12 heures par quart de travail, mais cela pourrait être obtenu avec les deux configurations (< avant <= et <= avant <).
Re : Comment créer une colonne de formule avec des dates/décalages personnalisés ?19h est le début du nouveau quart de travail qui est hour() 19. Puisque nous prenons un décalage de 7 heures, la valeur Hour() qui démarre le quart de nuit est 19-7, soit 12. Si la comparaison était <=, alors une valeur de temps d'exactement 12 serait considérée comme un quart de jour.
Re : Comment créer une colonne de formule avec des dates/décalages personnalisés ?Merci, je m'en suis rendu compte plus tard en modifiant mon propre fichier, après avoir posé ma question, qui n'était pas très claire. Merci pour votre patience.