=DZIŚ() (po angielsku =TODAY()) zwraca dzisiejszą datę, a =TERAZ() (=NOW()) bieżącą datę i godzinę. Żadna nie przyjmuje argumentu i obie aktualizują się przy każdym przeliczeniu skoroszytu, więc wartość, którą widzisz dziś, jutro będzie inna. Aby wstawić datę, która nigdy się nie zmieni, naciśnij zamiast tego Ctrl+; (Control+; na Macu). Tabele pokazują formuły po angielsku, ale możesz w nich wpisywać formuły także po polsku, ze średnikami.
| A | B | |
|---|---|---|
| 1 | TODAY | NOW |
| 2 | 2026-10-04 | 2026-10-04 9:22 |
=DZIŚ()Tabela powyżej pokazuje datę i godzinę z chwili wczytania strony. Przy każdym przeliczeniu arkusza TERAZ przechodzi na bieżącą minutę, a DZIŚ zmienia się tylko raz dziennie, o północy. Nawiasy są wymagane: =DZIŚ bez nich zwraca #NAZWA? (po angielsku #NAME?; tabele pokazują angielskie nazwy błędów).
Dni do wybranej daty
DZIŚ() to liczba dni jak każda inna data, więc jej odjęcie daje odliczanie. =B2-DZIŚ() to dni pozostałe do daty z B2, a =DZIŚ()-B2 dni, które od niej minęły.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Task | Deadline | Days left | Status |
| 2 | Report | 2026-12-31 | 88 | Open |
| 3 | Audit | 2027-03-15 | 162 | Open |
| 4 | Budget | 2025-11-30 | -308 | Overdue |
=B2-DZIŚ()Liczby w kolumnie C maleją o jeden każdego dnia. Termin budżetu minął, więc jego wynik jest ujemny, a status brzmi Overdue. Aby liczyć pozostałe dni robocze, użyj =DNI.ROBOCZE(DZIŚ();B2) (zobacz DNI.ROBOCZE i DZIEŃ.ROBOCZY).
DZIŚ w innych formułach
Wszędzie tam, gdzie formuła potrzebuje daty, może nią być DZIŚ(): bieżący rok, koniec tego miesiąca, data za 30 dni albo czyjś wiek (obliczanie wieku).
| A | B | |
|---|---|---|
| 1 | What | Formula |
| 2 | Year | 2026 |
| 3 | Month | 10 |
| 4 | End of this month | 2026-10-31 |
| 5 | In 30 days | 2026-11-03 |
| 6 | First of this month | 2026-10-01 |
=NR.SER.OST.DN.MIES(DZIŚ();0)B5 zmienia się każdego dnia; B3, B4 i B6 pierwszego dnia każdego miesiąca, a B2 1 stycznia. NR.SER.OST.DN.MIES (EOMONTH) z -1 zwraca ostatni dzień poprzedniego miesiąca, więc dodanie 1 daje pierwszy dzień bieżącego: =NR.SER.OST.DN.MIES(DZIŚ();-1)+1.
Bieżąca godzina bez daty
TERAZ() przechowuje datę jako część całkowitą, a godzinę jako ułamek: południe to 0,5 dnia. =MOD(TERAZ();1) zostawia ułamek, czyli samą godzinę. Sformatuj komórkę jako h:mm, aby zobaczyć ją jako godzinę zegarową, albo użyj funkcji TEKST, aby dostać etykietę.
| A | B | C | |
|---|---|---|---|
| 1 | Time | As text | Hour |
| 2 | 9:22 | 9:22 | 9 |
=MOD(TERAZ();1)A2 to liczba (ułamek dnia) wyświetlana jako godzina, więc można jej używać w obliczeniach czasu; B2 to tekst i nie można. C2 to godzina jako liczba całkowita od 0 do 23.
Wstawianie daty albo godziny, która się nie zmienia
DZIŚ i TERAZ nie nadają się do zapisywania, kiedy coś się wydarzyło, na przykład w rejestrze zamówień albo podpisanym formularzu, bo jutro każdy wiersz pokazywałby jutrzejszą datę. Wpisz zamiast tego stałą wartość:
| Wstaw | Windows | Mac |
|---|---|---|
| Dzisiejsza data | Ctrl+; | Control+; |
| Bieżąca godzina | Ctrl+Shift+; | Command+; |
| Data i godzina | Ctrl+;, spacja, Ctrl+Shift+; | Control+;, spacja, Command+; |
Aby zamrozić formułę, która już jest w komórkach, skopiuj je, a potem Narzędzia główne > Wklej > Wklej wartości (Windows: Ctrl+Alt+V, potem V i Enter; Mac: Control+Command+V, potem Wartości). Formuła zostaje zastąpiona datą, którą pokazywała w tej chwili.
Ćwiczenie: pozostałe dni ze stałą datą
Na potrzeby ćwiczenia tabela poniżej używa stałej daty „na dzień” w E2 zamiast DZIŚ(), więc odpowiedź jest taka sama każdego dnia. We własnym skoroszycie wpisałbyś DZIŚ() tam, gdzie ta formuła odczytuje E2.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Task | Deadline | Days left | As of | |
| 2 | Launch | 2026-11-20 | 2026-10-01 |
Twoja kolej: W C2 oblicz, ile dni zostało od daty w E2 do terminu w B2.
Dlaczego DZIŚ i TERAZ ciągle się zmieniają
DZIŚ, TERAZ, LOS i PRZESUNIĘCIE to funkcje nietrwałe (volatile): Excel przelicza je przy każdej zmianie w skoroszycie, przy otwarciu pliku i po naciśnięciu F9. Dzięki temu odliczanie jest aktualne, ale ma to dwa skutki uboczne:
- Excel pyta o zapisanie zmian, gdy zamykasz plik, który tylko oglądałeś, bo komórki nietrwałe się przeliczyły.
- Duży skoroszyt z tysiącami komórek DZIŚ() może zwolnić. Wpisz
=DZIŚ()w jedną komórkę, na przykład$H$1, i niech pozostałe formuły się do niej odwołują.
Jeśli pokazywana data jest zła, sprawdź zegar komputera: DZIŚ odczytuje datę systemową. Jeśli się nie aktualizuje, skoroszyt może być w trybie ręcznego obliczania: Formuły > Opcje obliczania > Automatyczne.
Najczęściej zadawane pytania
Jak wstawić dzisiejszą datę w Excelu?
Wpisz =DZIŚ(), aby dostać datę, która zmienia się każdego dnia, albo naciśnij Ctrl+; (Control+; na Macu), aby wstawić dzisiejszą datę jako stałą wartość, która nigdy się nie zmieni.
Czym różni się DZIŚ od TERAZ w Excelu?
=DZIŚ() zwraca samą datę jako całkowitą liczbę dni. =TERAZ() zwraca datę i bieżącą godzinę, z godziną jako częścią ułamkową. Obie przeliczają się przy każdym przeliczeniu skoroszytu.
Jak policzyć dni do wybranej daty w Excelu?
Odejmij dziś od tej daty: =B2-DZIŚ(). Wynik maleje o jeden każdego dnia i staje się ujemny, gdy data minie.
Jak sprawić, żeby DZIŚ() się nie zmieniała?
Formuły nie da się zatrzymać, ale można ją zastąpić jej wartością: skopiuj komórkę, a potem Narzędzia główne > Wklej > Wklej wartości. Albo od razu wpisz datę skrótem Ctrl+;.
Jak wstawić bieżącą godzinę w Excelu?
Naciśnij Ctrl+Shift+; (Command+; na Macu), aby wstawić godzinę jako stałą wartość. Jako formuła =TERAZ() daje datę i godzinę, a =MOD(TERAZ();1) samą godzinę, sformatowaną jako h:mm.