Berechnung der Dauer zwischen zwei Daten aus verschiedenen Jahren<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich verwende JSL-Skripting, um einen meiner Berichte auszuführen, der die Dauer zwischen zwei Daten berechnen kann. Mein Bericht hat ein Startdatum in Spalte „A“ und ein Enddatum in Spalte „E“. Ich möchte Folgendes berechnen:
1. Dauer zwischen diesen beiden Tagen ohne Wochenenden
2, Dauer zwischen diesen beiden Tagen, Startdatum ist der 31.10.2012 und Enddatum ist der 20.02.2013, und als ich das Forum "Formula(Day(:E - :A) )" verwendete, erhalte ich einen Wert von 10, statt etwas Größeres. Das Startdatum liegt im Jahr 2012 und das Enddatum im Jahr 2013. Muss ich also Änderungen an meinem Skript vornehmen? Die anderen Dauern, die in dasselbe Jahr fallen, werden mit derselben Formel korrekt berechnet, aber die Daten, die in verschiedene Jahre fallen, werden nicht genau berechnet.
kann mir jemand bei den beiden Fragen helfen?
Danke,
Betreff: Berechnung der Dauer zwischen zwei Daten aus verschiedenen JahrenJa, es hat funktioniert.. vielen Dank!!
Betreff: Berechnung der Dauer zwischen zwei Daten aus verschiedenen JahrenOk ich glaube ich verstehe das Problem. JMP folgt offenbar nicht dem ISO 8601-Standard (dh der erste Tag der Woche ist der Montag), sondern der US-Tradition, den Sonntag als ersten Tag der Woche zu feiern. Dies erklärt perfekt Ihre obigen Ergebnisse, da meine Formel das erstere annimmt. Es ist jedoch trivial, die Formel anzupassen, um dies zu berücksichtigen (oder jede andere lokale Definition des Wochentags oder welche Tage als zum Wochenende gehörend gelten).
Versuchen Sie es z. B. mit diesem:
Versuchen ( Summe ( 1 < Wochentag ( Index ( : EIN , : E , 86400 ) ) <= 6 ) - 1 )
Unten ist meine Testausgabe und es scheint zu funktionieren. Der "Zähler" hält über Wochenenden (Sa-So, wo ich wohne). Entfernen Sie das -1, wenn Sie mit "Dauer zwischen zwei Daten" die gesamte Dauer von Start- und Enddatum einschließen möchten. (Hier A = heute, E = zukünftige Tage)
| EIN | E | Wochentag | Werktags |
| 2013-04-05 | 2013-04-05 | Freitag | 0 |
| 2013-04-05 | 2013-04-06 | Samstag | 0 |
| 2013-04-05 | 2013-04-07 | Sonntag | 0 |
| 2013-04-05 | 08.04.2013 | Montag | 1 |
| 2013-04-05 | 2013-04-09 | Dienstag | 2 |
| 2013-04-05 | 2013-04-10 | Mittwoch | 3 |
| 2013-04-05 | 2013-04-11 | Donnerstag | 4 |
| 2013-04-05 | 2013-04-12 | Freitag | 5 |
| 2013-04-05 | 2013-04-13 | Samstag | 5 |
| 2013-04-05 | 2013-04-14 | Sonntag | 5 |
| 2013-04-05 | 2013-04-15 | Montag | 6 |
| 2013-04-05 | 2013-04-16 | Dienstag | 7 |
| 2013-04-05 | 2013-04-17 | Mittwoch | 8 |
| 2013-04-05 | 2013-04-18 | Donnerstag | 9 |
| 2013-04-05 | 2013-04-19 | Freitag | 10 |
| 2013-04-05 | 2013-04-20 | Samstag | 10 |
| 2013-04-05 | 2014-04-21 | Montag | 271 |
| 2013-04-05 | 2015-04-22 | Mittwoch | 533 |
Betreff: Berechnung der Dauer zwischen zwei Daten aus verschiedenen JahrenDie Daten sind numerisch fortlaufend, Datumsformat.. und ich möchte die Anzahl der Wochentage ohne die Wochenenden berechnen. Beispieldaten: -
| Geplanter Starttermin | Abschlussdatum der neuen Aufgabe |
| 3.1.2013 | 3.1.2013 |
| 3.1.2013 | 4.1.2013 |
| 08.01.2013 | 08.01.2013 |
| 08.01.2013 | 08.01.2013 |
| 09.01.2013 | 09.01.2013 |
| 09.01.2013 | 09.01.2013 |
| 09.01.2013 | 11.01.2013 |
| 09.01.2013 | 09.01.2013 |
| 09.01.2013 | 1.10.2013 |
| 09.01.2013 | 09.01.2013 |
| 1.10.2013 | 11.01.2013 |
| 1.10.2013 | 11.01.2013 |
Betreff: Berechnung der Dauer zwischen zwei Daten aus verschiedenen JahrenIch habe Ihre Formel ausprobiert ... sie funktioniert für wenige Zellen ... siehe meine Daten unten ... mit Ihrer Formel ... die Zeilen 1 und 2 widersprechen sich ...
| Geplanter Starttermin | Abschlussdatum der neuen Aufgabe | FRAU |
| 3.1.2013 | 3.1.2013 | 0 |
| 3.1.2013 | 4.1.2013 | 0 |
| 08.01.2013 | 08.01.2013 | 0 |
| 08.01.2013 | 08.01.2013 | 0 |
| 09.01.2013 | 09.01.2013 | 0 |
| 09.01.2013 | 09.01.2013 | 0 |
| 09.01.2013 | 11.01.2013 | 1 |
| 09.01.2013 | 09.01.2013 | 0 |
| 09.01.2013 | 1.10.2013 | 1 |
| 09.01.2013 | 09.01.2013 | 0 |
| 1.10.2013 | 11.01.2013 | 0 |
| 1.10.2013 | 11.01.2013 | 0 |
| 2.1.2013 | 2.1.2013 | 0 |
| 2.1.2013 | 08.01.2013 | 4 |
| 4.1.2013 | 4.1.2013 | -1 |
| 4.1.2013 | 4.1.2013 | -1 |
| 4.1.2013 | 4.1.2013 | -1 |
| 4.1.2013 | 07.01.2013 | 1 |
| 4.1.2013 | 4.1.2013 | -1 |
| 4.1.2013 | 4.1.2013 | -1 |
| 4.1.2013 | 4.1.2013 | -1 |
| 4.1.2013 | 08.01.2013 | 2 |
| 4.1.2013 | 4.1.2013 | -1 |
| 4.1.2013 | 4.1.2013 | -1 |
| 4.1.2013 | 4.1.2013 | -1 |
| 4.1.2013 | 07.01.2013 | 1 |
| 4.1.2013 | 4.1.2013 | -1 |
| 4.1.2013 | 4.1.2013 | -1 |
| 4.1.2013 | 4.1.2013 | -1 |
| 4.1.2013 | 08.01.2013 | 2 |
| 4.1.2013 | 4.1.2013 | -1 |
| 4.1.2013 | 07.01.2013 | 1 |
| 07.01.2013 | 08.01.2013 | 1 |
| 4.1.2013 | 4.1.2013 | -1 |
| 4.1.2013 | 4.1.2013 | -1 |
| 07.01.2013 | 07.01.2013 | 0 |
| 07.01.2013 | 09.01.2013 | 2 |
| 1.10.2013 | 1.10.2013 | 0 |
| 07.01.2013 | 07.01.2013 | 0 |
| 07.01.2013 | 07.01.2013 | 0 |
| 07.01.2013 | 07.01.2013 | 0 |
| 07.01.2013 | 08.01.2013 | 1 |
| 08.01.2013 | 09.01.2013 | 1 |
| 07.01.2013 | 07.01.2013 | 0 |
| 07.01.2013 | 07.01.2013 | 0 |
| 07.01.2013 | 08.01.2013 | 1 |
| 07.01.2013 | 07.01.2013 | 0 |
| 07.01.2013 | 07.01.2013 | 0 |
| 07.01.2013 | 08.01.2013 | 1 |
| 08.01.2013 | 08.01.2013 | 0 |
| 08.01.2013 | 08.01.2013 | 0 |
| 08.01.2013 | 09.01.2013 | 1 |
| 09.01.2013 | 16.01.2013 | 5 |
| 16.01.2013 | 22.01.2013 | 4 |
| 08.01.2013 | 08.01.2013 | 0 |
| 08.01.2013 | 08.01.2013 | 0 |
| 09.01.2013 | 09.01.2013 | 0 |
| 09.01.2013 | 1.10.2013 | 1 |
| 1.10.2013 | 1.10.2013 | 0 |
| 15.01.2013 | 15.01.2013 | 0 |
| 15.01.2013 | 16.01.2013 | 1 |
| 15.01.2013 | 16.01.2013 | 1 |
| 18.01.2013 | 19.02.2013 | 22 |
| 19.02.2013 | 19.02.2013 | 0 |
| 15.01.2013 | 15.01.2013 | 0 |
| 15.01.2013 | 16.01.2013 | 1 |
| 16.01.2013 | 18.01.2013 | 1 |
| 15.01.2013 | 15.01.2013 | 0 |
| 15.01.2013 | 16.01.2013 | 1 |
| 16.01.2013 | 18.01.2013 | 1 |
| 09.01.2013 | 09.01.2013 | 0 |
| 09.01.2013 | 09.01.2013 | 0 |
| 09.01.2013 | 1.10.2013 | 1 |
| 1.10.2013 | 1.10.2013 | 0 |
| 1.10.2013 | 1.10.2013 | 0 |
| 1.10.2013 | 10.01.2013 | 0 |
| 10.01.2013 | 1.10.2013 | 0 |
| 1.10.2013 | 10.01.2013 | 0 |
| 1.10.2013 | 11.01.2013 | 0 |
| 1.10.2013 | 1.10.2013 | 0 |
| 16.01.2013 | 29.01.2013 | 9 |
| 16.01.2013 | 29.01.2013 | 9 |
| 29.01.2013 | 1.2.2013 | 2 |
| 11.01.2013 | 11.01.2013 | -1 |
| 11.01.2013 | 11.01.2013 | -1 |
| 11.01.2013 | 11.01.2013 | -1 |
| 11.01.2013 | 14.01.2013 | 1 |
Betreff: Berechnung der Dauer zwischen zwei Daten aus verschiedenen JahrenHast du jemals die Formel in meiner Antwort ausprobiert? Es sollte Wochentage ausschließen und es funktioniert für mich, wenn die Spalten im Datumsformat sind (keine Zeichenfolgen).
Betreff: Berechnung der Dauer zwischen zwei Daten aus verschiedenen JahrenDies ist die gleiche Berechnung wie die Verwendung der Datumsdifferenz ... aber dies schließt auch Wochenenden ein ... gibt es eine Möglichkeit, NUR Wochentage zu berechnen?
Betreff: Berechnung der Dauer zwischen zwei Daten aus verschiedenen JahrenDas funktioniert, aber ich möchte keine Wochenenden in meine Berechnung einbeziehen. Gibt es eine Möglichkeit, nur Wochentage zu berechnen?
Betreff: Berechnung der Dauer zwischen zwei Daten aus verschiedenen JahrenWenn Ihre Start- und Enddatumsspalten Fortlaufend, Numerisch, Datumsformat sind; dann könnte die Formel für die Dauer zwischen den beiden Spalten in Tagen so aussehen: Datumsdifferenz (:Startdatum, :Enddatum, "Tag")
Wenn Ihre Datumsspalten aus Zeichen bestehen, können Sie den Text wie oben bei PMroz analysieren mit:
Datumsunterschied (
inform(:Startdatum, "m/d/y"),
inform(:Enddatum, "m/d/y"),
"Tag")
Betreff: Berechnung der Dauer zwischen zwei Daten aus verschiedenen JahrenDadurch erhalten Sie die verstrichene Zeit in Tagen.
Fügen Sie zuerst eine neue numerische Variable/Spalte hinzu.
Wählen Sie im Formeleditorfenster das erste Datum aus, klicken Sie auf Subtrahieren, wählen Sie das zweite Datum aus, wählen Sie dann dividieren durch, wählen Sie die Funktion Datum/Uhrzeit in Tagen aus, setzen Sie eine 1 in die Klammer und klicken Sie auf Anwenden.
(:diagnosis_date - :dob_date) / In Tagen ( 1 )
Betreff: Berechnung der Dauer zwischen zwei Daten aus verschiedenen JahrenWie wäre es, wenn Sie die Spalteninformationen verwenden und die Spalten Startdatum und Enddatum mit Datentyp = Numerisch, Modellierungstyp = Kontinuierlich, Format=Datum=m/d/y, Eingabeformat=Datum=m/d/y angeben. Fügen Sie dann eine zusätzliche Spalte hinzu und geben Sie mithilfe der Spaltenformel Enddatum-Startdatum an und wählen Sie auch Format Duration :day:hr:min
Betreff: Berechnung der Dauer zwischen zwei Daten aus verschiedenen Jahrenkannst du das allgemeiner formulieren? Ich werde meine Daten klar erklären.. Ich habe eine Spalte "Startdatum" mit dem Format als Datum (mm/tt/jjjj) und eine andere Spalte "Enddatum" mit dem Format als mm/tt/jjjj. Ich möchte das Startdatum vom Enddatum subtrahieren, mein Datum ist
Anfangsdatum Enddatum
31.10.2012 31.03.2013
15.09.2012 13.02.2013
15.08.2012 29.01.2013
Jetzt möchte ich Enddatum - Startdatum subtrahieren, um den Wert in Tagen zu erhalten
Da das Startdatum im Jahr 2012 und das Enddatum im Jahr 2013 liegt, erhalte ich nicht den richtigen Wert, wenn ich einfach sage: Enddatum -: Startdatum
Betreff: Berechnung der Dauer zwischen zwei Daten aus verschiedenen Jahren1. Diese Spaltenformel sollte die Anzahl der Arbeitstage zwischen den beiden Tagen angeben:
Versuchen ( Summe ( Wochentag ( Index ( : EIN , : E , 86400 ) ) < 6 ) - 1 )
Fügen Sie diese in den Formeleditor ein. Try() wird nur benötigt, wenn Sie leere Zellen in der Datumsspalte haben. Die -1 dient dazu, das Start- (oder End-) Datum aus der Summe auszuschließen. 86400 ist die Anzahl der Sekunden in 24 Stunden.
2. Die Spaltenformel, die dem PMroz-Vorschlag entspricht, wäre:
( : E - : EIN ) / 86400
Betreff: Berechnung der Dauer zwischen zwei Daten aus verschiedenen JahrenKönnen Sie weitere Informationen bereitstellen?Welchen Datentyp und welches Format haben die Spalten A und E?Wenn Sie Daten subtrahieren, erhalten Sie auch die Anzahl der Sekunden zwischen ihnen.Hier ist ein einfaches Beispiel, das die Datumsdifferenz in Tagen berechnet:
ein Treffen = informieren ( "31.10.2012" , "m/d/j" ) ;
bearbeiten = informieren ( "20.02.2013" , "m/d/j" ) ;
cdatum = ( bearbeiten - ein Treffen ) / 3600 / 24 ;
Das führt zu
112