Wie erstelle ich eine Formelspalte mit benutzerdefinierten Daten/Schichten?Ich arbeite an einer Analyse zur Schichtstruktur. Wir arbeiten 12 Stunden pro Schicht. Das heißt, wir arbeiten von 7 bis 19 Uhr (Tagschicht, D) und von 19 bis 7 Uhr (Nachtschicht, N).
Derzeit habe ich ein Formelspaltenskript wie folgt:
"WW" || Char (Week of Year (:date)) || "." || Char (Day of week (:date) - 1) ||
If (Hour (:date) <= 19 & Hour(:date) >= 7, "D", "N")
Scheint, als würde es nicht so funktionieren, wie ich es aufgrund dieses Skripts erwartet hatte. Es wurde immer dann auf einen neuen Tag umgestellt, wenn die Zeit 12 Uhr erreichte.
Zum Beispiel:
Das Skript konvertiert den 01.12.2020 05:49:47 Uhr in WW49.2N. Es sollte WW49.1N sein. WW49.2D startet, wenn Datum und Uhrzeit 01.12.2020 7:00:00 Uhr sind. Dies liegt daran, dass die Zeit für die Nachtschicht von 19:00 bis 7:00 Uhr ist. Kann jemand eine alternative Möglichkeit zum Erstellen des Skripts vorschlagen oder empfehlen?
Erweiterte statistische ModellierungAutomatisierung und SkriptingVerbraucher- und MarktforschungVersuchsplanungBetreff: Wie erstelle ich eine Formelspalte mit benutzerdefinierten Daten/Schichten?Ihre Schichten sind von 7:00 bis 19:00 Uhr D und von 19:00 bis 7:00 Uhr N.Wenn die Zeit für die Nachtschicht am 2. Tag nach Mitternacht liegt, gibt JMP den Tag (:Datum) als Tag 3 zurück, da JMP die Tage basierend auf Mitternacht misst.Wenn wir jedoch für die Berechnungen den :date-Wert um 7 Stunden nach hinten verschieben, bedeutet dies, dass die Nachtschicht von Mittag bis Mitternacht dauert und niemals die JMP-Tagesgrenze überschreitet.
Betreff: Wie erstelle ich eine Formelspalte mit benutzerdefinierten Daten/Schichten?Ich verstehe, dass jmp immer in Sekunden berechnet. Übrigens @txnelson Können Sie erklären, warum wir 7 Stunden (25.200 Sekunden) von der tatsächlichen Zeit abziehen müssen?
Die Skriptbedingung besagt, dass jeder Zeitpunkt zwischen 12:00 und 12:00 Uhr Tag („D“) ist.
Betreff: Wie erstelle ich eine Formelspalte mit benutzerdefinierten Daten/Schichten?Es subtrahiert 25200 Sekunden vom angegebenen Wert für die Spalte „Datum“ für die aktuelle Zeile.
25200 = 60 Sekunden pro Minute x 60 Minuten pro Stunde x 7 Stunden
Außerdem habe ich einen kleinen Fehler in meiner Formel gemacht.Der If()-Vergleich sollte einen „<“-Vergleich für das zweite Element haben, nicht „<="
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"
);
Betreff: Wie erstelle ich eine Formelspalte mit benutzerdefinierten Daten/Schichten?Ich wollte nur bestätigen, dass du sagst: In Stunden( 7 ) Bedeutet das Substrat 7 Stunden?
Betreff: Wie erstelle ich eine Formelspalte mit benutzerdefinierten Daten/Schichten?Ich denke, der beste Weg, damit umzugehen, besteht darin, eine Korrektur der Datums-/Uhrzeitwerte vorzunehmen, indem 7 Stunden abgezogen werden, wodurch die Schichten mit den Tageswerten übereinstimmen
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"
);
Betreff: Wie erstelle ich eine Formelspalte mit benutzerdefinierten Daten/Schichten?Dies ist interessant, da Sie die Positionen von >= und < in der Formel hätten vertauschen können:
correctedDate = :date - In Hours( 7 );
"WW" || Char( Week Of Year( correctedDate ) ) || "." || Char( Day Of Week( correctedDate ) - 1 ) ||
If( 0 < Hour( correctedDate ) <= 12,
"D",
"N"
);
Ich arbeite an einem ähnlichen Problem, und die Zuordnung von Nacht- und Tagschicht unterscheidet sich leicht, je nachdem, welche relativen Positionen die Symbole < und <= in der if-Anweisung haben. Es wäre toll, wenn Zeitstempel direkt in der if-Formel verwendet werden könnten (wenn Zeit > 12:00:00 ...). Vielleicht ist es das ja, ich habe nicht genug recherchiert.
Meine Hauptfrage: Wie haben Sie entschieden, wo die Symbole < und <= platziert werden? Natürlich ist eine gleichmäßige Aufteilung der 12 Stunden pro Schicht wichtig, aber dies ließe sich mit beiden Konfigurationen (< vor <= und <= vor <) erreichen.
Betreff: Wie erstelle ich eine Formelspalte mit benutzerdefinierten Daten/Schichten?19:00 Uhr ist der Beginn der neuen Schicht, also Stunde() 19. Da wir einen Versatz von 7 Stunden verwenden, ist der Hour()-Wert, mit dem die Nachtschicht beginnt, 19-7, also 12. Wenn der Vergleich <= wäre, würde ein Zeitwert von genau 12 als Tagschicht betrachtet werden.
Betreff: Wie erstelle ich eine Formelspalte mit benutzerdefinierten Daten/Schichten?Danke, das ist mir erst später beim Basteln an meiner eigenen Datei aufgefallen – natürlich, nachdem ich meine nicht ganz so durchdachte Frage gepostet hatte. Vielen Dank für deine Geduld.