PDA

Vollständige Version anzeigen : wenn-Verschachtelung oder Verweis?


texasmatze
20.02.2008, 00:15
Ich habe da noch eine Frage zu einem aufgetauchten kleinen Problem:

Szenario: Arbeitgeber zahlt ab 20 Uhr Nachtstunden. Mitarbeiter hat den ganzen Tag Dienst. Er beginnt um 11 Uhr und arbeitet bis 17 Uhr. Halbe Stunde Pause, geht es 17:30 weiter bis 20:30 Uhr. Das macht 0,50 Nachtstunden. Raucherpause. Um 20:45 Uhr gehts weiter bis 23:15 Uhr. Wären 2,5 Nachtstunden.
Meine Formel rechnet aber 3,25 Stunden.
Wie kann ich dem beibringen, dass die Formel gleichzeitig die Anfangszeit abfragt?
So etwa: Wenn Dienstanfang vor 20 uhr und Dienstende nach 20 uhr, dann rechne Differenz von 20 Uhr zu Dienstende; wenn Dienstanfang nach 20 uhr und Dienstende nach 20 uhr, dann rechne Differenz von Dienstanfang zu Dienstende

Ich habe das mit doppelter wenn-verschachtelung probiert, aber irgendwie will das nicht.

Hier ist die "alte" formel: =WENN(STUNDE(F10)>=20;STUNDE(F10)-20+MINUTE(F10)/60;"")

und mein Versuch:

=WENN(STUNDE(E10)<20)UND(STUNDE(F10)=>20;STUNDE(F10)-20+MINUTE(F10)/60;WENN(STUNDE(E10)=>20)UND(STUNDE(F10)=>20;(STUNDE(F10)-STUNDE(E10))+(MINUTE(F10)-(MINUTE(E10))

Die Ausgabe der Zeit soll Dezimal sein. Also nicht 3:30, sondern 3,5

rastrans
20.02.2008, 22:31
Hallo!

Mir ist nicht so ganz klar, was du berechnen willst!

Wenn ich bis 21:00Uhr arbeite und um 12:00Uhr angefangen habe, dann habe ich 9 Stunden gearbeitet. Nach deiner Berechnung soll ich dann nur 1 Stunde gearbeitet haben???? Da mein Arbeitsende nach 20:00Uhr liegt, soll ich ja nur die Differenz zwischen Arbeitsende und 20Uhr berechnen... Entweder ich würde vor 20Uhr gehen oder kündigen.... oder die Problematik nochmals überdenken!;)

Aber wenn du da arbeiten willst... Bitteschön:

A1 := Anfangszeit (als Zeit! Also 12:00)
B2 := Endzeit (als Zeit! Also 21:00)
A2 := =STUNDE(A1)+MINUTE(A1)/100*(5/3)
B2 := =STUNDE(B1)+MINUTE(B1)/100*(5/3)
C3 := =WENN(B2>20;B2-WENN(A2>20;A2;20);B2-A2)

Wenn du uns dein Problem vielleicht nochmal mit anderen Worten erläutern würdest, dann könnten wir dir auch noch sinnvollere Formeln geben!

Viele Grüße
rastrans


PS: hör besser auf zu rauchen. ist schlecht für die gesundheit und läßt sich auch blöd in die formel einbringen! ;)

texasmatze
21.02.2008, 12:10
Hallo Rastrans,

der Fall ist bereits gelöst, ich habe aber den Code für diejenigen, die es interessiert, aufgeschrieben. Er ist vielleicht ein wenig umständlich, aber für mich leichter zum Fehler finden

Ich arbeite schon seit Jahren dort...
Du hast meine Ausgangssituation leicht missverstanden.

Wenn ich von 10:00 bis 23:Uhr arbeite, bekomme ich 13 Stunden bezahlt,sowie zusätzlich ab 20 Uhr 25% vom Brutto als Nachtzuschlag steuerfrei.

Spaltenaufteilung:
A10/B10: Leer
C10: Datum
D10: Beschreibung der Tätigkeit
E10: Dienstantritt
F10: Dienstende
G10: Sonntags/Feiertagszuschlag
H10: Berechnung Arbeitszeit Innendienst Formel: =WENN(D10="Fahrer";"";Q10)
I10: Berechnung Arbeitszeit Fahrer Formel: =WENN(D10="Fahrer";Q10;"")
J10: Berechnung Nachtstunden Innendienst Formel: =WENN(G10="ja";"";T10)
K10: Berechnung Nachtstunden Fahrer Formel: =WENN(G10="ja";"";U10)
L10: Berechnung Zulage Innendienst Formel: =WENN(D10="fahrer";"";S10)
M10: Berechnung Zulage Fahrer Formel: =WENN(D10="fahrer";S10;"")

Das sind die sichtbaren Spalten, wobei der Mitarbeiter nur in den Spalten C-G Einträge machen kann.

Hilfsspalten, ausgeblendet:

P10: Berechnung Arbeitszeit Teil 1
Formel:=((F10-E10)*24)

Q10: Berechnung Arbeitszeit Teil 2
Formel: =WENN(ISTLEER(F10);"";WENN(P10<0;P10+24;P10))
Das ist notwendig, da für Innendienst und Fahrer ein unterschiedlicher Stundenlohn gilt (siehe G10/H10)

R10: Berechnung Nachtstunden (Das war der Knackpunkt, den ich mittlerweile gelöst habe)
Formel: =WENN(STUNDE(E10)<20;WENN(STUNDE(F10)>=20;STUNDE(F10)-20+MINUTE(F10)/60;"");WENN(STUNDE(E10)>=20;WENN(STUNDE(F10)>=20;(Q10);"")))

S10: Berechnung zulage:
Formel: =WENN((G10)="ja";(Q10);"")

T10: Berechnung Nachtstunden Innendienst
Formel: =WENN(D10="Fahrer";"";R10)

U10: Berechnung Nachtstunden Fahrer:
Formel: =WENN(D10="Fahrer";R10;"")

===

In der Nachtstundenberechnung ging es darum, dass entweder die Differenz von 20 Uhr zum Dienstende hin notiert wird, wenn Dienstantritt vor 20 Uhr, oder aber wenn der Dienstantritt nach 20 Uhr ist, die tatsächliche Arbeitszeit, die stattgefunden hat,bzw: das in meinem vorigen Posting beschriebene Beispiel:

11:00 - 17:00 reguläre Arbeitszeit 6 Stunden
17:30 - 20:30 reguläre Arbeitszeit 3 Stunden, zusätzlich 0,5 Nachtstunden
20:45 - 23:15 reguläre Arbeitszeit 2,5 Stunden, zusätzlich 2,5 Nachtstunden!!!
Die "alte" Formel hatte da 3,25 Stunden geschrieben, was nicht der Wahrheit entspricht

Viele Grüße
Mathias