24.05.2021, 07:30
Statt 6 einzelner Formeln für die festen Feiertage reicht in Excel 365 eine einzige Formelzelle:
=DATUM(A1;1;1)+{0;120;275;304;358;359}+WENN(MONAT(DATUM(A1;2;29))=2;{0;1;1;1;1;1})
Folgendes gilt (zunächst) nur für den Beta-Kanal, aber LAMBDA() dürfte bald "für den Rest" freigeschaltet werden.
Ich benötige 3 benannte Lambdas:
1. obige als FFT benannt
=LAMBDA(j;
LET(SchaltJahr;MONAT(DATUM(j;2;29))=2;
FTfest;DATUM(j;1;1)+{0;120;275;304;358;359}+WENN(SchaltJahr;{0;1;1;1;1;1});
FTfest)
)
2. für die FT, die von Ostern abhängig sind, OsterFT benannt
=LAMBDA(j;
LET(A;GANZZAHL(j/100);
B;15+GANZZAHL((3*A+3)/4)-GANZZAHL((8*A+13)/25);
C;2-GANZZAHL((3*A+3)/4);
D;REST(j;19);
E;REST(19*D+B;30);
F;GANZZAHL((E+GANZZAHL(D/11))/29);
G;21+E-F;
H;7-REST(j+GANZZAHL(j/4)+C;7);
I;7-REST(G-H;7);
O;DATUM(j;3;G+I);
OFt;O+{-2;0;1;39;49;50;60};
OFt)
)
3. Eine LAMBDA, die Listen verbindet (stammt von LCohen), List.Join benannt:
=LAMBDA(Liste1;Liste2;
LET(i;ZEILEN(Liste1);
j;ZEILEN(Liste2);
k;SEQUENZ(i+j);
WENN(k<=i;INDEX(Liste1;k);INDEX(Liste2;k-i)))
)
Und schon kann man mittels einer Formel alle FT eines Jahres erstellen.
Ich hänge mal meine Testdatei an.
=DATUM(A1;1;1)+{0;120;275;304;358;359}+WENN(MONAT(DATUM(A1;2;29))=2;{0;1;1;1;1;1})
A | |
1 | 2021 |
2 | Freitag, 1. Januar 2021 |
3 | Samstag, 1. Mai 2021 |
4 | Sonntag, 3. Oktober 2021 |
5 | Montag, 1. November 2021 |
6 | Samstag, 25. Dezember 2021 |
7 | Sonntag, 26. Dezember 2021 |
Formeln der Tabelle | ||||
|
Folgendes gilt (zunächst) nur für den Beta-Kanal, aber LAMBDA() dürfte bald "für den Rest" freigeschaltet werden.
Ich benötige 3 benannte Lambdas:
1. obige als FFT benannt
=LAMBDA(j;
LET(SchaltJahr;MONAT(DATUM(j;2;29))=2;
FTfest;DATUM(j;1;1)+{0;120;275;304;358;359}+WENN(SchaltJahr;{0;1;1;1;1;1});
FTfest)
)
2. für die FT, die von Ostern abhängig sind, OsterFT benannt
=LAMBDA(j;
LET(A;GANZZAHL(j/100);
B;15+GANZZAHL((3*A+3)/4)-GANZZAHL((8*A+13)/25);
C;2-GANZZAHL((3*A+3)/4);
D;REST(j;19);
E;REST(19*D+B;30);
F;GANZZAHL((E+GANZZAHL(D/11))/29);
G;21+E-F;
H;7-REST(j+GANZZAHL(j/4)+C;7);
I;7-REST(G-H;7);
O;DATUM(j;3;G+I);
OFt;O+{-2;0;1;39;49;50;60};
OFt)
)
3. Eine LAMBDA, die Listen verbindet (stammt von LCohen), List.Join benannt:
=LAMBDA(Liste1;Liste2;
LET(i;ZEILEN(Liste1);
j;ZEILEN(Liste2);
k;SEQUENZ(i+j);
WENN(k<=i;INDEX(Liste1;k);INDEX(Liste2;k-i)))
)
Und schon kann man mittels einer Formel alle FT eines Jahres erstellen.
A | |
1 | 2021 |
2 | Freitag, 1. Januar 2021 |
3 | Freitag, 2. April 2021 |
4 | Sonntag, 4. April 2021 |
5 | Montag, 5. April 2021 |
6 | Samstag, 1. Mai 2021 |
7 | Donnerstag, 13. Mai 2021 |
8 | Sonntag, 23. Mai 2021 |
9 | Montag, 24. Mai 2021 |
10 | Donnerstag, 3. Juni 2021 |
11 | Sonntag, 3. Oktober 2021 |
12 | Montag, 1. November 2021 |
13 | Samstag, 25. Dezember 2021 |
14 | Sonntag, 26. Dezember 2021 |
Formeln der Tabelle | |||||||||||||||
| |||||||||||||||
|
Ich hänge mal meine Testdatei an.