Czy kiedykolwiek zastanawiałeś się w jaki sposób można obliczyć dokładną różnicę pomiędzy dwiema datami jednocześnie wyrażając ją w latach, miesiącach i dniach? Rozwiązaniem jest zastosowanie funkcji DATA.RÓŻNICA. Niestety może ona nastręczać pewnych kłopotów osobom nieznającym „tajemnic” Excela. Zapytasz dlaczego?
Tajemnicza funkcja
Głównym powodem, dla którego funkcja DATA.RÓŻNICA jest rzadko stosowana jest fakt ukrycia jej przez zespół pracujący nad arkuszem kalkulacyjnym. Dlaczego? Najprawdopodobniej nikt poza Microsoftem nie jest w stanie odpowiedzieć na to pytanie. Efektem takiej decyzji jest brak jakiejkolwiek dokumentacji opisującej składnię i działanie funkcji. Nie jest ona dostępna ani na karcie Formuły, ani w momencie wprowadzania jej bezpośrednio do komórki.
W tym miejscu warto wspomnieć, że tylko Excel 2000 zawierał informację na jej temat (nie była ona rozpowszechniona ani we wcześniejszych, ani późniejszych wersjach programu). Powodem jej wprowadzenia była chęć zachowania kompatybilności z innym arkuszem kalkulacyjnym – Lotus 1-2-3.
Składnia funkcji DATA.RÓŻNICA
Funkcja DATA.RÓŻNICA jak sama jej nazwa wskazuje służy do obliczania różnicy pomiędzy dwiema datami przy czym różnicę tą można wyrazić w latach, miesiącach i dniach. Jej składnię należy sobie dobrze utrwalić ponieważ jak już wcześniej wspomniałem Excel nie oferuje żadnej pomocy przy jej wykorzystaniu.
Składnia funkcji DATA.RÓŻNICA jest następująca:
=DATA.RÓŻNICA(Data_początkowa; Data_końcowa; Jednostka_czasu)
gdzie:
Data_początkowa – jest datą, od której zaczyna się kalkulację. Datę można wprowadzić jako łańcuch znaków zapisany w podwójnych cudzysłowach (np. „2015-10-05”), jako liczbę (należy pamiętać, że Excel traktuje daty jako liczby np. wartość 42282 reprezentuje „2015-10-05” jeżeli użyto systemu daty 1900) lub korzystając z formuł (np. =DATA(2015;10;05) lub =DATA.WARTOŚĆ(„2015-10-05”)).
Data_końcowa – jest ostatnią datą okresu, dla którego obliczana jest różnica. Podobnie do Daty_początkowej, również Data_końcowa może być wprowadzona jako łańcuch znaków, liczba czy formuła.
Jednostka_czasu – określa interwał czasu w jakim różnica może być zwrócona. Dostępnych jest 6 jednostek opisanych poniżej:
[minti_table style=”1″]
Jednostka czasu | Opis |
---|---|
Y | zwraca różnicę jako liczbę pełnych lat między Datą_początkową a Datą_końcową |
M | zwraca różnicę jako liczbę pełnych miesięcy między Datą_początkową a Datą_końcową |
D | wraca różnicę jako liczbę pełnych dni między Datą_początkową a Datą_końcową |
YM | zwraca różnicę jako liczbę miesięcy między Datą_początkową a Datą_końcową, jednocześnie ignorując lata i dni obu dat |
YD | zwraca różnicę jako liczbę dni między Datą_początkową a Datą_końcową, jednocześnie ignorując lata i miesiące obu dat |
MD | zwraca różnicę jako liczbę dni między Datą_początkową a Datą_końcową, jednocześnie ignorując miesiące i lata obu dat |
[/minti_table]
Zastosowanie funkcji DATA.RÓŻNICA
Aby dobrze zrozumieć jak należy używać funkcji DATA.RÓŻNICA w Excel zobaczmy to na następującym przykładzie.
Powiedzmy, że chcesz obliczyć liczbę dni, która upłynęła od 4 czerwca 1989 do dnia dzisiejszego.
W takim przypadku datą początkową będzie 1989-6-4, natomiast datę końcową wyznaczysz za pomocą funkcji DZIŚ(). Jednostka czasu to „D” jako, że chcesz znać liczbę dni pomiędzy obiema datami.
Rezultat jaki zwraca funkcja to 9619 dni.
Oczywiście gdybyś zamienił jednostkę_czasu z D na M lub Y to otrzymałbyś wynik w miesiącach lub latach.
Komunikaty o błędach
Czasami może się zdarzyć, że funkcja DATA.RÓŻNICA może zwrócić informację o błędzie zamiast prawidłowego wyniku. Przyczyny mogą być różne. Dla przykładu jeżeli data początkowa będzie wyższa niż data końcowa lub jednostka czasu będzie niewłaściwa to pojawi się błąd #LICZBA!, natomiast jeśli którykolwiek z argumentów będzie niewłaściwy to funkcja wyświetli błąd #ARG!
Wiek pracownika – rozwiązanie
Aby obliczyć dokładny wiek pracownika musisz stworzyć formułę wykorzystującą funkcję DATA.RÓŻNICA.
Twoja formuła będzie wyglądać następująco:
=DATA.RÓŻNICA(D2;DZIŚ();”y”)&” lat “&DATA.RÓŻNICA(D2;DZIŚ();”ym”)&” miesięcy ”
&DATA.RÓŻNICA(D2;DZIŚ();”md”)&” dni”
Jak widzisz formuła dostarcza konkretnej odpowiedzi na pytanie o wiek pracownika lub prościej – różnicę pomiędzy dwiema datami. Jest jednak mały szkopuł. Wyobraź sobie, że w wyniku pojawia się tekst „0 miesięcy” lub „0 dni”. W takim przypadku wyświetlany wynik nie wygląda elegancko. Czy możesz temu w jakiś sposób zaradzić?
Oczywiście, wystarczy tylko użyć funkcji logicznej JEŻELI, aby w zależności od tego czy wynik częściowy jest równy 0 wyświetlać tekst lub nie. Tak więc powyższa formuła po zmodyfikowaniu będzie wyglądać następująco:
=JEŻELI(DATA.RÓŻNICA(D2;DZIŚ();”y”)=0;””;DATA.RÓŻNICA(D2;DZIŚ();”y”)&” lat “)
&JEŻELI(DATA.RÓŻNICA(D2;DZIŚ();”ym”)=0;””;DATA.RÓŻNICA(D2;DZIŚ();”ym”)&” miesięcy”)
&JEŻELI(DATA.RÓŻNICA(D2;DZIŚ();”md”)=0;””;DATA.RÓŻNICA(D2;DZIŚ();”md”)&” dni”)
Brawo! W ten oto sposób wyeliminowałeś „nieeleganckie” zera z wyników.
Funkcja DATA.RÓŻNICA nie jest aż tak tajemnicza jak mogłoby się wydawać. W łatwy sposób pozwala obliczyć różnicę pomiędzy dwiema datami jednocześnie oferując kilka sposobów wyświetlania wyniku. Jeśli masz doświadczenie w korzystaniu z tej funkcji albo jeśli korzystasz z innych rozwiązań do tego typu obliczeń to proszę opisz je w komentarzu do niniejszego artykułu.