Daty świąt w kalendarzu

Jak w Excelu wyznaczyć daty świąt kalendarzowych? Można to zrobić samymi funkcjami, bez używania makr. I to także dla świąt ruchomych, nie mających swoich stałych dat w kalendarzu.

Po zmianie roku w komórce A1 (podświetlona na żółto), daty automatycznie się zmieniają, wskazując aktualizację dla danego roku.

 

Plik Excela widoczny na screenach można pobrać tu:

Daty świąt w kalendarzu

A zastosowane funkcje (przy założeniu, że w komórce A1 jest wpisany rok)  wyglądają tak:

Data Funkcja Nazwa święta
2022-01-01 DATA(A1;1;1) Nowy Rok
2022-01-06 DATA(A1;1;6) Trzech Króli
2022-04-17 ZAOKR.W.DÓŁ(DATA(A1;5;
DZIEŃ(MINUTA(A1/38)/2+56));7)-34
Wielkanoc
2022-04-18 A5+1 Wielkanoc
2022-05-01 DATA(A1;5;1) 1 Maja
2022-05-03 DATA(A1;5;3) 3 Maja
2022-06-05 A5+49 Zielone Świątki
2022-06-16 A5+60 Boże Ciało
2022-08-15 DATA(A1;8;15) Wniebowzięcie
2022-11-01 DATA(A1;11;11) Wszystkich Świętych
2022-11-11 DATA(A1;11;1) Święto Niepodległości
2022-12-25 DATA(A1;12;25) Boże Narodzenie
2022-12-26 DATA(A1;12;26) Boże Narodzenie

Większość dat z powyższej tabeli wyznaczona jest za pomocą funkcji Excela Data(Rok,Miesiąc,Dzień) i wynika wprost z kalendarza. Zdecydowanie bardziej skomplikowane jest wyznaczenie daty Wielkanocy, przypadającej w danym roku na pierwszą niedzielę po wiosennej pełni księżyca. Jest kilka algorytmów obliczania tej daty, zainteresowanych odsyłam tu:

Wikipedia: wyznaczanie daty Wielkanocy

A skoro coś daje się obliczyć, to z pewnością da się to zrobić także w Excelu. Wynik widoczny jest w tabeli. Powiązane z Wielkanocą są także daty Zielonych Świątków oraz Bożego Ciała, przypadające w 49 i 60 dni po jej dacie.

W praktycznych rozwiązaniach (np. różnego rodzaju grafikach) najczęściej stosuję taką tabelę w osobnym (często ukrytym) arkuszu i przy sprawdzaniu czy w danym dniu wypada święto, korzystam z funkcji Wyszukaj.Pionowo.


 

Data i czas to godzina

Nie byłabym sobą, gdybym co jakiś czas nie przypominała, że data i czas w Excelu to liczby! Zawsze, wręcz do znudzenia powtarzam to na każdym prowadzonym przez siebie szkoleniu, zarówno z  Excela jak i Accessa.  Ma to uzasadnienie – wyobraźnia użytkowników w różnych sposobach zapisywania dat jest niczym nie ograniczona i często generuje różne problemy.
To, co widzimy na ekranie – ładna data, gdzie nawet miesiąc jest wpisany słownie to tylko kwestia odpowiednio sformatowanego wyświetlania na ekranie, nadal jednak jest to liczba. Jej wielkość jest wyznaczona liczbą dni jakie upłynęły od “początku świata”, a konkretnie – od 1 stycznia 1900 roku.

Można się o tym przekonać samemu – w kolumnie A wstawiamy liczby, w kolumnie B – odniesienia do komórek z tego samego wiersza kolumny A (np. B1=A1, B2=A2 itd.). Kolumnę B formatujemy jako datę – efekt jak na screenie:

A co z czasem? Godzina to część ułamkowa – czyli to co po przecinku liczby. Godz. 8:00 to 1/3, godz.12:00 to 0,5 itd. Chcąc ustalić wartość takiego ułamka musimy podzielić ilość godzin/minut/sekund czasu przez  ilość godzin/minut/sekund całej doby.
Np. dla oznaczenia godziny 16:53:10 wyliczamy:
(16*60*60+53*60+10)/24*60*60=0,703588

Po sformatowaniu komórki jako czas:

Oczywiście, chcąc wpisać do komórki datę i/lub godzinę  nie musimy za każdy razem przeliczać ilości dni od 1 stycznia 1900r. czy obliczać ilość sekund w ciągu doby, byłby to absurd. Jednakże wystarczy wpisać datę w formacie RRRR-MM-DD (np.2022-04-01), aby Excel zobaczył, że to data i właściwie ją  zinterpretował i to niezależnie od wersji językowej i ustawień systemowych daty. Przy czasie prawidłowy format to: gg:mm:ss (np.12:03:23).
Trzymając się tym zasad, nie będzie problemu, gdyż Excel właściwie zinterpretuje typ danych.


Kurs Analiza danych w Excelu dla początkujących

%d bloggers like this: