Jak obliczyć różnicę między dwiema datami?

0

Mam arkusz zawierający:

  • kolumna A: nazwy
  • kolumna B: data przyjęcia
  • kolumna C: data urlopu
  • kolumna D: data śmierci
  • kolumna Z: data urodzenia

Chcę obliczyć czas pobytu, (date of leave - date of admission)jeśli data śmierci jest pusta i (date of leave - date of death)jeśli jest data śmierci.

Mam to równanie, które oblicza wiek:

=DATEDIF($Z5,TODAY(),"Y") & " Years, " & DATEDIF($Z5,TODAY(),"YM") & " Months, " & DATEDIF($Z5,TODAY(),"MD") & " Days"

Czy można go zmodyfikować, aby zaspokoić moje potrzeby, czy też można zastosować inną formułę?

Hany
źródło
Możesz zajrzeć na stronę Chip Pearson. Ma całkiem niezłe wzory do obliczania dat. cpearson.com/excel/MainPage.aspx
BillDOe

Odpowiedzi:

0

Poniższa formuła daje żądany wynik z czasem trwania wyrażonym w liczbie dni.

=IF($D5='',$C5 - $B5, $C5 - $D5)

AKTUALIZACJA: Jeśli chcesz wyrazić przedziały dat w latach, miesiącach i dniach zgodnie z logiką w pytaniu, formuła będzie bardziej szczegółowa:

=IF($D5='', DATEDIF($B5, $C5, "Y") & " Years, " & DATEDIF($B5, $C5, "YM") & " Months, " & DATEDIF($B5, $C5, "MD") & " Days", DATEDIF($D5, $C5, "Y") & " Years, " & DATEDIF($D5, $C5, "YM") & " Months, " & DATEDIF($D5, $C5, "MD") & " Days")

Jeśli zamierzasz częściej wykorzystywać w dokumentach przedziały dat wyrażone w latach, miesiącach i dniach, warto wykonać obliczenia w mniejszych krokach w sąsiednich komórkach lub utworzyć funkcję zdefiniowaną przez użytkownika, która pomoże ci w dalszym utrzymywaniu dokumentu. Po prostu google „funkcja zdefiniowana przez użytkownika” - dowolny z najlepszych linków zapewnia bardzo dobre wyjaśnienia tego.

maoizm
źródło
Gdybym opublikował tę odpowiedź, zostałaby ona odrzucona.
BillDOe
OP oczywiście wie, jak znaleźć różnice dat i podał swoją obecną formułę wieku, pokazując, jak chce wyrazić różnicę. Pytanie brzmi, jak dostosować tę formułę, aby uwzględnić logikę, której tu użyłeś. Czy możesz poprawić swoją odpowiedź, aby odpowiedzieć na pytanie?
fixer1234
Dziękuję, ale muszę wyświetlać czas pobytu w latach, miesiącach i dniach, a nie tylko dniach
Hany
1
@hany tx - Przejrzę go dzisiaj, aby upewnić się, że poprawnie odpowiada na oryginalne pytanie. Oczywiście można go zmodyfikować, aby uczynić logikę jeszcze bardziej rozbudowaną, ale stałby się trudny do odczytania. Zalecam utworzenie funkcji zdefiniowanej przez użytkownika dla różnicy dat w tekście czytelnym dla człowieka lub użycie kilku ukrytych komórek obok końcowego wyniku do wykonania obliczeń w małych, zrozumiałych krokach. Sugeruję, aby zastosować drugie podejście - dla początkujących jest to znacznie łatwiejsze
maoizm
1
@Hany Przeczytałem twoje oryginalne pytanie i ostatni komentarz i znalazłem, że moja formuła poprawnie odpowiada na twoje oryginalne pytanie, ponieważ chcesz znaleźć różnicę między datą urlopu (tj. Kolumna C) a datą śmierci (tj. Kolumna D), jeśli jest data śmierci.
maoizm