Microsoft Excel

Das Portal zum Thema Excel-Formeln

Gruppe: Datum/Zeit

Beitrag: Ersatz der Funktion ARBEITSTAG *

Aufgabe
Die Analysefunktion Arbeitstag berechnet das Datum nach einer bestimmten Anzahl von Arbeitstagen. Es funktioniert aber auch ohne Add-In.

       A               B               C       
1 Mi, 26.09.01  Do, 27.09.01  
2 Mi, 26.09.01  Fr, 28.09.01  
3 Mi, 26.09.01  Mo, 01.10.01 

Lösung
Anfangsdatum: A1
Arbeitstage: B1

Mittlerweile (seit Excel2007) ist ARBEITSTAG kein Add-In mehr und es langt:
=ARBEITSTAG(A1;B1;F1:F??)
in F1 bis F?? stehen die Feiertage als Datum.

Eine Macke: setzt man das Anfangsdatum auf ein Wochenende oder einen Feiertag, wird dieser Tag als Arbeitstag interpretiert und das Ergebnis ist falsch.
Dieser kleine Trick behebt sie:
=ARBEITSTAG(A1-1;B1+1;F1:F??)
Funktioniert auch mit der Funktion ARBEITSTAG.INTL (ab Excel2013) und den unten folgenden Vorkriegsmodellen.


{=A1+KKLEINSTE(WENN(WOCHENTAG(A1+(ZEILE(1:999)-1))<6;ZEILE(1:999));B1)}
Feiertage werden nicht berücksichtigt.

Alternative ohne Array und mit negativen Tagen in B1:
=B1+GANZZAHL((B1+REST(A1-2-(REST(A1;7)<2)*(REST(A1;7)+1);7))/5)*2+A1-(REST(A1;7)<2)*(REST(A1;7))-(REST(A1;7)<2)

Berücksichtigung von Feiertagen:
Die Feiertage stehen in F1:F?

{=A1+KKLEINSTE(WENN((WOCHENTAG(A1+(ZEILE(INDIREKT("1:"&B1*9))-1))<6)*ISTNV(VERGLEICH(A1+(ZEILE(INDIREKT("1:"&B1*9)));F1:F10;0));ZEILE(INDIREKT("1:"&B1*9)));B1)}

und das Ganze rückwärts, also mit negativen Arbeitstagen:

{=A1-KKLEINSTE(WENN((WOCHENTAG(A1-(ZEILE(INDIREKT("1:"&-B1*9))+1))<6)*ISTNV(VERGLEICH(A1-(ZEILE(INDIREKT("1:"&-B1*9)));F1:F10;0));ZEILE(INDIREKT("1:"&-B1*9)));-B1)}

Als einzige Formel (positiv oder negativ) von Josef Burch (24.06.2005):
{=A1+(1-(B1<0)*2)*KKLEINSTE(WENN((WOCHENTAG(A1+((1-(B1<0)*2)*(ZEILE(INDIREKT("1:"&ABS(B1)*9))-1+(B1<0)*2)))<6)*ISTNV(VERGLEICH(A1+((1-(B1<0)*2)*(ZEILE(INDIREKT("1:"&ABS(B1)*9))));F1:F10;0));ZEILE(INDIREKT("1:"&ABS(B1)*9)));ABS(B1))}