Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1512to1516
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

Summen je Schicht bilden

Summen je Schicht bilden
21.09.2016 11:27:19
Marco
Hallo!
Folgendes Problem:
ich habe eine Tabelle mit verschiedenen Einträgen je Uhrzeit.
Beispiel:
07:00 14 7
08:00 18 2
08:20 19 5
...
Dies über den ganzen Tag verteilt. Mein Ziel ist es die Summen je Schicht zu bekommen.
Also alles von 07:00 - 14:00 alles von 14:00 - 22:00 und alles von 22:00 - 07:00 soll automatisch aufaddiert werden, weil ich ja mehrere Tage habe und das sehr aufwendig werden kann.
Ich hab ein Beispieldatei dazugehängt, was es noch besser vedeutlicht.
https://www.herber.de/bbs/user/108308.xlsx
Vielen Dank!
Gruß Marco

34
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nicht eindeutig ...
21.09.2016 11:40:03
...
Hallo Marco,
... Du schreibst dass die Grenzen bei 7:00; 14:00 und 22:00 liegen und nimmst die Angaben für die letzteren beiden Zeiten mit in die Summierung nicht aber de für 7:00.
Warum? Wo liegt wirklich die erste Grenzzeit. Bei 6:00? Ich bin dann erst mal offline. Später dann wieder.
Gruß Werner
.. , - ...
AW: nicht eindeutig ...
21.09.2016 12:40:10
Marco
Hallo Wernern,
sorry, du hast recht, ich meinte 06:00 - 14:00.
Ein Mitarbeiter arbeitet von 22:00 - 06:00
der nächste von 06:00 - 14:00 und der letzte von 14:00 - 22:00.
Jetzt ist es aber so, dass der Eintrag von 06:00 der immer automatisch kreiert wird, noch zur Vorgänger Schicht gehört. Weil um 06:00 erfolgt der Eintrag, was von 05:00 - 06:00 passiert ist. Ist ein Eintrag um 06:30 in der Tabelle, gehört dieser schon zur nächsten Schicht, weil es der Eintrag von 06:00 - 06:30 ist usw. Alles was größer 06:00, größer 14:00 und größer 22:00 gehört zur nächsten Schicht.
Hallo Uwe,
ja das Datum und die Uhrzeit hätte ich auch noch wenn benötigt.
Anzeige
AW: dazu ...
21.09.2016 17:10:40
...
Hallo Marco,
... nur kurz die Information heute komme ich nicht mehr dazu, morgen dann.
Gruß Werner
.. , - ...
Nachfrage...
21.09.2016 11:40:52
UweD
Hallo
kannst du das Datum noch in A unterbringen?
Eingabe z.B. 20.09.2016 07:00:01 aber als hh.mm formatiert?
Ist es dir so recht, ...
22.09.2016 02:14:15
Luc:-?
…Marco,
oder willst du lieber eine kürzere Fml oder eine mit AGGREGAT und ohne MatrixFmlForm:
 ABCDE
1UhrzeitiOniOSumme iOSumme niO
223:0072142611
30:00821540  
41:001101476  
52:00813531  
63:00430251  
74:001012485  
85:00961405  
96:009234736 7823 587
107:0078941999
117:56775433  
128:004434  
139:00901471  
1410:00717371  
1511:0014993  
1612:0000  
1713:0000  
1814:006182293 9932 050
1914:376062171818
2015:00325138  
2116:00926347  
2217:00902407  
2318:00949300  
2419:00449208  
2520:00905327  
2621:00976329  
2722:009583556 9962 628
2823:009514552727
290:00889461  
301:001043379  
312:00949423  
323:00555327  
334:00850506  
345:001001387  
356:009394957 1773 433
367:009073693535
378:00804422  
389:00767420  
3910:00787360  
4010:045430  
4111:00523303  
4211:1418776  
4312:0000  
4412:29234129  
4513:0011172  
4614:008083215 1822 502
4715:0010083534646
4816:001009337  
4917:00959349  
5018:00891293  
5119:00528213  
5220:00803276  
5321:001067347  
5422:009873697 2522 537
5523:009554085454
560:00992443  
571:00864489  
582:001054454  
593:00574188  
604:001065364  
615:001093355  
626:004661587 0632 859
Die singulare (1zellige) MatrixFml dazu lautet:
D2[:E62]: {=WAHL(2-(VERWEIS(STUNDE($A3)+(MINUTE($A3)>0)/10;{0.6,1.14,1.22,1};{22.6.14.22})=VERWEIS(STUNDE($A2)+(MINUTE($A2)>0)/10;{0.6,1.14,1.22,1};{22.6.14.22}))+(ZEILE()=ZEILEN(A$1:A$62));WENN(ODER(ZEILE(D1)=1;ISTZAHL(D1));""&ZEILE(D1);"");SUMME(INDEX(B$2:B2;MAX(WENNFEHLER(N$1:N1*(--D$1:D1<ZEILE(D2));""))):B2))}
So wie in D2:E2 sollen auch die anderen Hilfszahlen am Anfang eines SchichtBlocks aussehen. Im TabBlatt wdn sie aber ebenso wie Zahlen≤0 auf Grund des Zahlenformats #.##0;;; nicht angezeigt, weil sie Text(-Zahlen) sind. Sie sind wg der reinen Uhrzeiten (ohne TagesAngabe) in A erforderlich, könnten aber auch in einer separaten Hilfsspalte untergebracht wdn.
Feedback nicht unerwünscht! Gruß, Luc :-?
Besser informiert mit …
Anzeige
AW: Ist es dir so recht, ...
22.09.2016 07:40:17
Marco
Hallo!
Vielen Dank schonmal für eure Hilfe.
Es funktioniert bei mir aktuell nur bis zur ersten Schicht. Nach der zweiten Schicht, habe ich die Summe der ersten Schicht auch dabei?
Was habe ich falsch gemacht?
Danke Gruß
Marco
Das weiß ich nicht ohne deinen Versuch zu ...
22.09.2016 10:54:01
Luc:-?
…sehen, Marco;
evtl meine Fml (bei einer ausgewählten 1.Zelle!) nicht als MatrixFml abgeschlossen ([strg][umsch][enter]) und dann erst in die FolgeZellen gezogen oder SchreibFehler oder ganz andere Fml benutzt oder nicht dieselben Bedingungen wie im Bsp u/o Fml nicht richtig angepasst.
Luc :-?
Der Fehler lag bei mir, hatte noch vergessen, ...
22.09.2016 11:52:27
Luc:-?
…eine Bezugsspalte in der 1.Fml zu ändern (Fmln standen zuvor in N2ff):
D2[:E62]: {=WAHL(2-(VERWEIS(STUNDE($A3)+(MINUTE($A3)>0)/10;{0.6,1.14,1.22,1};{22.6.14.22})=VERWEIS(STUNDE($A2)+(MINUTE($A2)>0)/10;{0.6,1.14,1.22,1};{22.6.14.22}))+(ZEILE()=ZEILEN(A$1:A$62));WENN(ODER(ZEILE(D1)=1;ISTZAHL(D1));""&ZEILE(D1);"");SUMME(INDEX(B$2:B2;MAX(WENNFEHLER(D$1:D1*(--D$1:D1<ZEILE(D2));""))):B2))}
Luc :-?
Anzeige
AW: Der Fehler lag bei mir, hatte noch vergessen, ...
22.09.2016 12:58:11
Marco
Vielen Dank Luc!
Deine Version funktioniert nun auch.
Man muss schon einiges drauf haben, wenn man versteht, was der Code genau macht.
Respekt!
Danke!
Das hast du dann ja wohl... ;-) owT
22.09.2016 13:24:37
Luc:-?
:-?
AW: ich kann auch ohne AGGREGAT() ohne {} ...
22.09.2016 10:56:55
...
Hallo Marco,
... Luc hatte in seinem Formelvorschlag u.a. vergessen die Summen um die zuvor ermittelten Schichtsummen zu reduzieren.
Seine Frage: "... willst du lieber eine kürzere Fml oder eine mit AGGREGAT und ohne MatrixFmlForm?" an Dich, war wohl auch teils an mich adressiert, deshalb ist mein Betreff-Text auch eher an Luc gerichtet.
Mein nachfolgende Lösungsvorschlag kommt mit einfachster wie kurzer Formel aus und durch die Kombination mit einfachen bedingten Formatierungsdefinitionen wird auch Deine Zielvorgabe komplett realisiert.
In D2 ist der 1. bedingte Formatierung als Format eine benutzerdefiniertes Zahlenformat: ;;"Summen iO" und der zweiten die Umrandung zuweisen. (beides wird mit der Jeanie leider nicht wirklich sichtbar).
Die Zellformel D2 mit der bedingten Formatierung einfach nach rechts und unten kopieren. In Spalte E die 1. bedingten Formatierung natürlich noch in ;;"Summen niO" wechseln und ferdsch ;-) ...
 ABCDE
1UhrzeitiOniO  
223:00721426  
30:00821540  
41:001101476  
52:00813531  
63:00430251  
74:001012485  
85:00961405Summen iOSummen niO
96:0092347367823587
107:00789419  
117:56775433  
128:004434  
139:00901471  
1410:00717371  
1511:0014993  
1612:0000  
1713:0000Summen iOSummen niO
1814:0061822939932050
1914:37606217  
2015:00325138  
2116:00926347  
2217:00902407  
2318:00949300  
2419:00449208  
2520:00905327  
2621:00976329Summen iOSummen niO
2722:0095835569962628
2823:00951455  

Formeln der Tabelle
ZelleFormel
D2=WENN(ANZAHL(1/(TEXT($A2;"hhmm")*1={22.6.14}*100)); SUMME(B$2:B2)-SUMME(D$1:D1); )

Bedingte Formatierungen der Tabelle
ZelleNr.: / BedingungFormat
D21. / Formel ist =(D3>0)Abc
D22. / Formel ist =(D2>0)+(D3>0)Abc


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Werner
.. , - ...
Anzeige
Das habe ich NICHT, ...
22.09.2016 12:54:26
Luc:-?
…Werner,
denn das muss Deine Fml machen, meine nicht, denn INDEX findet den SchichtBlockAnfang, wofür die TextZahlen benutzt wdn. Der Fehler ist nur trivial, die Fml stand erst in N und beim Übertragen und NachKorrigieren in 2 Etappen habe ich wohl in der 2. die Fml nicht bis zur Anfangszelle, auf die sich meine Fml-Darstellungs-UDF bezieht, gezogen. Da sonst alles stimmte, fiel mir das nicht auf.
Aber Deine Fml ist einfacher und auch wesentlich kürzer. Damit hatte ich auch gerechnet, nicht unbedingt mit AGGREGAT, denn das wäre in meiner Variante kaum unterzubringen und in Deiner nicht erforderlich.
Gruß, Luc :-?
Anzeige
AW: hinzu kommt aber ...
22.09.2016 17:22:26
...
Hallo Luc,
... das Dein Matrixformelvorschlag auf 13 Funktionen und zusätzliche Hilfszellenwerte angewiesen ist. In so einem Fall greifst Du doch ansonsten auf eine UDF zurück ;-)
Gruß Werner
.. , - ...
Deinen 'Wunsch' habe ich wohl vorausgeahnt, ...
23.09.2016 00:32:39
Luc:-?
…Werner,
und inzwischen ist eine derartige Lösung fertig. Dazu dann unten. Zuvor aber noch eine gleich­wertige Alternative nach Deinem Ansatz:
D2[:E62]:=WENN(SUMME(--(--TEXT($A2;"h,m")={6.14.22}));SUMME(B$2:B2)-SUMME(D1:D$2);"")
Wie Du siehst habe ich das TEXT-Konstrukt aufgegriffen und dann auch in folgender Alternative verwendet. Damit's nicht langweilig wird, habe ich hier mal plurale MatrixFmln benutzt, die ganze Ergebnis­Spalten, die nur diese Summen kompakt auflisten, erzeugen. Ansonsten folgt auch diese Lösung iW meinem ursprünglichen Summe-von-bis-Ansatz:
 NOP
