Wie berechnet man die Anzahl der Arbeitstage?Hallo Community
Ich brauche noch einmal eure Hilfe und Ratschläge. Als neuer Benutzer fällt es mir schwer, etwas zu lernen.
Ich habe eine Datentabelle mit Startdatum und Enddatum. Ich möchte die Anzahl der Arbeitstage zwischen dem Start- und Enddatum berechnen? Wie geht das am besten in JMP? Meine Idee ist, eine Spalte hinzuzufügen und eine Formel zu erstellen, z. B. Datumsdifferenz?? Aber ich bin mir nicht sicher, was die bessere Option wäre.
Bitte beachten Sie das beigefügte Beispiel

Danke
Martin
Erweiterte statistische ModellierungMassenanpassungBetreff: Wie berechnet man die Anzahl der Arbeitstage?Hallo Jerry
Das war wirklich hilfreich. Ich habe meine eigene Liste erstellt und nun zeigte sie, was ich möchte.
Danke
Martin
Betreff: Wie berechnet man die Anzahl der Arbeitstage?Hallo @Martinej ,
Ich habe vor einiger Zeit ein Add-In geschrieben, das die Anzahl der Arbeitstage zwischen zwei Datumsspalten berechnet. Feiertage und andere bestimmte Tage, die Sie ausschließen möchten, werden durch die Pflege einer in Ihrem Add-In-Verzeichnis gespeicherten Datei „Holiday List.jmp“ berücksichtigt. Hinweis: Bei dieser Datei kann es sich um ein beliebiges Dokument (Excel, .txt, .csv usw.) handeln, das an einem beliebigen Ort verwaltet wird, auf den der Computer des JMP-Benutzers zugreifen kann. Dies würde jedoch eine geringfügige Änderung an der zugrunde liegenden JSL erfordern, um den Dateispeicherort bereitzustellen. Ansonsten gehe ich davon aus, dass es Ihren gewünschten Bedarf so wie es ist erfüllt. Befolgen Sie die Anweisungen zum Herunterladen, Installieren und Bearbeiten der Feiertagslistendatei: NETWORKDAYS-Funktion
Hoffe das hilft,
Jerry
Betreff: Wie berechnet man die Anzahl der Arbeitstage?Mein Favorit ist das alte North Carolina Baseball-Feiertag .
Betreff: Wie berechnet man die Anzahl der Arbeitstage?Um etwas hinzuzufügen @Craige_Hales 's und @Jeff_Perkinson 's Gedanken zu Feiertagen usw., Sie haben Gedanken zur Berücksichtigung von „lokalen Feiertagen“ erwähnt. Das wird wirklich schwierig, es sei denn, Sie übernehmen eine Standarddefinition für „lokal“. Beispielsweise gibt es in Kanada genau wie in den USA einen „Thanksgiving“-Feiertag. Allerdings ist es für Kanada ein anderer Kalendertag als für die USA. Und lassen Sie mich gar nicht erst auf Stadt- oder Landesebene in den USA beginnen. In den Bundesstaaten Maine und Massachusetts beispielsweise ist der Patriot's Day ein Feiertag, der nirgendwo sonst in den USA gefeiert wird. Um es noch schwieriger zu machen, schließen einige Geschäfte, andere bleiben geöffnet. Einschließlich Banken und Finanzinstitute.
Betreff: Wie berechnet man die Anzahl der Arbeitstage?Die Arbeit mit Codierung ist für mich neu und ich scheine es nicht zum Laufen zu bringen. Allerdings habe ich mit einigen Standardformeln herumgespielt und Lösungen gefunden. Dabei werden jedoch Kalendertage und nicht nur Arbeitstage verwendet. Für dieses Experiment reicht es aus, sofern es zum Vergleich gleich ist.
Betreff: Wie berechnet man die Anzahl der Arbeitstage?Die einfache Lösung wäre, den Testausdruck zu erweitern.
// define an expression that answers the question
holidays = associativearray({1jan2020,25dec2020});
includeThisDate = Expr(
(2/*monday*/<= Day Of Week( date ) <= 6/*friday*/)
&
!(holidays<<CONTAINS></CONTAINS>Neujahr und Weihnachten fallen im Jahr 2020 auf Wochentage, also 260 statt 262. Sie müssen das assoziative Array irgendwann in der Zukunft aktualisieren und benötigen möglicherweise auch historische Daten. Manche Feiertage fallen nicht jedes Jahr auf denselben Tag. Was für ein hässliches Problem, das dazu führt...
Eine komplizierte Lösung könnte so etwas wie verwenden https://www.abstractapi.com/holidays-api
(Gutschrift an @Jeff_Perkinson für Ändern einer Datums- und Uhrzeitspalte, sodass nur das Datum angezeigt wird.)
Betreff: Wie berechnet man die Anzahl der Arbeitstage?Ja, Arbeitstage sind alle Wochentage (Mo-Fr). Am besten wäre es, wenn ich mich auch auf örtliche Feiertage einstellen könnte
irgendwelche Vorschläge?
Betreff: Wie berechnet man die Anzahl der Arbeitstage?Auch andere Fragen: JMP-Daten enthalten immer eine Uhrzeit, die oft auf null Sekunden nach Mitternacht eingestellt ist. Aber wenn der Bereich 12.00 Uhr Montag bis 12.00 Uhr Montag 7 Tage später reicht, wie wollen Sie dann die beiden halben Montage zählen? Oder sollten beide gezählt werden, auch wenn es Anfang Montag Mitternacht ist?
Das Zählen der Tage ist möglicherweise keine schlechte Wahl, wenn Ihre Bereiche klein und nicht zu groß sind (es folgt schlecht getesteter Code):
// define an expression that answers the question
includeThisDate = Expr(
2/*monday*/<= Day Of Week( date ) <= 6/*friday*/
);
// brute force counting:
countSelectedDaysInRange = Function( {firstDate, lastDate, testexpr},
{date, count},
If( lastDate < firstDate,
Throw( "dates reversed" )
);
count = 0;
For( date = firstDate, date <= lastDate, date += In Days( 1 ),
count += (testexpr != 0)
);
count;
);
Show( 262 == countSelectedDaysInRange( 1jan2020, 31dec2020, Name Expr( includeThisDate ) ) );
Show( 104 == countSelectedDaysInRange( 1jan2020, 31dec2020, Expr( !(2/*monday*/<= Day Of Week( date ) <= 6/*friday*/) ) ) );
Show( 366 == countSelectedDaysInRange( 1jan2020, 31dec2020, 1 ) );// 2020 is leap year
Show( 0 == countSelectedDaysInRange( 1jan2020, 31dec2020, 0 ) );// no days counted262 == countSelectedDaysInRange(01Jan2020, 31Dec2020, Name Expr(includeThisDate)) = 1;
104 == countSelectedDaysInRange(01Jan2020, 31Dec2020, Expr(!(2 <= Day Of Week(date) <= 6))) = 1;
366 == countSelectedDaysInRange(01Jan2020, 31Dec2020, 1) = 1;
0 == countSelectedDaysInRange(01Jan2020, 31Dez2020, 0) = 1;
Der obige Code enthält den letzten Tag (<= lastdate statt
Aus schmerzhafter Erfahrung weiß ich, dass es schwierig ist, mit Datums- und Zeitangaben richtig zu arbeiten.
Nutzen Sie die integrierten Funktionen so oft wie möglich.
Kommentieren Sie den Code für denjenigen, der ihn als Nächstes verwaltet.
Testen Sie Ihren Code sorgfältig!
Wenn Sie nur eine grobe Näherung benötigen,
(1. Januar 2021-1. Januar 2020)/inTage(1)*5/7 == 261.428571428571
was nahe an der Zahl 262 liegt.
bearbeiten: Datumsdifferenz(1. Januar 2020, 1. Januar 2021, „Tag“)*5/7 Die grobe Antwort könnte einfacher aussehen
Betreff: Wie berechnet man die Anzahl der Arbeitstage?Als erstes müssen Sie den „Arbeitstag“ definieren. Ist es jeden Wochentag (Mo-Fr)? Was ist mit Feiertagen/staatlichen Feiertagen? Religiöse Feiertage?