Quantcast
Channel: Malinowy Excel
Viewing all articles
Browse latest Browse all 291

Jak ustalić ostatni dzień miesiąca?

$
0
0

Hehe, no właśnie. Niedawno się nad tym głowiłam, a to taka prosta sprawa (choć nie na pierwszy rzut oka). Potrzebowałam tego w wielu sytuacjach: liczenie średnich kosztów z oMalinowyExcel_new_małekreślonych miesięcy, uniwersalny grafik czasu pracy, w którym chciałam, aby na podstawie podania miesiąca, wyświetlały się wszystkie dni danego miesiąca i takie tam.

Pierwszy dzień miesiąca łatwo ustalić: zawsze dzień = 1. Z ostatnim dniem jest gorzej, ponieważ miesiące mają różną liczbę dni, a luty to już w ogóle (właśnie, ile dni ma w tym roku? Odpowiedź na końcu artykułu:))!

Dziś pokażę wam 2 sposoby na rozwiązanie tego problemu. Oczywiście jest ich więcej, jednak moje są dość łatwe. Zobaczycie :)

Będę chciała ustalić pierwsze dni następujących miesięcy (na formatce):

Ostatni dzień miesiąca formatka

Formatka

Tak, jak pisałam, pokażę wam 2 metody na wskazanie ostatniego dnia miesiąca. Obie są bardzo podobne – wybierzcie sobie tę, która wam bardziej przypadnie do gustu. Ponieważ obie oparte są o funkcję DATA, omówię ją teraz krótko.

Funkcja DATA

Funkcja ta jest megaprosta i megaprzydatna. Ma 3 argumenty, takie, jak każda data ma, czyli:

  1. Rok,
  2. Miesiąc,
  3. Dzień.

Przykładowo taki zapis:

=DATA(2016;01;19)

zwróci na taką datę: 2016-01-19. Oczywiście argumentami tej funkcji mogą być odwołania do komórek jak i funkcje zwracające liczby. Co potrzeba.

Wynikiem funkcji jest data, czyli tak na prawdę liczba naturalna. Przypomnę, że dla Excela daty to są liczby, a pierwsza data, jaką Excel (standardowo) rozpoznaje to 1900-01-01 i jest to liczba 1. Wspomniana data 2016-01-19 jest więc liczbą 42 388. Funkcja DATA zwraca takie właśnie liczby, tylko sformatowane od razu na daty.

Jeśli zatem chcemy ustalić pierwszy dzień  lutego 2016, wystarczy wpisać tak:

=DATA(2016;2;1)

Zawsze więc wpiszemy rok i miesiąc, które nas interesują i jako ostatni argument – dzień – wpiszemy po prostu 1. Cała filozofia.

Ok, tyle tytułem wstępu, przejdźmy do ustalania ostatniego dnia miesiąca.

Metoda 1

Jedną z metod ustalania ostatniego dnia miesiąca jest ustalenie pierwszego dnia kolejnego miesiąca i… odjęcie 1. !!! Tyle :) Pokazałam przed chwilą, jak ustalić pierwszy dzień miesiąca – banalnie. Odejmij 1 i masz wynik :)

Przykładowo chcę ustalić ostatni dzień sierpnia roku 2016. Muszę więc poznać pierwszy dzień września 2016 i odjąć od tego 1. Czyli:

=DATA(2016;9;1)-1

Funkcja zwróci mi datę 2016-09-01, czyli liczbę 42 614. Po odjęciu 1 otrzymam liczbę 42 613, czyli dzień wcześniej, czyli 2016-08-31.

Tadam!

To jedźmy do drugiej metody.

Metoda 2

Druga metoda również korzysta z funkcji DATA. Tutaj jednak wykorzystamy pewną właściwość tej funkcji.

Mianowicie, jeśli w ostatnim argumencie (dzień) wpiszemy dzień z danego miesiąca, to oczywiście funkcja zwróci nam datę z tym dniem. Co jednak, gdy np. dla marca 2015 wpiszemy tam liczbę 32? Tak, Excel zwróci nam kolejną datę, czyli 2015-04-01.

Idąc tym tropem, co będzie, gdy dla marca 2015 wpiszemy tam 0 (zero)? Właśnie tak – otrzymamy dzień poprzedni, czyli 2015-02-28.

I to jest druga metoda. Czyli:

=DATA(2015;3;0)

Zerowy dzień następnego miesiąca.

Parametryzowanie

Wracając do moich przykładów z formatki, tak wyglądają wyniki:

Ostatni dzień miesiąca uzupełnione

Wyniki

Można to oczywiście parametryzować. Skoro w kolumnie A mam wpisane miesiące, których ostatnie dni chcę poznać, nie będę przecież klepała 8 funkcji ręcznie. Odwołam się do komórek w kolumnie A i użyję odpowiednich funkcji do ustalenia odpowiedniego roku i miesiąca. Aby to zadziałało, w kolumnie A muszę mieć oczywiście daty, czyli de facto liczby. To, że daty te wyświetlają się jako nazwa miesiąca i rok, to już kwestia formatowania niestandardowego.

Jak więc mamy liczby w kolumnie A, możemy działać z funkcjami.

I tak, metoda 1., czyli odejmowanie 1 od pierwszego dnia kolejnego miesiąca można zapisać tak (komórka B4):

=DATA(ROK(A4);MIESIĄC(A4)+1;1)-1

W powyższej formule rok ustalany jest funkcją ROK, która pobiera dane z komórki A4. Miesiąc ustalany jest funkcją MIESIĄC, która również pobiera dane z komórki A4. Dzień jest to zawsze 1.

Dla metody 2. natomiast, wystarczy wpisać w C4 następującą formułę:

=DATA(ROK(A4);MIESIĄC(A4)+1;0)

Tutaj w drugim argumencie – miesiąc – dodajemy 1, aby uzyskać miesiąc następny. Dzień to zawsze 0 (zero).

Jak widzicie – metody są bardzo podobne i bazują na tej samej logice. Ostatni dzień miesiąca jest przed pierwszym dniem następnego miesiąca.

 

A odpowiedź na pytanie z początku wpisu to: w tym roku luty ma oczywiście 29 dni :)

I jak? Przyda wam się? Jestem ciekawa do czego tego użyjecie. Koniecznie napiszcie w komentarzach.


Viewing all articles
Browse latest Browse all 291