17.02.2019, 14:34 (Dieser Beitrag wurde zuletzt bearbeitet: 17.02.2019, 14:50 von WillWissen.
Bearbeitungsgrund: Formatierung
)
Hallo,
ich würde gerne eine Durchlaufszeit-Berechnung in Tagen ohne Unterbrechungszeiträume durchführen!
Ich möchte in einer Auftragsliste (je Zeile ein Artikel), eine Tage Berechnung durchführen. Dafür soll die Differenz zwischen Eingang- und Ausgangsdatum berechnet werden. Das ist noch einfach.
Es kann jedoch bis zu 3 Unterbrechungszeiträume geben. Diese Unterbrechungstage sollen von den Gesamttagen abgezogen werden. Auch das konnte ich lösen.
Das Problem ist allerdings, dass die Unterbrechungszeiträume sich überschneiden können und die sich überschneidenden Tage nicht doppelt abgezogen werden dürfen.
Kann mir jemand bei diesem Problem helfen? Ich wäre für jede Idee dankbar!
Spalte A --> Eingang Spalte B --> Ausgang Spalte C --> Unterbrechungsbeginn 1 Spalte D --> Unterbrechungsende 1 Spalte E --> Unterbrechungsbeginn 2 Spalte F --> Unterbrechungsende 2 Spalte G --> Unterbrechungsbeginn 3 Spalte H --> Unterbrechungsende 3 Spalte I --> Berechnung der Tage aktiver Arbeit
Hier mal etwas Theorie wie man die Ausfallzeiten berücksichtigen kann. Voraussetzung bei mir ist, dass die zumindest chronologisch eingetragen werden. Ich hab jetzt aber nicht in Deine Beispieldatei geschaut, ich versuche es meistens erst mal ohne.
Hallöchen, In meinem Ansatz multipliziere ich mit der Prüfung, ob das Folgedatum kleiner als das vorherige Enddatum ist. Füge eine zusätzliche Prüfung hinzu, ob der Folgeeintrag größer als 0 ist - auch wieder per Multiplikation.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28 • Torsden
18.02.2019, 22:01 (Dieser Beitrag wurde zuletzt bearbeitet: 18.02.2019, 22:02 von Elex.)
Hi
Für dein Anliegen denke ich macht es durchaus Sinn sich eine Funktion selbst zu schreiben. Bei der unten stehenden benutzerdefinierten Funktion sollten die Bedingungen wie x < y keine Rolle spielen bzw. Leere Zellen berücksichtigt sein.
Code:
'benutzerdefinierter Funktionen Public Function Test(rng As Range) Dim dict As Object Dim n As Long, j As Long
Set dict = CreateObject("Scripting.Dictionary") For j = 1 To 3 If rng.Cells(j * 2 + 1).Value <> "" And rng.Cells(j * 2 + 2).Value <> "" Then For n = rng.Cells(j * 2 + 1).Value To rng.Cells(j * 2 + 2).Value dict(n) = 1 Next n End If Next j Test = (1 + rng.Cells(2).Value - rng.Cells(1).Value) - dict.Count End Function
Um A2 bis H2 auszuwerten schreibst du in I2 =Test(A2:H2)