früher stand ich auch ehrfürchtig vor diesen Formeln Nr. 9, aber ich verstand sie nicht und tue es auch heute nicht. Nur weil sie bei excelformeln.de stehen, sind sie noch lange nicht zu empfehlen. Denn warten kann sie keiner!
Viel wichtiger wäre es, in einer Anwendung auf einer Nichtdurchbrechung der fortlaufenden Zeit zu bestehen. Es muss 25:00 statt 1:00 erzwungen werden! Blitzartig werden die Formeln normal, statt stur nicht naturgemäßen Zusammenhängen wie dem goldenen Kalb nachzueifern. Nur weil Zeiten nur als Zeiten eingegeben werden sollen.
Daher empfehle ich einfach mal meine Lösung (ergänzt um Daten-Gültigkeit; mit folgendem Code baut man die Tabelle):
Code:
Sub TagUndNachtschichtMitVariablerPause(): [B1:J5] = "0:00": [B1:J5].ClearContents
[H1:J1] = Array(0, 1 / 4, 5 / 6): [H2:H3] = "=R[-1]C[2]": [I2:J3] = "=R[-1]C+1": [1:4,F7:F8].Font.Color = -16776961
[A4:I4] = Array("Datum", "DienstB", "DienstE", "Pause1B", "Pause1E", "PauseNB", "PauseNE", "Nacht", "Tag")
[A5:G5] = Array("12-8-16", "16:42", "25:32", "19:49", "20:04", "22:44", "22:59")
[H5].FormulaArray = "=SUM((1-2*(COLUMN(RC2:RC6)>3))*ISEVEN(COLUMN(RC2:RC6))*(IFERROR(EXP(LN(IF(" & _
"RC3:RC7>R1C[1]:R3C[1],R1C[1]:R3C[1],RC3:RC7)-IF(R1C:R3C<RC2:RC6,RC2:RC6,R1C:R3C))),)))": [H5:I5].FillRight
[F7] = "Zeiten ab Mitternacht +24:00 eingeben; 0:32 also als 24:32."
[F8] = "Weitere PausenspaltenPAARE (!) immer vor den letzten beiden einfügen und dann diese darüber kopieren."
ActiveWorkbook.Names.Add Name:="x", RefersToR1C1:="=INDEX(Tabelle1!R,COLUMN()-1)": a = Array("=(0<=b5)*(b5<2)", _
"=(b5<=c5)*(c5<2)", "=(b5<=d5)*(d5<=c5)", "=($d5<=e5)*(e5<=$c5)", "=(x<=f5)*(f5<=$c5)", "=($d5<=g5)*(g5<=$c5)")
For i = 2 To 7: Cells(5, i).Validation.Add Type:=xlValidateCustom, Formula1:=a(i - 2): Next: End Sub
EXP(LN( dient innerhalb von WENNFEHLER der Minusvermeidung zugunsten Null. Sonst nix.
Okay, nun hab ich die ersten Lösungsansätze komplett verworfen, weshalb es hier wohl keine Lösung in Anbetracht einer =WENN(UND-Funktion gibt. Aber es ging letztendlich einfacher als gedacht. Vermutlich hatte ich nicht die richtigen Formate vorgegeben, da war wohl so einiges durcheinander.
Jetzt werden die Nachtstunden erst ab der 3. Stunde gezählt - wie im Vertrag vereinbart.
Andere Zellen, wo eine Früh- oder Spätschicht gearbeitet wurde, bleiben wie gewünscht leer.
Danke für alle, die helfen konnten.
Hab die Tabelle im Anhang.
Gruß Papppa
Update: Hier im Forum gibt's 'ne ganze Menge Excel-Code aber nur wenige Helfer lassen in ihren Beispielen verlauten, wie die betroffenen Zellen formatiert werden sollten. Ich habe ja gerade gemerkt, wie wichtig das ist. Ohne die richtige Formatierung kommt kein korrektes Ergebnis. Vielleicht kann man das für weitere Themen besser berücksichtigen.
Die erste Variante ist ja auch noch nicht abgeklärt, zumal ich diese Operatoren noch nicht kenne. Das heißt, ich weiß nicht, was ich anpassen müßte.
Wenn man in Excel am Anfang steht, ist das nicht so leicht.
Woher bekommt man solche Ansichten?
Du hast sie ja auch hier eingefügt.
Diese Ansichten möchte ich mir dann selbst machen und ggf. ausdrucken. Ich finde sie sehr hilfreich.
Schon mal großer Pluspunkt für http://www.online-excel.de/