Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Tage berechnen mit mehreren Unterbrechungen
#1
Wink 
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

Gruss Torsden
Antworten Top
#2
Hallo Torsden,

ohne Beispieltabelle wird das nix. https://www.clever-excel-forum.de/thread-326.html
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#3
Hallo Günter,

natürlich! Hätte ich auch selber drauf kommen können!

Danke!

Gruß Torsden


Angehängte Dateien
.xlsx   Durchlauf.xlsx (Größe: 9,52 KB / Downloads: 9)
Antworten Top
#4
Hallo Torsten,

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.

Arbeitsblatt mit dem Namen 'Tabelle1'
ABCDEFGHI
105. Jan12. Jan10. Jan15. Jan15. Jan17. Jan13

ZelleFormel
I1=((C1-B1)+1)-(C1>=D1)*((C1-D1)+1)+((E1-D1)+1)-(E1>=F1)*((E1-F1)+1)+((G1-F1)+1)
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
.      \\\|///      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:
  • Torsden
Antworten Top
#5
A2:H2: 30. Jan/15. Feb/31. Jan/04. Feb/02. Feb/06. Feb/09. Feb/12. Feb

I2: =B2-A2+1-SUMME(C2:H2*{-1.1.-1.1.-1.1})-3-MIN(;E2-D2-1)-MIN(;G2-F2-1)

ergibt 6 Tage= 17 - (11+3) -- 3 -- 0

wenn die Daten "zulässig" sind, also 

A<=Rest und B>=Rest 
C<=E<=G
C<=D
E<=F
G<=H
[-] Folgende(r) 1 Nutzer sagt Danke an LCohen für diesen Beitrag:
  • Torsden
Antworten Top
#6
Hallo und erstmal vielen Dank für die beiden Lösungsvorschläge!

Wenn ich alles richtig umgesetzt habe, funktionieren die Berechnungen aber nur, wenn ich alle 3 Arbeitsstops eintrage.

Bei zwei Arbeitsstops geht die Durchlaufzeit in den 4stelligen Bereich! Es kann auch 1, 2 bzw. 3 Arbeitstops geben!

Wie kann ich dieses noch beheben?

Danke im voraus!

Gruss Torsden
Antworten Top
#7
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:
  • Torsden
Antworten Top
#8
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)

Erklärung zum Umgang mit ben.Funk. (Wenn nötig)
https://support.office.com/de-de/article...748ae8231f

Gruß Elex
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • Torsden
Antworten Top
#9
Hallo Elex,

Deine Funktion klingt für mich erstmal super! Aber ich bekomme, auch durch lange rum "probiererei" nur immer den #Wert angezeigt.

Vielleicht könntest du nochmal drüber schauen? Wäre echt nett!!

Gruss Torsden


Angehängte Dateien
.xlsm   Durchlauf.xlsm (Größe: 16,84 KB / Downloads: 4)
Antworten Top
#10
Hi

Da du nur #Wert erhältst, gehe ich davon aus das du die Ausführung von Makros noch nicht erlaubt hast.
 
In i8 steht bei dir =Test(C8:H8) und wenn ich Makros erlaube kommt als Ergebnis -10 heraus.
Rechnet also schon mal.

Für das richtige Ergebnis muss dann in i8 =Test(A8:H8) stehen.

Gruß Elex
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste