Skip to content

Instantly share code, notes, and snippets.

@smb
Created December 9, 2025 15:59
Show Gist options
  • Select an option

  • Save smb/143c0a06cb112a0aafea8abdf57b5cef to your computer and use it in GitHub Desktop.

Select an option

Save smb/143c0a06cb112a0aafea8abdf57b5cef to your computer and use it in GitHub Desktop.
Excel Feiertag Generator
/* in A1 muss die Jahreszahl stehen, z.B. 2025 */
=LET(
y;$A$1;
a;MOD(y;19);
b;INT(y/100);
c;MOD(y;100);
d;INT(b/4);
e;MOD(b;4);
f;INT((b+8)/25);
g;INT((b-f+1)/3);
h;MOD(19*a+b-d-g+15;30);
i;INT(c/4);
k;MOD(c;4);
l;MOD(32+2*e+2*i-h-k;7);
m;INT((a+11*h+22*l)/451);
month;INT((h+l-7*m+114)/31);
day;MOD(h+l-7*m+114;31)+1;
easter;DATE(y;month;day);
header;HSTACK("Datum";"Feiertag";"Baden-Württemberg";"Bayern";"Berlin";"Brandenburg";"Bremen";"Hamburg";"Hessen";"Mecklenburg-Vorpommern";"Niedersachsen";"Nordrhein-Westfalen";"Rheinland-Pfalz";"Saarland";"Sachsen";"Sachsen-Anhalt";"Schleswig-Holstein";"Thüringen");
dates;VSTACK(DATE(y;1;1);DATE(y;1;6);easter-2;easter+1;DATE(y;5;1);easter+39;easter+50;easter+60;DATE(y;8;8);DATE(y;8;15);DATE(y;10;3);DATE(y;10;31);DATE(y;11;1);DATE(y;11;20);DATE(y;12;25);DATE(y;12;26));
names;VSTACK("Neujahr";"Heilige Drei Könige";"Karfreitag";"Ostermontag";"Tag der Arbeit";"Christi Himmelfahrt";"Pfingstmontag";"Fronleichnam";"Friedensfest";"Mariä Himmelfahrt";"Tag der Deutschen Einheit";"Reformationstag";"Allerheiligen";"Buß- und Bettag";"1. Weihnachtstag";"2. Weihnachtstag");
BadenWuerttemberg;VSTACK(1;1;1;1;1;1;1;1;0;0;1;0;1;0;1;1);
Bayern;VSTACK(1;1;1;1;1;1;1;1;1;1;1;0;1;0;1;1);
Berlin;VSTACK(1;0;1;1;1;1;1;0;0;0;1;0;0;0;1;1);
Brandenburg;VSTACK(1;0;1;1;1;1;1;0;0;0;1;1;0;0;1;1);
Bremen;VSTACK(1;0;1;1;1;1;1;0;0;0;1;1;0;0;1;1);
Hamburg;VSTACK(1;0;1;1;1;1;1;0;0;0;1;1;0;0;1;1);
Hessen;VSTACK(1;0;1;1;1;1;1;1;0;0;1;0;0;0;1;1);
MecklenburgVorpommern;VSTACK(1;0;1;1;1;1;1;0;0;0;1;1;0;0;1;1);
Niedersachsen;VSTACK(1;0;1;1;1;1;1;0;0;0;1;1;0;0;1;1);
NordrheinWestfalen;VSTACK(1;0;1;1;1;1;1;1;0;0;1;0;1;0;1;1);
RheinlandPfalz;VSTACK(1;0;1;1;1;1;1;1;0;0;1;0;1;0;1;1);
Saarland;VSTACK(1;0;1;1;1;1;1;1;0;1;1;0;1;0;1;1);
Sachsen;VSTACK(1;0;1;1;1;1;1;0;0;0;1;1;0;1;1;1);
SachsenAnhalt;VSTACK(1;1;1;1;1;1;1;0;0;0;1;1;0;0;1;1);
SchleswigHolstein;VSTACK(1;0;1;1;1;1;1;0;0;0;1;1;0;0;1;1);
Thueringen;VSTACK(1;0;1;1;1;1;1;0;0;0;1;1;0;0;1;1);
data;SORTBY(HSTACK(dates;names;BadenWuerttemberg;Bayern;Berlin;Brandenburg;Bremen;Hamburg;Hessen;MecklenburgVorpommern;Niedersachsen;NordrheinWestfalen;RheinlandPfalz;Saarland;Sachsen;SachsenAnhalt;SchleswigHolstein;Thueringen);dates;1);
VSTACK(header;data)
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment