W Excelu jest fajna funkcja o nazwie DNI.ROBOCZE. Ta funkcja oblicza, ile jest dni roboczych pomiędzy dwiema datami (dzięki temu można obliczyć np. pensje pracowników, którym się wypłaca "dniówki"). Jednak ta funkcja ma pewne wady: zlicza ona dni powszednie (od poniedziałku do piątku) pomiędzy dwiema datami. Nie są uwzględniane święta.
Na szczęście funkcja DNI.ROBOCZE posiada trzeci argument, który jest tablicą zawierającą święta (trzeba np. w osobnym arkuszu "w słupku" wypisać wszystkie święta, które wypadają w danym zakresie). Pewne święta zawsze wypadają tego samego dnia np. Nowy Rok zawsze wypada 1 stycznia, więc tutaj można użyć funkcji DATA(2019;1;1) itp. Jednak są takie święta jak Wielkanoc. Excel nie posiada funkcji, która oblicza datę Wielkanocy, ale od czego są makra.
Po zapoznaniu się z algorytmem Meeusa/Jonesa/Butchera napisałem prostą funkcję w VBA, która oblicza datę Wielkanocy. Oprócz tego dla osób, które nie mogą używać makr "przeklepałem" ten algorytm w postaci prostych formuł w osobnym arkuszu.
Znając datę Wielkanocy można też obliczyć inne święta. Jeśli do daty Wielkanocy dodamy 49, to otrzymamy Zielone Świątki, z kolei dodając 60 otrzymamy Boże Ciało.
Można prościej:
=ZAOKR.W.DÓŁ(DATA(ROK(DZIŚ());5;DZIEŃ(MINUTA(ROK(DZIŚ())/38)/2+56));7)-34
Formuła wylicza poprawnie daty Wielkanocy do 2078 roku.
Ale czy warto jak ma błędy już dla:
2011, 2038, 2052