Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1480to1484
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel Formel gesucht

Excel Formel gesucht
12.03.2016 12:08:33
Manuel
Hallo liebe Forumsmitglieder,
ich mache gerade eine Auswertung mittels Excel, komme aber nicht weiter. Vielleicht weiß ja einer von euch einen Rat.
Ich habe mehrere Prozesse mit Uhrzeit gestoppt, sprich Prozess A beginnt um 12:01:01 und endet um 12:05:06. Die ganzen Prozesse (sind ca. 90) sind untereinander mit Beginn und Endzeit in die Zellen geschrieben. Nun ist das Problem, das der Prozess B nicht erst dann anfängt wenn Prozess A fertig ist, sondern oftmals mittendrin oder gar davor.
Gibt es eine Formel (oder Makro) mit dem ich mir ausrechnen lassen kann wie viel Zeit gearbeitet wurde und wieviel Zeit nichts passiert ist?
Hier mal ein Beispiel
Die unten abgebildeten Prozesse ergeben einen Hauptprozess. Um den Beginn des Hauptprozesses zu identifizieren habe ich einfach eine MIN() Funktion genommen.
07:15:00 07:33:00 Prozess A
07:15:00 07:33:00 Prozess B
07:30:00 07:36:00 Prozess C
07:40:00 08:39:00 Prozess D
07:33:41 07:34:36 Prozess E
07:35:20 07:37:00 Prozess F
Bei diesem Beispiel beginnt der Hauptprozess um 7:15 und endet um 8:39. Es wird immer gearbeitet bis auf 7:37 - 7:40. Wie bekomme ich jetzt automatisch diesen Wert ausgerechnet?
Danke!

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel Formel gesucht
12.03.2016 14:10:47
Michael
Hi Manuel,
den "Hauptprozess" kann man bei Deinen Beispielen nicht anhand des Namens identifizieren; ist es richtig, daß der beendet ist, sobald eine neue Anfangszeit kleiner als die vorhergehende ist (also D= 7:40 und E= 7:33)?
Dann sind die Pausen immer dort, wo die rechte Zeit in der n-ten Zeile kleiner als die linke Zeit in der n+1-ten Zeile ist.
Also in VBA alles in ein Array laden und mit einer Schleife durchgucken oder erst Mal in einer Hilfsspalte Prozesswechsel errechnen
= wenn(linkeSpalte(n+1) kleiner linkeSpalte(n);KennzeichenSetzen;"")
und in einer weiteren die Differenzen wie oben.
Schöne Grüße,
Micheal

Anzeige
AW: Excel Formel gesucht
12.03.2016 15:32:51
Manuel
Hi Micheal!
Danke für deine Hilfe! Mit Makros kenn ich mich zwar halbwegs aus, aber mit Arrays hab ich noch nicht oft gearbeitet und weiß nicht so richtig wie ich das ganze angehen sollte.
Der Hauptprozess (aus meinem Beispiel eben) endet bei der Maximalen Zeit aller Prozesse A-F, also 8:39, Beginn wäre 7:15. In der Tabelle stehen alle Hauptprozesse getrennt durch eine freie Zeile untereinander, mein Beispiel war nur ein Ausschnitt aus der Tabelle.
Grüße,
Manuel

Das könnte ggf wie folgt fktionieren, ...
12.03.2016 14:23:19
Luc:-?
…Manuel;
hier mit 2en meiner Standard-UDFs (die Fml-Cracks können gern eine einfachere StandardLösung erarbeiten!):
 ABCDEFG
1TeilProzessBeginnEnde HauptProzess 
2Prozess A07:15:0007:33:00 BeginnEnde 
3Prozess B07:15:0007:33:00 07:15:0008:39:00 
4Prozess C07:30:0007:36:00 UnterbrechungenFormeln
5Prozess D07:40:0008:39:00 BeginnEnde 
6Prozess E07:33:4107:34:36 07:37:0007:40:00E3:=MIN(B2:B7)
7Prozess F07:35:2007:37:00   F3:=MAX(C2:C7)
8E6:E7: {=MTRANS(VSplit(VJoin(WENN(KKLEINSTE(VSplit(VJoin(B2:B7)&" "&F3;;1);ZEILE(A1:A7))>KKLEINSTE(VSplit(E3&" "&
9                VJoin(C2:C7);;1);ZEILE(A1:A7));KKLEINSTE(VSplit(E3&" "&VJoin(C2:C7);;1);ZEILE(A1:A7));"");;-1)&" ";;1))}
10F6:F7: {=MTRANS(VSplit(VJoin(WENN(KKLEINSTE(VSplit(VJoin(B2:B7)&" "&F3;;1);ZEILE(A1:A7))>KKLEINSTE(VSplit(E3&" "&
11                VJoin(C2:C7);;1);ZEILE(A1:A7));KKLEINSTE(VSplit(VJoin(B2:B7)&" "&F3;;1);ZEILE(A1:A7));"");;-1)&" ";;1))}
Auf die UDFs VJoin und VSplit wurde von mir schon oft verlinkt, sie müssten also leicht im Archiv zu finden sein (erstere in aktueller Version 1.4 nur - zusammen mit letzterer - in hochgeladenen BspDateien).
Feedback nicht unerwünscht! Gruß, Luc :-?
Besser informiert mit …

