Pobierz plik zawierający przykładowe zadania z tego wpisu.
W tym wpisie skupie się na funkcjach operujących na datach i godzinach.
Funkcje DZIŚ() i TERAZ()
Funkcja DZIŚ() zwraca dzisiejszą datę. Co ciekawe, funkcja ta zawsze się aktualizuje gdy coś zmienimy w arkuszu, lub gdy arkusz jest otwierany, albo gdy wymusimy przeliczenie formuł (klawisz F9, lub na karcie Formuły wybierzemy polecenie Oblicz teraz). Można to łatwo sprawdzić: wpisz do dowolnej komórki =DZIŚ() zapisz plik w dowolnej lokalizacji, zamknij go i otwórz jutro. Twoim oczom ukaże się aktualna (a nie wczorajsza) data.
Funkcja TERAZ() zwraca aktualną datę wraz z godziną (sekundy domyślnie nie są wyświetlane o ile nie zmienimy formatowania komórki zmieniając jej format z rrrr-mm-dd gg:mm na rrrr-mm-dd gg:mm:ss.

Wyciąganie z daty elementów składowych
W komórce B2 mam zapisaną dzisiejszą datę. Excel na moim komputerze wyświetla datę w formacie rok-miesiąc-dzień. Aby wydobyć z daty rok (gdyż np. mnie interesuje sam rok urodzenia klienta a nie dokładna data) mógłbym użyć funkcji LEWY tj.
=LEWY(B2; 4).
Niestety, ale jest to zły pomysł, gdyż dla Excela data to liczba. I tak: dzień 2022-01-27 to tak naprawdę liczba 44953. Funkcja LEWY z tej daty by wyciągnęła liczbę 4495. Aby wyciągnąć z daty rok należy użyć funkcji o nazwie ROK.
=ROK(B2)
Analogicznie możemy z daty wyciągnąć inne dane używając funkcji MIESIĄC(B2), DZIEŃ(B2), GODZINA(B2), MINUTA(B2), SEKUNDA(B2).
W przypadku kolumny B gdzie funkcja DZIŚ() zwraca samą datę funkcje GODZINA, MINUTA, SEKUNDA zwrócą wartość 0. Natomiast w kolumnach C i D użyta jest funkcja TERAZ() więc jeśli akurat nie jest teraz idealnie godzina 00:00:00 to te funkcje wyciągną jakieś inne liczby 😉
Wskazówka: funkcję DZIŚ() lub TERAZ() można użyć jako wewnętrzny argument którejś z sześciu omówionych funkcji. Przykładowo, jeśli chcesz aby w danej komórce pojawił się bieżący ROK możesz użyć takiego oto zagnieżdżenia funkcji:
=ROK(DZIŚ())
Lub
=ROK(TERAZ())
Sprawdzenie, czy dana osoba ma dzisiaj urodziny

Aby dowiedzieć się czy ktoś ma dzisiaj urodziny musimy sprawdzić czy dzisiejszy dzień jest taki sam jak dzień z daty urodzenia danej osoby oraz czy miesiące z tych obu dat są sobie równe. Tutaj wystarczy użyć prostej funkcji JEŻELI wewnątrz której zagnieździmy funkcję ORAZ (sprawdzamy oba warunki). Oto przykładowa funkcja która nas poinformuje czy ktoś ma urodziny:
=JEŻELI(ORAZ(D6=$B$2; E6=$B$3); "!!! STO LAT !!!"; "Nie")
W komórce D6 mamy wyciągnięty dzień urodzenia z daty urodzin pewnej osoby. W komórce B2 mamy zapisany dzisiejszy dzień. W komórce E6 mamy zapisany numer miesiąca urodziny danej osoby a w komórce B3 mamy zapisany numer obecnego miesiąca. Funkcja ORAZ zwraca wartość PRAWDA gdy oba warunki są poprawne (czyli jednocześnie miesiące jak i dni muszą być takie same). Ponieważ mam wpisane daty urodzin kilku osób to w przypadku komórek B2 i B3 musiałem użyć adresowania bezwzględnego.
Oczywiście mógłbym tutaj nieco bardziej pozagnieżdżać funkcje, dzięki czemu w arkuszu nie trzeba by było tworzyć kolumn pomocniczych w których przechowujemy dzień i miesiąc z poszczególnych dat (wtedy wiersze od 1 do 3 oraz kolumny D i E by były zbędne). Oto nieco bardziej skomplikowana, ale zgrabniejsza formuła:
=JEŻELI(ORAZ(DZIEŃ(DZIŚ())=DZIEŃ(C6); MIESIĄC(DZIŚ())=MIESIĄC(C6)); "!!! STO LAT";"Nie")