Seite 1 von 1

Formelfehler? (Zeitberechnung)

Verfasst: Di, 14.02.2012 20:00
von WedlWedl
Hallo zusammen!

Ich bin mal wieder am verzweifeln...

Meine Formel zum ausrechnen der Pause funktioniert bei den meisten Schichten (Zeiten) wo ich eingebe, nur bei einer oder zwei Schichten nicht. :?

Gegeben sei (Arbeitszeit):
< 6 Std keine Pause
>= 6 und <= 9 Std 30 min Pause
>= 9 und <= 11 Std 45 min Pause
>= 11 Std 1 Std Pause

es geht mir nun (in meiner angehängten Tabelle) um den 30. Jan. 2012
dort rechnet mir die Formel (in Spalte Pause) bei der Schicht 10:45 - 20:15 eine 45 min Pause, aber in wirklichkeit bekomm ich nur 30 min geschrieben.

Frage: Stimmt etwas mit meiner Formel nicht ? (Klammerung...nicht wenige ;) )

Danke schonmal fürs durchsehen!
Arbeitszeit_2012.ods
(32.18 KiB) 115-mal heruntergeladen
PS.: Wer Formeln oder so gebrauchen kann, kann sie kopieren ;)

Re: Formelfehler? (Zeitberechnung)

Verfasst: Di, 14.02.2012 20:32
von balu
Hallo WedlWedl,
dort rechnet mir die Formel (in Spalte Pause) bei der Schicht 10:45 - 20:15 eine 45 min Pause
Und was würde jetzt Adam Riese dazu sagen?
Das Ergebnis ist korrekt! Denn 20:15 - 10:45 ergibt 9:30, in Worten: 9 Stunden und 30 Minuten.
Und das wiederum bedeutet:
>= 9 und <= 11 Std 45 min Pause
Diese Bedingung trifft also voll zu.

Noch Fragen?




Gruß
balu

Re: Formelfehler? (Zeitberechnung)

Verfasst: Di, 14.02.2012 20:34
von WedlWedl
Hi balu

Also ist meine Formel korrekt! :)
Dann muß ich doch mal bei meinem Arbeitgeber nachfragen...warum das so ist! Denn ich bekomm nur 30 min Pause gerechnet.

Danke!

LG WedlWedl

Re: Formelfehler? (Zeitberechnung)

Verfasst: Di, 14.02.2012 21:41
von hiob
hi, für deine pausenformel biete ich als alternative ff. an..:

Code: Alles auswählen

=VERWEIS((C3-B3)*24;{0;6,01;9,01;11,01};{0;0,5;0,75;1})/24
statt..:

Code: Alles auswählen

=WENN(ODER(B3="";C3="");"";WENN((C3-B3)<=ZEIT(6;0;0);ZEIT(0;0;0);WENN(UND((C3-B3)>=ZEIT(6;0;0);(C3-B3)<=ZEIT(9;0;0));ZEIT(0;30;0);WENN(UND((C3-B3)>=ZEIT(9;0;0);(C3-B3)<=ZEIT(11;0;0));ZEIT(0;45;0);WENN((C3-B3)>ZEIT(11;0;0);ZEIT(1;0;0);ZEIT(0;0;0))))))

Re: Formelfehler? (Zeitberechnung)

Verfasst: Mi, 15.02.2012 10:39
von WedlWedl
Hi hiob!

Deine Formel sieht auf jeden Fall übersichtlicher aus.
Aber kannst Du mir erklären wie die Formel arbeitet? Steige nicht so ganz durch, auch wegen der Matrixformel.

Danke Dir

LG WedlWedl

Re: Formelfehler? (Zeitberechnung)

Verfasst: Mi, 15.02.2012 14:33
von balu
Hallo

@hiob
Dir ist ein kleiner Fehler unterlaufen.
WedlWedl hat geschrieben: < 6 Std keine Pause
>= 6 und <= 9 Std 30 min Pause
Das heißt:
Bis zu 5 Std. und 59 min. = Pause 0.
AB 6 Std. BIS 8 Std. 59 min. = Pause 30 Min.
Und daraus ergibt sich dann, das wenn man 6 Std. gearbeitet hat, das 30 minuten Pause fällig sind. In deiner Formel bekommt man aber Keine Pause. Also muss die Formel minimal geändert werden. Das zeige ich gleich (*).
Aber ansonsten find ich die Idee sehr gut :D.


@WedlWedl
Aber kannst Du mir erklären wie die Formel arbeitet? Steige nicht so ganz durch, auch wegen der Matrixformel.
Bin wohl nicht hiob, aber dennoch will ich es mal versuchen.

Als erstes: Es ist KEINE Matrixformel!
Matrixformeln sind daran zu erkennen, das die gesammte Formel in geschweiften Klammern steht.
Das ist eine Matrixformel.

Code: Alles auswählen

{=MAX(WENN(A1:A20=X1;C10:C30))}

Code: Alles auswählen

=VERWEIS((C3-B3)*24;{0;6;9;11};{0;0,5;0,75;1})/24
(*) geänderte Formel
Diese ist keine Matrixformel. Sie enthällt lediglich 2 Daten-Arrays die durch die Geschweiften Klammern defeniert werden. Und beide Arrays sind gleich groß, sie bestehen in diesem Falle aus je 4 Datenfelder (weiß net wie ich es zutreffender sagen soll), getrennt durch das Semikolon ;.

Die Funktion ist eigentlich recht "einfach".
Wenn C3 - B3 mit 24 multipliziert = 5,75 ist, dann wird das erste Array nach diesem Wert durchsucht. Da es dort aber den gesuchten Wert nicht exakt gibt, sondern nur 0 und 6, wird der nächst kleinere Wert gegenüber dem Suchwert (in diesem Falle die 0) genommen. Und die Null hat in dem ersten Array den Platz (Index) 1.
Jetzt wird im zweiten Array geschaut welcher Wert denn auf dem 1. Platz (Index) steht. Und das ist in diesem Falle auch die 0.


Anderes Beispiel.
Gesucht: 10,6
Erstes Array hat aber nur 9 und 11. Also die nächst kleinere Zahl ist die 9. Mit dem Index 3.
Zweites Array 3. Index = 0,75

Wenn Du weißt wie =SVERWEIS() vom Prinzip her funktioniert, dann weißt Du auch wie diese Formel hier funktioniert. Der Unterschied besteht darin, das bei SVERWEIS normalerweise der Datenbereich in einem seperaten Bereich in der Tabelle steht. In dieser Formel hier steht er aber nicht seperat, sondern ist in der Formel vorhanden.


Rericht dir das als Erklärung?



Gruß
balu

Re: Formelfehler? (Zeitberechnung)

Verfasst: Mi, 15.02.2012 15:10
von WedlWedl
Danke balu

Wieder einmal aufschlussreich und verständlich!
Danke

LG WedlWedl

Re: Formelfehler? (Zeitberechnung)

Verfasst: Mi, 15.02.2012 22:42
von hiob
hi Balu, du hast sicher recht, ich hatte mich nur an der formel des TE gehalten, nicht an das eigentlich logische...