1UhrzeitSumme iOSumme niO
206:006 7823 587
314:003 9932 050
422:006 9962 628
506:007 1773 433
614:005 1822 502
722:007 2522 537
806:007 0632 859
Die verwendeten und auf Grund des Ansatzes längeren Fmln mit UDF lauten:
N2:N8: {=INDEX(A2:A62;VSplit(VJoin(WENNFEHLER(ZEILE(A1:A61)/(--TEXT($A2:$A62;"h,m")={6.14.22});"");;-1);;1;1))}
O2:O8[;P2:P8]: {=SUMME(INDEX(B2:B62;MTRANS(DataSet(VSplit(0&" "&VJoin(WENNFEHLER(ZEILE(B1:B61)/
(--TEXT($A2:$A62;"h,m")={6.14.22});"");;-1);;1;1);ZEILEN(B2:B62);-1)+1)):INDEX(B2:B62;VSplit(VJoin(WENNFEHLER(ZEILE(B1:B61)/(--TEXT($A2:$A62;"h,m")={6.14.22});"");;-1);;1;1)))}
DataSet wird hier nur benutzt, um den im von-Teil überflüssigen letzten Wert des bis-Teils zu entfernen, was aber nicht unbedingt erforderlich wäre, nur sauberer (denke hier an die HÄUFIGKEITs­Problematik!) ist.
Gruß + schöWE, Luc :-?
Anzeige
AW: war eine Feststellung, kein Wunsch ...
23.09.2016 08:28:53
...
Hallo Luc,
... aber mit dieser Deinen Lösungsansatz könnte ich mich im vorliegenden Fall nicht wirklich anfreunden.
Wenn eine derartige Ergebniszusammenstellung angestrebt werden sollte, wie von Dir in N:O nun anders als vom Fragesteller angefordert aufgezeigt wurde, müsste ich allerdings noch mal nachdenken.
Gruß Werner
.. , - ...
Deshalb Wunsch in '...', Werner! ;-) owT
23.09.2016 17:59:38
Luc:-?
:-?
Dank Sepps Anregung wdn auch diese Fmln ...
23.09.2016 23:19:14
Luc:-?
…kürzer (und evtl etwas einfacher):
N2:N8: {=INDEX(A2:A62;VSplit(VJoin(WENNFEHLER(ZEILE(A1:A61)/(REST(A2:A62*24-6;8)=0);"");;-1);;1;1))}
O2:O8[;P2:P8]: {=SUMME(INDEX(B2:B62;MTRANS(DataSet(VSplit(0&" "&VJoin(WENNFEHLER(ZEILE(B1:B61)/
(REST($A2:$A62*24-6;8)=0);"");;-1);;1;1);ZEILEN(B2:B62);-1)+1)):INDEX(B2:B62;VSplit(VJoin(WENNFEHLER(ZEILE(B1:B61)/(REST($A2:$A62*24-6;8)=0);"");;-1);;1;1)))}
Luc :-?
Anzeige
AW: kürzer? einfacher?... hmmm? owT
24.09.2016 10:48:47
...
Gruß Werner
.. , - ...
Diese Fmln ziehe ich wg nicht-optimaler Praxis ...
24.09.2016 17:42:41
Luc:-?
…zurück, Werner,
aber deutlich einfacher sind sie wirklich nicht geworden, nur leider praxisuntauglicher. Aber Du kannst ja mal versuchen, etwas Kürzeres nach Deinem Ansatz hierfür zu konstruieren, wobei ja höchst­wahr­schein­lich immer mit der ganzen Matrix gearbeitet wdn muss.
Demnächst stelle ich hier etwas zu einer anderen Problematik ein, was sowohl eine einfache sukzessive Auswertung (Rang!) eines Zell­Bereichs mit Normal­Fml als eine noch einfachere Auf-einmal-Auswertung mit pluraler MatrixFml erlaubt. Nur in einer Variante (von 5 für sukzessive Einzel­Werte) muss dabei auch die ganze Matrix gebildet und mit INDEX zerlegt wdn. Singulare MxFmln sind dabei nur für Daten­felder (aus Ausdrücken als Argument) erforderlich.
Luc :-?
Anzeige
AW: nachgefragt ...
24.09.2016 17:57:44
...
Hallo Luc,
... was meinst Du mit: "...Du kannst ja mal versuchen, etwas Kürzeres nach Deinem Ansatz hierfür zu konstruieren". Ich hatte doch ein deutlich kürzere und einfachere Formel schon aufgezeigt.
Gruß Werner
.. , - ...
Ich meine das, was du mit ...
25.09.2016 00:25:50
Luc:-?
Da müsste ich nochmal nachdenken o.s.ä. kommentiert hattest, Werner. ;-]
Luc :-?
AW: nun dass hatte ich schon getan ...
25.09.2016 10:42:50
...
hallo Luc,
... mir war und ist nicht anderes eingefallen als lediglich eine weitere Verkürzung meines Formelansatzes zu nun nur noch:
=(ANZAHL(1/(TEXT($A2;"hm")*1={220.60.140})))*(SUMME(B$2:B2)-SUMME(F$1:F1))
Gruß Werner
.. , - ...
Anzeige
Das hast Du nicht getan, ...
25.09.2016 15:24:56
Luc:-?
…Werner,
denn das hatte ich nicht gemeint, sondern das: https://www.herber.de/forum/messages/1515947.html
Auf meinen von Dir dort kommentierten BT bezog sich auch meine zurückgenommene Ergänzung.
Aber das muss ja auch nicht sein, weil der Fragesteller das wohl nicht so benötigt…
SchöSoNaMit, Luc :-?
AW: nun, wenn Du das meinst, dann ...
25.09.2016 19:48:47
...
Hallo Luc,
... dann fällt meine Formellösung dafür auch wesentlich einfacher aus. Dann "klammere" ich die Auswertung einfach mit Hilfe von AGGREGAT().
Formel N2 nach unten und O2 nach rechts und unten kopieren:
 NOP
