W poprzedniej notce opisałam bardzo pożyteczną funkcję w VBA:
Funkcja VBA DateAdd()
Niestety, w Excelu nie mam jej odpowiednika, ale nie oznacza to, że za pomocą formuł nie można wyznaczyć daty wyznaczonej za lub przed określony czas od daty początkowej.
Ponieważ:
Data i czas to liczba
można po prostu wykonać dodawanie daty początkowej oraz konkretnej liczby. Przelicznik wygląda tak:
1 – jeden dzień
1/24 – jedna godzina
1/(2460) – jedna minuta
1/(2460*60) – jedna sekunda
Załóżmy, że komórce A1 mamy pełną datę z godziną:
formuły mogą wyglądać np. tak:
=A1+3 – termin za 3 dni
=A1+5 + 1/24 – termin za 5 dni i 1 godzinę
itp.
Bardziej skomplikowana sytuacja może się pojawić, gdy odstęp czasu jest większy i policzenie np. liczby dni między kilkoma miesiącami (w ekstremalnych przypadkach w latach przestępnych) – liczenie dni wcale nie jest takie proste i skomplikowane.
W takich przypadkach zdecydowanie łatwiej jest z wykorzystaniem funkcji Data().
Załóżmy, że chcemy wyznaczyć datę za 1 rok, 2 miesiące i 3 dni od daty wpisanej w komórce A1. Robimy to tak:
Zasada jest prosta: odczytujemy poszczególne elementy daty z komórki A1 i zwiększamy (można oczywiście też zmniejszać) je od żądaną wartość.
Formuła wygląda tak:
=DATA(ROK(A1)+1;MIESIĄC(A1)+2;DZIEŃ(A1)+3)
Oczywiście można też zrobić przesunięcia również o godziny i minuty, dodając do formuły część związaną z czasem , np.
=DATA(ROK(A1)+1;MIESIĄC(A1)+2;DZIEŃ(A1)+3)+CZAS(GODZINA(A1)+4;
MINUTA(A1)+5;SEKUNDA(A1)+6)
Warto tu też pamiętać o tym, że jeżeli dodajemy np.50 dni (czyli więcej niż liczba dni miesiąca), to Excel sam doda miesiąc,a do liczby dni – dołoży tylko końcówkę.
A tu możesz mi postawić kawę:
buycoffee.to/marzatela
Like this:
Like Loading...