Announcement

Collapse
No announcement yet.

Zeitdifferenzen ohne Wochenende

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zeitdifferenzen ohne Wochenende

    Hi zusammen,

    Für eine Auswertung von Arbeitsabläufen müsste ich errechnen können, wie lange bestimmte Prozesse gebraucht haben, also z.B. vom Eingang bis zur vollständigen Verbuchung. Hierzu ist in meiner Datenbank vermerkt, zu welchem Zeitpunkt bestimmte Schrittte stattgefunden haben, die Auswertung soll in einem Excel-Sheet dargestellt werden.

    Nun wäre es den entsprechenden Mitarbeitern gegenüber natürlich unfair, wenn sie einen Auftrag am Freitag nach Dienstschluss um 16:00 Uhr zugewiesen bekommen, 2 Tage und 18 Stunden anzurechnen, wenn der sofort am Montag um 8:00 Uhr bearbeitet und um 10:00 Uhr verbucht wird also nur 2 Stunden gebraucht hat, wenn ich in Excel aber einfach die Zeiten voneinander abziehe, kommt genau dies dabei raus.

    Gibt es irgendwelche Standardfunktionen, mit denen ich berechnen kann, wie viel von der Zeit für Wochenenden und Feiertage draufgegangen ist, wenn ich die "Leerlaufzeit" zwischen 16:00 und 8:00 Uhr noch abziehen könnte wäre es noch besser, oder, wenn ich mir so etwas selbst schreiben muss, hat vielleicht irgendjemand einen Tipp, wie ich da rangehen könnte?

    Ich habe die Frage vorsichtshalber mal auch ins Windows/Excel-Forum gestellt, ist eigentlich so etwas wie "cross-posting" möglich, also ein Thread, der von beiden Foren auf die gleiche Diskussion verweist?

    Mit freundlichen Grüßen
    Martin Dietz

  • #2
    Wir sind hier im VB.NET Forum und Du postest ein Excel Problem, aber ich will mal nicht so sein

    =WENN($C3<>"";WENN(WOCHENTAG(A3;2)>5;(D3+E3)-F3;ABS(((D3+E3)-F3)-SVERWEIS(WOCHENTAG($A3;2);Parameter!$I$5:$J$11;2)) );0)

    Diese Zeile hier macht etwas ähnliches wie Du vor hast, der wirklich interessante Teil ist
    WOCHENTAG(A3;2)>5
    hier wird abgefragt ob das Datum in Zelle A3 größer als Freitag ist. Damit sollte Dir doch schon geholfen sein, oder?

    Geht auf jeden Fall in Excel 2003 und 2007, wie weit runter das noch kompatibel ist kann ich nicht sagen, aber ich denke mal die Funktion sollte es schon sehr lange geben.

    Gruß Womble

    Comment


    • #3
      Naja, ich habe es in beiden Foren gepostet, da es nötig werden könnte, die Berechnung in meiner VB-Applikation durchzuführen, und dann die berechneten Werte nach Excel zu bringen. daher ja auch die Frage nach der Möglichkeit eines cross-Postings, also eines Threads, der in beiden Foren auftaucht, aber nur einmal geführt wird

      Also, ich habe zwar nicht ganz verstanden, was Du mir da gegeben hast, zumal mir die Excel-Datei fehlt, um herauszufinden was in den Zellen bei Dir drinsteht und was auf der Seite Parameter steht, aber dass Du die Fallunterscheidung auf den Wochentag des eingetragenen Datums stellst, ist schon mal von vorneherein der falsche Ansatz. Wenn ich von Montag bis Dienstag der nächsten Woche rechne, muss ich 2 abziehen, wenn ich von Montag bis Dienstag dieser Woche rechne, muss gar nichts weg, beide Male sind die Wochentage aber Montag und Dienstag. ALso entweder hast Du da in den Zellen noch irgendwelche Formeln, die Du vergessen hast mitzugeben, oder es ist halt doch der falsche Ansatz.

      Gruß
      Martin Dietz

      Comment


      • #4
        Das war ja nicht so gedacht das Du einfach meine Formel übernehmen solltest Ich wollte Dir nur einen Wink geben wie man das WE erkennen kann.

        Ausgehend davon das in A1 das Startdatum und in B1 das Endedatum steht ergibt sich für mich für die Tage erstmal diese Formel:
        =WENN(B1-A1>5;(B1-A1)-RUNDEN((B1-A1)/7;0)*2;(B1-A1)-WENN(WOCHENTAG(B1)<WOCHENTAG(A1);2;0))

        Heißt so viel wie, wenn die Differenz zwischen den Tagen größer als 5 ist, war mind. 1 WE dazwischen, also die Anzahl Tage - (die Anzahl WE * 2), ansonten einfach die Differenz bilden abzüglich ein evtl. vorhandenes Wochenende (zu erkennen daran das der Wochentag des Ende Datums kleiner ist als der des Startdatums)

        !! Diese Formel kann NICHT abbilden das ein Prozess evtl. schon während des WEs beendet wird, wenn der Prozess über den Freitag hinaus geht kann er erst am Montag beendet werden !!

        Die Stunden solltest Du ja selbst noch dazu bauen können.

        Gruß Womble

        Comment


        • #5
          Hups, habe noch einen kleinen Fehler gefunden

          Muß noch mal kurz überlegen wie ich das lösen kann.

          Comment


          • #6
            So, ich denke das sollte es jetzt sein, zumindest für die ganzen Tage zwischen dem Start und Ende Datum, der Rest sind ja jeweils die Stunden der angefangenen Tage.

            =WENN(B1>A1;B1-A1-(WENN((B1-(WOCHENTAG(B1;2)))>(A1-(WOCHENTAG(A1;2)));((B1-(WOCHENTAG(B1;2)))-(A1-(WOCHENTAG(A1;2))))/7*2;0))-1;0)

            Wenn Ende > Start dann Ende - Start - (Wenn Sonntag_vor_dem_Ende > Sonntag_vor_dem_Start) dann (Sonntag_vor_dem_Ende - Sonntag_vor_dem_Start) / 7 * 2 sonst 0 - 1 Tag sonst 0

            Die alte Formel hatte ein Problem wenn man von Freitag bis Montag der übernächsten Woche rechnen musste. (Kommt davon wenn man husch-husch macht )
            Diese Formel sieht immer noch nicht vor das ein Prozess vor Montag aufhört, wenn er am Fr nicht beendet wurde - könnte aber ohne Probleme nachgerüstet werden. (Nach dem * 2 müsste gefragt werden ob gerade Sonntag ist und dann wieder ein Tag angezogen werden)

            Jetzt fehlen noch die Stunden von Starttag und Endtag dann war's das.

            Bei Bedarf kann ich das mit den Stunden auch noch nachliefern, dazu müsste ich nur wissen wie die Tage gewichtet werden (alle mit 8 Stunden oder evtl. unterschiedlich)

            Gruß Womble

            Comment


            • #7
              Danke für den Versuch, aber das ist inzwischen nicht mehr nötig, ich habe das hier intern weitergegeben, und ein Kollege hat mir eine Funktion zur Anzahl der Arbeitstage zwischen zwei Daten in VB zusammengebastelt, die dann auch Feiertage mit berücksichtigt (den Code für die Feiertage hat er, wie er sagt, aus MSDN abgekupfert), weil er das in seiner Applikation auch gebraucht hat (er muss irgendwie 8 Arbeitstage vor einem eingetragenen Termin Warnmeldungen ausgeben). Die Funktion DiffArbeitstage hat zwar momentan noch kleinere Probleme, wenn einer der Tage ein Feiertag ist, aber im großen und ganzen klappt das. Ich werde also doch die Zeitspanne in meiner Applikation berechnen und dann den errechneten Wert in die Excel-Tabelle schreiben, damit Excel das dann in einer Grafik anzeigen kann.

              Trotzdem nochmal danke, Womble

              Gruß
              Martin Dietz

              Comment

              Working...
              X