Anzeige
Es geht unter der Annahme, ...
12.03.2016 14:56:49
Luc:-?
…dass Beginn und Ende des HauptProzesses separat berechnet wdn, aber auch kürzer so:
 ABCDEF
1TeilProzessBeginnEnde HauptProzess
2Prozess A07:15:0007:33:00 BeginnEnde
3Prozess B07:15:0007:33:00 07:15:0008:39:00
4Prozess C07:30:0007:36:00 Unterbrechungen
5Prozess D07:40:0008:39:00FormelnBeginnEnde
6Prozess E07:33:4107:34:36E3:=MIN(B2:B7)07:37:0007:40:00
7Prozess F07:35:2007:37:00F3:=MAX(C2:C7)  
8E6:E7: {=MTRANS(VSplit(VJoin(WENN(KKLEINSTE((B2:B7;F3);ZEILE(A1:A7))>KKLEINSTE((E3;C2:C7);
9                ZEILE(A1:A7));KKLEINSTE((E3;C2:C7);ZEILE(A1:A7));"");;-1)&" ";;1))}
10F6:F7: {=MTRANS(VSplit(VJoin(WENN(KKLEINSTE((B2:B7;F3);ZEILE(A1:A7))>KKLEINSTE((E3;C2:C7);
11                ZEILE(A1:A7));KKLEINSTE((B2:B7;F3);ZEILE(A1:A7));"");;-1)&" ";;1))}

Man kann dann aber auch ganz auf die UDFs verzichten:
E6[:E7]:{=WENNFEHLER(KKLEINSTE(WENN(KKLEINSTE(($B$2:$B$7;$F$3);ZEILE($A$1:$A$7))>KKLEINSTE(($E$3;$C$2:$C$7);ZEILE($A$1:$A$7));KKLEINSTE(($E$3;$C$2:$C$7);ZEILE($A$1:$A$7)));ZEILE(A1));"")}
F6[:F7]:{=WENNFEHLER(KKLEINSTE(WENN(KKLEINSTE(($B$2:$B$7;$F$3);ZEILE($A$1:$A$7))>KKLEINSTE(($E$3;$C$2:$C$7);ZEILE($A$1:$A$7));KKLEINSTE(($B$2:$B$7;$F$3);ZEILE($A$1:$A$7)));ZEILE(A1));"")}

…oder mit AGGREGAT, ebenfalls als 1zellige (singulare) MatrixFml, kürzer so:
E6[:E7]:{=AGGREGAT(15;6;WENN(KKLEINSTE(($B$2:$B$7;$F$3);ZEILE($A$1:$A$7))>KKLEINSTE(($E$3;$C$2:$C$7);ZEILE($A$1:$A$7));KKLEINSTE(($E$3;$C$2:$C$7);ZEILE($A$1:$A$7)));ZEILE(A1))}
F6[:F7]:{=AGGREGAT(15;6;WENN(KKLEINSTE(($B$2:$B$7;$F$3);ZEILE($A$1:$A$7))>KKLEINSTE(($E$3;$C$2:$C$7);ZEILE($A$1:$A$7));KKLEINSTE(($B$2:$B$7;$F$3);ZEILE($A$1:$A$7)));ZEILE(A1))}

Luc :-?

Anzeige
AW: Es geht unter der Annahme, ...
12.03.2016 15:29:05
Manuel
Hey Luc!
Danke für deine Antwort, habe ich auch gerade ausprobiert. Das Problem dabei ist, dass es durchaus auch vorkommen kann das in einem Hauptprozess mehrere Unterbrechungen sind. Das lässt sich dann nicht mehr mit deinem Code abdecken. Die Uhrzeit habe ich auch nur um mir die Dauer dazwischen auszurechnen, sprich wie lange haben alle Unterbrechungen in dem Hauptprozess zusammen gedauert.
Hast du vielleicht eine andere Idee wie man das noch angehen könnte, um die Gesamte Dauer der Unterbrechung herauszufinden?

sorry,
12.03.2016 15:34:58
Michael
Manuel,
ich hatte die letzte Antwort noch nicht gesehen...
Gruß,
Michael

Anzeige
Mal sehen, später, hatte angenommen, ...
12.03.2016 15:54:53
Luc:-?
…das klappt auch, aber nicht getestet, Manuel.
Die 90 Prozesse sind doch hoffentlich alle TeilProzesse eines HauptProzesses. Oder sind das auch mehrere HptProzesse? Die Summation der Unterbrechungszeiten dürfte das kleinere Übel sein.
SchöWE, Luc :-?

AW: Mal sehen, später, hatte angenommen, ...
12.03.2016 18:14:34
Manuel
Danke das ihr euch meinem Problem annehmt. Also um es nochmal genauer zu erklären, versuche ich es mal mit folgenden Beispiel:
10:41:39 10:52:21 Prozessschritt 1
10:51:14 11:00:02 Prozessschritt 2
09:58:54 10:01:52 Prozessschritt 1
10:57:03 11:11:31 Prozessschritt 2
10:03:00 10:04:00 Prozessschritt 3
.
.
.
Diese beiden sind jeweils unterschiedliche Hauptprozesse die ich auch gerne getrennt betrachten möchte. Heißt ich würde gerne für beide separat rausfinden wollen wann Anfangszeit ist und wann der Prozess beendet ist (Das ist ja kein Problem mit Max() und Minx()), und ich würde gerne für beide rausfinden wie lange die Dauer der Unterbrechung war wo nicht "gearbeitet" wurde.
Im konkreten Beispiel oben: Beim ersten ist der Beginn um 10:41:39 und Ende um 11:00:02, eine Unterbrechung ist nicht vorhanden. Beim zweiten ist Beginn um 9:58:54 und Ende um 11:11:31, eine Unterbrechung von 54 Minuten und 11 Sekunden.
Konnte ich jetzt alle Fragen beantworten :)?
Grüße,
Manuel

Anzeige
Ja, denke schon, ...
13.03.2016 04:21:46
Luc:-?
…Manuel;
allerdings wirst du ohne Bsp deiner DateiStruktur mit dem leben müssen, was hier in deine Ausführungen hineingedeutet wird. Wenn's eine Lösung ohne Hilfsspalten wird, kann das uU ziemlichen Fml­Anpassungs­Aufwand für dich bedeuten! Bis jetzt sind's aber noch Hilfsspalten, weil eine Standard­Fml­Lösung bisher ziemlich lang geworden ist. Evtl greife ich doch noch zu UDFs.
Morrn, Luc :-?

Aus den Hilfsspalten sind nun nicht wirklich ...
14.03.2016 03:04:49
Luc:-?
…benötigte DemoSpalten (blaue Schrift) zum besseren FmlVerständnis geworden, Manuel,
und die Fmln sind auch kürzer und können ganz auf UDFs verzichten, sind jetzt aber idR vertikal orientierte mehrzellige (plurale) MatrixFmln. Einzelligkeit ist hier sinnlos, denn dadurch entfällt die MatrixFml-Form (auch bei AGGREGAT-Benutzung!) nicht. Einen deiner Werte habe ich geändert (ebenfalls in blauer Schrift), um mehrere Unterbrechungen zu erreichen (die hätten allerdings auch schon die alten Fmln ausgegeben!).
Die lfdNr des Prozesses ist erforderlich, um die Zeiten besser den Prozessen zuordnen zu können. Kommen SchrittLaufzeiten ≥24h vor, müssen die lfdNrn in den betroffenen Fmln noch mit einer hinreichenden 10er-Potenz >0 multipliziert wdn:
 ABCDEFGHIJKLMNO
1ProzesslfdNrProz'SchrittBeginnEndeBeginnEndeBeginnEndeTotal Berechnungsdemonstrationszellen
2Alpha1PSchritt 107:15:0007:33:00Prozess AlphaUnterbrechungen Prozess Alpha 07:15:0007:33:00  
3Alpha1PSchritt 207:15:0007:33:0007:15:0008:39:0007:33:0007:33:4100:00:41 07:15:0007:33:0007:33:0007:33:41
4Alpha1PSchritt 307:34:0007:36:00  07:37:0007:40:0000:03:00 07:33:4107:34:36  
5Alpha1PSchritt 407:40:0008:39:00      07:34:0007:36:00  
6Alpha1PSchritt 507:33:4107:34:36      07:35:2007:37:0007:37:0007:40:00
7Alpha1PSchritt 607:35:2007:37:00   Gesamt00:03:41 07:40:0008:39:00  
8Beta2PSchritt 110:41:3910:52:21Prozess BetaUnterbrechungen Prozess Beta 10:41:3910:52:21  
9Beta2PSchritt 210:51:1411:00:0210:41:3911:00:02    10:51:1411:00:02  
10Gamma3PSchritt 109:58:5410:01:52Prozess GammaUnterbrechungen Prozess Gamma 09:58:5410:01:5210:01:5210:03:00
11Gamma3PSchritt 210:57:0311:11:3109:58:5411:11:3110:01:5210:03:0000:01:08 10:03:0010:04:0010:04:0010:57:03
12Gamma3PSchritt 310:03:0010:04:00  10:04:0010:57:0300:53:03 10:57:0311:11:31Formeln
13Formeln   J3[:J5;J9;J11:J12]:=WENN(H3&I3="";0;I3-H3)    L2:L12: {=INDEX(KKLEINSTE($D$2:$D$12+$B$2:$B$12;ZEILE($A$1:$A$11));ZEILE($A$1:$A$11))}
14F3[;F9;F11]: {=MIN(WENN($B$2:$B$12=B2;$D$2:$D$12))}J7[;J14]:=TEILERGEBNIS(9;J3:J5)Gesamt00:54:11 M2:M12: {=INDEX(KKLEINSTE($E$2:$E$12+$B$2:$B$12;ZEILE($A$1:$A$11));ZEILE($A$1:$A$11))}
15G3[;G9;G11]: {=MAX(WENN($B$2:$B$12=B2;$E$2:$E$12))}J15:=TEILERGEBNIS(9;J3:J14)Insgesamt00:57:52 N2:N11: {=WENN((TAG(L3:L12)=TAG(M2:M11))*(L3:L12>M2:M11);M2:M11;"")}
16H3:H5[;H9;H11:H13]: {=WENNFEHLER(AGGREGAT(15;6;WENN(KKLEINSTE($D$2:$D$12+$B$2:$B$12;ZEILE($A$2:$A$11))>KKLEINSTE($E$2:$E$12+$B$2:$B$12; O2:O11: {=WENN((TAG(L3:L12)=TAG(M2:M11))*(L3:L12>M2:M11);L3:L12;"")}
17                                        ZEILE($A$1:$A$10));KKLEINSTE($E$2:$E$12+$B$2:$B$12;ZEILE($A$1:$A$10));"")/(($B$2:$B$11=$B2)*($B$3:$B$12=$B2));ZEILE($A$1:$A$10));"")}     
18I3:I5[;I9;I11:I13]:{=WENNFEHLER(AGGREGAT(15;6;WENN(KKLEINSTE($D$2:$D$12+$B$2:$B$12;ZEILE($A$2:$A$11))>KKLEINSTE($E$2:$E$12+$B$2:$B$12;     
19                                 ZEILE($A$1:$A$10));KKLEINSTE($D$2:$D$12+$B$2:$B$12;ZEILE($A$2:$A$11));"")/(($B$2:$B$11=$B2)*($B$3:$B$12=$B2));ZEILE($A$1:$A$10));"")}     

Falls die Wiederholungen von ProzessBezeichnung und lfdNr stören, kann deren Schrift in der Farbe des Hintergrunds gefärbt oder eine spezielle Art von VerbundZellen, die Inhalt in jeder TeilZelle erlaubt, benutzt wdn.
Erfolgreiche Anpassung! Luc :-?

Anzeige
"Undank ist der Welt Lohn...!" :-[ owT
16.03.2016 04:11:25
Luc:-?
:-?

@Luc :-? Schade,
12.03.2016 15:33:08
Michael
Luc :-?,
daß keine Antwort kommt...
Aber wenn ich die Frage richtig verstanden habe, mit "90 Prozessen", sollen mehrere Hauptprozesse ermittelt werden - ob die Unterbrechungen über ALLES oder relativ zum jeweilen HP gesucht sind oder nicht, geht aus der Frage nicht eindeutig hervor.
Habe natürlich gleich getestet, ob die Tabellen schon das "neue" Format haben, hehe.
Ich verabschiede mich für heute und wünsche happy exceling,
Michael

Nee, noch nicht! Ich arbeite an VbZellenRegie, ...
12.03.2016 15:51:07
Luc:-?
…Michael,
womit das evtl indirekt verbunden wdn könnte. Ist ganz schön happig, schon, wenn die speziellen nicht berücksichtigt wdn. Und dann gibt's da ja noch meine (harmlos daherkommenden) StapelTabellen… ;-]
SchöWE, Luc :-?

Anzeige
Dir auch,
13.03.2016 17:16:11
Michael
Luc:-?,
und viel Spaß beim Basteln,
schöne Grüße,
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige