Funkcje daty i czasu

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ż u Ciebie Excel może wyświetlać datę np. w formacie dzień.miesiąc.rok (np. 11.04.2020 a nie jak u mnie 2020-04-11). Wtedy funkcja LEWY wyciągnie z daty błędne dane (11.0 zamiast 2020). Nawet jeśli u Ciebie ta funkcja wyciąga poprawne dane, nie masz pewności, że u innej osoby dobrze zadziała. Poza tym w każdej chwili w panelu sterowania możesz zmienić format wyświetlania daty. Dlatego należy używać odpowiednich funkcji, które wyciągają z daty poszczególne jej elementy składowe. 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")

Ten wpis został opublikowany w kategorii funkcje i oznaczony tagami , , , , , , , , , , . Dodaj zakładkę do bezpośredniego odnośnika.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.