Excel Wenn-Verschachtelung
#1
Guten Tag, ich habe ein Problem mit einer Bearbeitung meines Stunden Nachweis.
Und zwar habe ich vor, eine A-B Woche anhand der Ermittlung der Kalenderwochen zu erstellen, und sie so in meiner Formel mit einzubinden.
Das soll so funktionieren, dass Eine gegebene Formel ausgeführt werden soll für die Woche A, wenn die Kalenderwoche ohne Rest durch 2 teilbar ist, sonst wird die Formel für Woche B berechnet : =WENN((REST(KALENDERWOCHE(A8;2);2)<>0);(formel für woche A);(formel für woche B). Allerdings habe ich damit das Problem, dass zu viele Verschachtelungen von Wenn-Formeln vorhanden sind. 

Ich habe bereits versucht das Problem mit "+" zu umgehen, allerdings nimmt er das + dann ein bisschen zu genau und addiert da komische Zahlen zusammen, was nicht sein sollte.

Woche A : 
=WENN(N8="Feiertag";0;WENN(N8="Krank";SVERWEIS(B8;Stammblatt!$B$8:$C$12;2);WENN(N8="Urlaub";SVERWEIS(B8;Stammblatt!$B$8:$C$12;2);WENN(N8="Fortbildung";SVERWEIS(B8;Stammblatt!$B$8:$C$12;2);WENN(N8="Sonderurlaub";SVERWEIS(B8;Stammblatt!$B$8:$C$12;2);(WENN(B8="SA";0;(WENN(B8="so";0;SVERWEIS(B8;Stammblatt!$B$8:$C$12;2))))))))))


Woche B : 
=WENN(N11="Feiertag";0;WENN(N11="Krank";SVERWEIS(B11;Stammblatt!$B$16:$C$20;2);WENN(N11="Urlaub";SVERWEIS(B11;Stammblatt!$B$16:$C$20;2);WENN(N11="Fortbildung";SVERWEIS(B11;Stammblatt!$B$16:$C$20;2);WENN(N11="Sonderurlaub";SVERWEIS(B11;Stammblatt!$B$16:$C$20;2);(WENN(B11="SA";0;(WENN(B11="so";0;SVERWEIS(B11;Stammblatt!$B$16:$C$20;2))))))))))

Also die selbe Formeln, nur mit einer jeweils anderen Matrix.

Mit SVERWEIS auf die Jeweiligen Formeln auf eine andere Stelle habe ich es auch schon versucht, allerdings gab es da Probleme, die Formel für den ganzen Monat nach unten zu ziehen, da immer nur die Werte in der Formel (z.B. B8) überall übernommen wird und nicht fortlaufend B9, B10,.... . 
Vielen dank schonmal für jegliche Hilfe.


Angehängte Dateien
.xls   Stundennachweis Vorlage (1).xls (Größe: 100 KB / Downloads: 11)
Top
#2
Hola,

zur Info:

http://ms-office-forum.net/forum/showthr...p?t=335492

Gruß,
steve1da
Top
#3
In Feld L8 habe ich meinen Versuch reingeschrieben, was allerdings nicht funktioniert. 
Wenn man nämlich in "Bemerkungen" z.B. "Krank" reinschreibt, verdoppelt er komischerweise die Zahlen und gibt nicht , wie in den anderen Feldern, einfach den Wert unter Netto-Stunden wieder.
Auch wenn man "Feiertag" reinschreibt, leert er die Felder nicht wie bei den anderen Zeilen.


Unter "Formeln" habe ich nochmal die beiden Formeln für Woche A und B reingeschrieben und die für die Kalenderwoche.

Vielen Dank.
Top
#4
heje excelfreunde, cyxcat,

cyxcat, mein vorschlag:

du solltest deinen stundennachweis besser strukturieren und aufbauen

der stundennachweis (tabellenblatt01) besitzt den focus. in diesem tabellenblatt sollten nur noch der betroffene Arbeitnehmer, der erforderliche monat und das jahr ausgewählt werden. dann ein tabellenblatt02 für notwendige berechnungen und tabellenblatt_Januar bis tabellenblatt_Dezember als datencontainer für stunden und nachweistexte....

die gesamte formelei würde meines erachtens viel einfacher ausfallen....
Vielen Dank
--Janosch
                                                     
Excel  2019 (64bit)  Win 10 Pro (64bit)                              
Top
#5
Habs hinbekommen, hab die Formel auf ein wesentliches gekürzt und die Verschachtelung mit den ";" beibehalten anstatt "+".

=WENN((REST(KALENDERWOCHE(A8;2);2)<>0);WENN(N8="Feiertag";0;WENN(ODER(N8="Krank";N8="Urlaub";N8="Fortbildung";N8="Sonderurlaub");SVERWEIS(B8;Stammblatt!$B$8:$C$14;2);WENN(B8="SA";0;(WENN(B8="so";0;SVERWEIS(B8;Stammblatt!$B$8:$C$14;2))))));WENN(N8="Feiertag";0;WENN(ODER(N8="Krank";N8="Urlaub";N8="Fortbildung";N8="Sonderurlaub");SVERWEIS(B8;Stammblatt!$B$16:$C$22;2);WENN(B8="SA";0;(WENN(B8="so";0;SVERWEIS(B8;Stammblatt!$B$16:$C$22;2)))))))

Trotzdem Danke für die Hilfe.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste