24.05.2021, 08: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.
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)