Wczoraj pisałem o tym, w jaki sposób zamienić numer miesiąca na jego nazwę. Dzisiaj o sytuacji odwrotnej, czyli, w jaki sposób zamienić nazwę miesiąca na odpowiednią liczbę.
Kiedy widzisz nazwę miesiąca w komórce Excela możesz mieć do czynienia z dwiema sytuacjami. Może to być poprawnie wpisana data, sformatowana jednak w taki sposób, aby wyświetlać tylko nazwę miesiąca. Może to także być zwykły tekst.
W przypadku, kiedy w komórce znajduje się data, określenie numeru miesiąca jest banalnie proste. Wystarczy, że skorzystasz z funkcji MIESIĄC. Nie ma sensu zatrzymywać się przy tym na dłużej.
Jeżeli jednak w komórce znajduje się tekst trzeba zrobić nieco inaczej.
Pierwsze rozwiązanie podobne jest nieco do mojej pierwszej propozycji z dnia poprzedniego.
Skorzystać możesz z funkcji PODAJ.POZYCJĘ.
Funkcja ta zwraca numer (pozycję) znalezionego w tablicy elementu . Podając więc jako jeden z argumentów tablicę z nazwami miesięcy, a jako drugi ciąg z nazwą wybranego miesiąca otrzymasz w wyniku numer miesiąca (liczba). Nazwy miesięcy możesz „wkodować” w formułę jak w przykładzie poniżej:
=PODAJ.POZYCJĘ(C4;{„Styczeń”;”Luty”;”Marzec”;”Kwiecień”;”Maj”;”Czerwiec”;”Lipiec”;”Sierpień”;
„Wrzesień”;”Październik”;”Listopad”;”Grudzień”};0)

Możesz także umieścić je w skoroszycie (czasami możesz nawet skorzystać z tego samego zakresu, dla którego określasz numery miesięcy).

Oczywiście można także inaczej, korzystając z funkcji MIESIĄC. Funkcja ta jako argument przyjmuje datę, dlatego trzeba znaleźć jakiś sposób, aby tekst z nazwą miesiąca zamienić na datę. Tu z pomocą przychodzi funkcja DATA.WARTOŚĆ. Argument funkcji DATA.WARTOŚĆ musi być ciągiem tekstowym z datą zapisaną w akceptowanym przez Excela formacie daty. Niestety, jeżeli zastosujesz tę funkcję bezpośrednio do tekstu „styczeń” otrzymasz błąd. Wystarczy jednak zastosować mały trick i „zbudować” datę.
Możesz to zrobić np. tak:
=MIESIĄC(DATA.WARTOŚĆ(„10-”&B4&”2005”)) („zbudowana” data to „10 styczeń 2005”)
Jeżeli zapomniesz o roku nic się nie stanie, ponieważ Excel automatycznie doda rok bieżący.
Dlatego równie poprawna będzie formuła:
=MIESIĄC(DATA.WARTOŚĆ(„10-”&B4)) („zbudowana” data to „10 styczeń 2007)
Okazuje się, że można to zapisać jeszcze prościej.
=MIESIĄC(DATA.WARTOŚĆ(1&B4)) („zbudowana” data to „1styczeń”)
Okazuje sie zresztą, że w ogóle można zapomnieć o konwersji tekstu na datę przy pomocy DATA.WARTOŚĆ. Możliwe jest to dzięki jednej z ciekawszych właściwości Excela – w przypadku wykonania operacji matematycznej na tekście (np. „1”) Excel jako wynik zwraca liczbę.
Wystarczy więc, że użyjesz
=MIESIĄC(1*(1&B4))
lub
=MIESIĄC(–(1&B4))
Z jakiegoś powodu okazuje się także, że działa jeszcze krótszy zapis
=MIESIĄC(1&B4)
Ot – Excel pełen niespodzianek

{ 1 comment… read it below or add one }
Witam
Trochę za dużo tego .
Wystarczy jedną komórkę sformatować jako datową i ustawić w niej =dziś() co da np 9 grudzień 2008 a w innej wprowadzić formułę =tekst(dziś();’mmmm’)-tez musi być sformatowana datowo tak jak poprzednia.
pozdrawiam
beata kamińdka