1UhrzeitSumme iOSumme niO
206:0067823587
314:0039932050
422:0069962628
506:0071773433
614:0051822502
722:0072522537
806:0070632859
914:00  

Formeln der Tabelle
ZelleFormel
N2=INDEX({"6:0"."14:0"."22:0"};1+REST(ZEILE(A1)-1;3))*1
O2=WENNFEHLER(SUMME(B$2:INDEX(B:B;AGGREGAT(15;6;ZEILE(B$1:B$99)/(TEXT($A$1:$A$99;"h:m")*1=$N2); ZÄHLENWENN($N$2:$N2;$N2))))-SUMME(O$1:O1); "")


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Werner
.. , - ...
Ja, sehr schön und tatsächlich kürzer, ...
26.09.2016 00:49:08
Luc:-?
…Werner,
obwohl oder besser gerade weil du Einzelwerte isolierst. Damit wäre dann mein Vgl unserer beider unter­schied­lichen Ansätze komplett. ;-)
Luc :-?
AW: ich kann auch ohne AGGREGAT() ohne {} ...
22.09.2016 12:55:39
Marco
Vielen vielen Dank!
Damit kann ich schon sehr gut leben!!
Gruß Marco
ohne AGGREGAT() ohne TEXT
23.09.2016 15:20:42
Josef
Hallo Werner
Ohne die Funktion TEXT(.. geht es noch einfacher.
=WENN(MAX(1*($A2*24={22.6.14}));SUMME(B$2:B2)-SUMME(D$1:D1);"")
Und wenn die Schichten genau wie im vorliegenden Fall im 8-Stunden Intervall vorliegen, dann
=WENN(REST($A2*24-6;8);"";SUMME(B$2:B2)-SUMME(D$1:D1))
Gruss Sepp
Optimal lt Ergebniswunsch-Darstellung! ;-) orT
23.09.2016 18:13:32
Luc:-?
Gruß + schöWE, Luc :-?
AW: noch nicht, hättest Du merken können owT
24.09.2016 10:46:41
...
Gruß Werner
.. , - ...
Ja, wusste ich, weshalb ich ja auch ein das ...
24.09.2016 17:26:39
Luc:-?
…abfangendes Konstrukt verwendet hatte, Werner;
nur hatte ich zwischenzeitig diese Datei gelöscht und dann den gleichen Fehler gemacht, den wohl auch Sepp begangen hat, und der Einfach­heit halber die Forums­Darstellung in eine andere Tabelle kopiert. Dadurch fielen die Sekunden weg, was ich dann nicht mehr beachtet hatte.
Deshalb fktionieren beide Fmln von Sepp und meine iW auf seinem TEXT-Ersatz beruhende Änderung der zusammen­fassenden Fml nicht in der Realität dieser automatischen DÜ, weshalb ich sie hiermit zurückziehe.
Optimal wären Sepps Fmln nur, wenn die Realität optimal wäre, aber das ist sie iaR nicht und auch die DÜ am Schicht­Ende zeigt logischer­weise eine kleine Zeit­Verzögerung, die idR als 1s notiert wurde.
Gruß & schöWE für Euch beide, Luc :-?
AW: so aber nicht für die Originaldaten ...
24.09.2016 10:45:25
...
Hallo Sepp,
... in diesen gibt es nämlich teilweise noch Sekunden. Diese könnte man sicherlich in Deinem Ansatz noch berücksichtigen aber mir fiel eben vor Tagen dazu eben am schnellsten der Ansatz über TEXT() ein.
oT: hab länger zeit nichts von Dir gelesen. Ich hoffe Dir/Euch geht es gut. Wünsche noch ein schönes WE.
Gruß Werner
.. , - ...
AW: so aber nicht für die Originaldaten ...
25.09.2016 22:05:35
Josef
Hallo Werner
Die Sekunden habe ich tatsächlich nicht beachtet, da ich aus Bequemlichkeit dein Beispiel genommen habe. In diesem Falle würde ich mich auch für die Funktion TEXT entscheiden.
Deine kürzere Formel von heute
=(ANZAHL(1/(TEXT($A2;"hm")*1={220.60.140})))*(SUMME(B$2:B2)-SUMME(F$1:F1))
funktioniert leider bei Zeiten von "01:40" und "02:20" nicht richtig
Mein Vorschlag wäre
=MAX((TEXT($A2;"hmm")%={22.6.14})*(SUMME(B$2:B2)-SUMME(D$1:D1)))
Zu. o.T. Ja es geht uns gut. Es sind verschiedene Projekte in Haus und Garten die mich derzeit nebst dem Broterwerb sehr in Anspruch nehmen. Aber ich weiss ja die Excel-User mit Formelproblemen bei dir und anderen Helfern in guten Händen.
Ein guter Wochenstart wünscht
Sepp
Du verkörperst eben Schweizer Präzision-Excel, ...
26.09.2016 09:26:56
...
Hallo Sepp,
...als ich es es eben gesehen habe, war mir auch gleich klar, dass evtl. protokollierte Zeiten "1:40" und "02:20" bei meinen verkürzten Formelansatz zu falschem Ergebnis geführt hätte.
Man muss eben beim Verkürzen einer Formel sehr auf Präzision achten. Da hast mir viele Jahre Erfahrung voraus und beherrschst das perfekt.
oT: freut uns, wenn es Euch gut geht. Meinen Broterwerb überlasse ich übrigens ab Dez. Anderen ;-)
viele Grüße auch an L. von B.
Gruß Werner
.. , - ...
Eben deshalb hatte ich zuletzt mit h,m ...
26.09.2016 12:33:35
Luc:-?
…gearbeitet, Werner… ;-)
Na, dann hast Du ja (nach landläufiger Meinung) ab Dez massig Zeit, obwohl diese Bevölkerungsgruppe die eigentlich niemals hat…
Gruß, Luc :-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige