Frage von Ghanasoccer, 72

Eine Dropdown-Zelle für Excel, welche als Datum formatiert ist und Wochenenden, sowie Feiertage auslässt?

Die Zelle beginnt mit dem 01.01.2016.

02 und 03 werden dann ausgelassen weil es Wochenendtage sind usw.. Ich habe auch bereits eine schlichte Tabelle mit gesetzl. Feiertagen, welche auch ausgelassen werden sollen.

Der 01.01.2016 wär als Zahl die 42370 (nur so als Orientierung) Die Spalte der Tabelle mit den Feiertagen heißt: tblBetriebsferien[Betriebsferien]

Ich würde diese Formel gerne in einer Tabelle nutzen die ich auch nach unten ziehen kann.

Expertenantwort
von Ninombre, Community-Experte für Excel, 61

Um es in einer einzigen Formel zu lösen, fällt mir nichts ein außer einem komplexen Wenn-Schachteln: Naheliegend wäre ja einfach einen Tag auf die Vorgänger-Zelle hinzuzuzählen und dabei die Wochenenden zu übersprungen (also wenn Vorgänger-Zelle = Freitag, dann +3) bzw. bei Feiertagen einen zu überspringen (sverweis auf die Vorgängerzelle + 1 = wahr, dann +2).

Für die diversen Kombinationen wird es aber kompliziert: 2 Feiertage nacheinander, Feiertag nach dem Wochenende, Feiertag vor dem Wochenende.

Ich würde es eher über eine Hilfsspalte angehen, d.h. eine Liste aller Tage 2016 und per Oder-Bedingung die Tage markieren die auf der Liste der Feiertage stehen bzw. zum Wochenende gehören. Filtern und den "Rest" als Werktage betrachten.

Kommentar von Ghanasoccer ,

Willst du mir etwa sagen, dass ich faul geworden bin nur weil es im prinzip einfach ist aber viel arbeit kostet. <anscheinend>

Kommentar von Ghanasoccer ,

Das ist die vorläufige Formel: bitte fehler finden xD

=WENN((WENN(ISTFEHLER(VERGLEICH(B3+1;tblBetriebsferien[Betriebsferien];0));FALSCH;WAHR))*(TEXT(B3+2;"TTT")="Sa")*(WENN(ISTFEHLER(VERGLEICH(B3+4;tblBetriebsferien[Betriebsferien];0));FALSCH;WAHR))=1;B3+5;WENN((WENN(ISTFEHLER(VERGLEICH(B3+1;tblBetriebsferien[Betriebsferien];0));FALSCH;WAHR))*(TEXT(B3+2;"TTT")="Sa")*(WENN(ISTFEHLER(VERGLEICH(B3+4;tblBetriebsferien[Betriebsferien];0));FALSCH;WAHR))=1;B3+5;WENN((WENN(ISTFEHLER(VERGLEICH(B3+1;tblBetriebsferien[Betriebsferien];0));FALSCH;WAHR))*(WENN(ISTFEHLER(VERGLEICH(B3+2;tblBetriebsferien[Betriebsferien];0));FALSCH;WAHR))*(TEXT(B3;"TTT")="Sa")=1;B3+5;WENN((TEXT(B3+1;"TTT")="Sa")*(WENN(ISTFEHLER(VERGLEICH(B3+3;tblBetriebsferien[Betriebsferien];0));FALSCH;WAHR))*(WENN(ISTFEHLER(VERGLEICH(B3+4;tblBetriebsferien[Betriebsferien];0));FALSCH;WAHR))=1;B3+5;WENN((WENN(ISTFEHLER(VERGLEICH(B3+1;tblBetriebsferien[Betriebsferien];0));FALSCH;WAHR))*(TEXT(B3+2;"TTT")="Sa")=1;B3+4;WENN((TEXT(B3+1;"TTT")="Sa")*(WENN(ISTFEHLER(VERGLEICH(B3+3;tblBetriebsferien[Betriebsferien];0));FALSCH;WAHR))=1;B3+4;WENN((TEXT(B3+1;"TTT")="Sa");B3+3;WENN((WENN(ISTFEHLER(VERGLEICH(B3+1;tblBetriebsferien[Betriebsferien];0));FALSCH;WAHR));B3+2;B3+1))))))))
Kommentar von Ghanasoccer ,

Die Fälle

Feiertag Wochenende Feiertag (Ostern),

Feiertag Feiertag Wochenende (vlt Weihnachten),

Wochenende Feiertag Feiertag (vlt Weihnachten),

Feiertag Wochenende,

Wochenende Feiertag,

Wochenende und

Feiertag

wurden aufgenommen, sortiert nach Wahrscheinlichkeit.

Kommentar von Ninombre ,

Wenn ich den Vergleich anstelle (alle Tage generieren, dann Wochenenden und Feiertage gem. Liste streiche), dann funktioniert Deine Formel genau identisch, konnte keinen Fehler finden. Hut ab! Der 01.01.2016 wäre als Feiertag dann allerdings auch zu streichen

Kommentar von Ghanasoccer ,

die Feiertage sind ja immer anders und stehen bei mir in dieser Tabellenspalte ( tblBetriebsferien[Betriebsferien] ) . also wenn du da deinen 01.01.2016 so wie ich stehen hast klappt das auch. Diese Tage werden ja auch ausgeschlossen ;)

Antwort
von maximilianus7, 57

für eine formel ist das zu komplex. würde das per VBA-Makro-programmieren lösen: selection_change event, kalenderrechnung (gibts im net, notfalls hab ich auch was), mini-form mit drop-down-control.

wenn du das drauf hast.

Kommentar von Ghanasoccer ,

Ich war ich Sprachen schon immer schlecht ;)

Kommentar von Ghanasoccer ,

Vielleicht möchtest du dir das nochmal anschauen. Danke :)

Keine passende Antwort gefunden?

Fragen Sie die Community