Clever-Excel-Forum

Normale Version: Arrayformel mit mehreren Wenn-Bedingungen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Abend,

ich möchte einen kleinen Urlaubsplaner aufsetzen. In einer Tabelle stehen Mitarbeiterinitialien, daneben Start- und Endzeit ihrer Abwesenheit.
In einer zweiten Tabelle befindet sich ein Kalender. Dieser soll für jeden Kalendertag prüfen, ob an diesem Tag ein Mitarbeiter Urlaub beantragt hat (jeder Mitarbeiter wird in einer separaten Spalte geprüft).

Meine Arrayformel prüft ob
1. die Initialien der Abwesenheitstabelle mit den der aktuellen Kalenderspalte übereinstimmen
2. der Beginn der Abwesenheit kleiner gleich dem aktuell betrachteten Tag ist
3. das Ende der Abwesenheit größer gleich dem aktuell betrachteten Tag ist

Problem:
Die Formel findet den ersten angegebenen Zeitraum für Mitarbeiter "ms", aber nicht den zweiten. Wie muss ich die Formel anpassen?
Ich habe die Beispieldatei beigefügt, darin enthalten zwei Testformeln für Mitarbeiter ms, die jedoch beide nicht zum gewünschten Ziel führen.

[attachment=19882]

Liebe Grüße!
Hallöchen,

in unserem Forum findest Du dazu schon den einen oder anderen Hinweis, wenn Du z.B. nach Urlaub .

http://www.clever-excel-forum.de/Thread-...iebsferien
Hallöchen André,

ich habe direkt mal die Suchfunktion bemüht, bin aber mit dem Suchbegriff "Urlaub" nicht fündig geworden. Ich bin nicht sicher, ob es mein Anliegen, Datumsbereiche in ein Kalendarium zu übertragen so schon gibt, da alle Threads, die ich gefunden habe, sich auf ganz andere Aspekte der Urlaubsplanung beziehen.

Kann die Arrayformel überhaupt das leisten, was ich mir oben vorstelle oder muss ein anderer Ansatz her?

Grüße!
Hola,

da reicht:


Code:
=WENN(ZÄHLENWENNS($B$4:$B$6;$G$3;$C$4:$C$6;"<="&F4;$D$4:$D$6;">="&F4);"ms";"")

Aber was ist mit den anderen Mitarbeitern?

Gruß,
steve1da
Hallöchen,

Du könntest z.B. diese Formel einsetzen:
=SUMMENPRODUKT((B$4:B$6=G$3)*($C$4:$C$6<=F4)*(D$4:D$6>=F4))
Damit erhältst Du zumindest 0 und 1 je nach An- oder Abwesenheit.
Wow, ganz schön tricky, das über ZÄHLENWENNS zu lösen, da wäre ich nicht drauf gekommen. :-O Hut ab, wirklich!

Bei mir kriegt wie weiter oben geschrieben jeder Mitarbeiter eine eigene Spalte. Da die Anzahl überschaubar ist, ist das kein Problem.

Die auf diese Weise aufgefüllten Kalendertage überführe ich übrigens mittels bedingter Formatierungen in reine Farbstriche und lege diese per verlinkter Grafik über ein Kalenderblatt, somit kann ich nun die Urlaube vollautomatisch als Layer einbinden. Die Kollegen werden staunen. Ganz herzlichen Dank!

Edit: @schauan, deine Lösung funktioniert so auch und kann problemlos um ein WENN ergänzt werden, wie steve1da das gemacht hat. Jetzt habe ich schon zwei Lösungen, ihr seid echt super. Danke auch an dich fürs Tüfteln!
Hi,

zeig mal bitte die fertige Datei mit dem Urlaubs-Layer.

Hier die Formel von steve1da für weitere Spalten umgestellt:

Arbeitsblatt mit dem Namen 'Tabelle1'
FGH
2KalenderTestformel1Testformel2
3msal
401. Okt
502. Okt
603. Okt

ZelleFormel
G4=WENN(ZÄHLENWENNS($B$4:$B$6;G$3;$C$4:$C$6;"<="&$F4;$D$4:$D$6;">="&$F4);G$3;"")
H4=WENN(ZÄHLENWENNS($B$4:$B$6;H$3;$C$4:$C$6;"<="&$F4;$D$4:$D$6;">="&$F4);H$3;"")
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg