[E365] Liste aller festen Feiertage mit einer Formel
#1
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})

A
12021
2Freitag, 1. Januar 2021
3Samstag, 1. Mai 2021
4Sonntag, 3. Oktober 2021
5Montag, 1. November 2021
6Samstag, 25. Dezember 2021
7Sonntag, 26. Dezember 2021
Formeln der Tabelle
ZelleFormel
A2=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. Wink
A
12021
2Freitag, 1. Januar 2021
3Freitag, 2. April 2021
4Sonntag, 4. April 2021
5Montag, 5. April 2021
6Samstag, 1. Mai 2021
7Donnerstag, 13. Mai 2021
8Sonntag, 23. Mai 2021
9Montag, 24. Mai 2021
10Donnerstag, 3. Juni 2021
11Sonntag, 3. Oktober 2021
12Montag, 1. November 2021
13Samstag, 25. Dezember 2021
14Sonntag, 26. Dezember 2021
Formeln der Tabelle
ZelleFormel
A2=SORTIEREN(List.Join(FFT(A1);OsterFT(A1)))
Namen in Formeln
ZelleNameBezieht sich auf
A2FFT=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)  )
A2List.Join=LAMBDA(Liste1;Liste2;  LET(i;ZEILEN(Liste1);   j;ZEILEN(Liste2);   k;SEQUENZ(i+j);   WENN(k<=i;INDEX(Liste1;k);INDEX(Liste2;k-i))   )  )
A2OsterFT=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) )
Namen verstehen

Ich hänge mal meine Testdatei an.


Angehängte Dateien
.xlsx   Feiertagsliste.xlsx (Größe: 10,2 KB / Downloads: 12)
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)
[-] Folgende(r) 2 Nutzer sagen Danke an RPP63 für diesen Beitrag:
  • schauan,
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste