DATEDIF: Sage mir, wie alt Du bist 15

Artikelbild-74
Eine versteckte Funktion in Excel hilft bei der Berechnung von Datumsdifferenzen
 

Excel bietet etwa zwei Dutzend eingebaute Funktionen, mit deren Hilfe man Datums- und Zeitberechnungen durchführen kann.

Ein kleines Juwel findet man aber zumindest nicht in der „offiziellen“ Liste der Datumsfunktionen, obwohl es schon lange in Excel vorhanden ist.

Um komfortabel Datumsdifferenzen zu berechnen, können wir nämlich auch auf eine versteckte Funktion in Excel zurückgreifen.

Und so geht’s:

Datums-Differenzen berechnen

Wenn es darum geht, die Differenz zwischen zwei Datumsangaben zu berechnen, kann man natürlich eine einfache Subtraktion verwenden:

Einfache Datumsdifferenz

Einfache Datumsdifferenz

Das Ergebnis ist dann die Differenz in Tagen. Aber wieviele Jahre oder Monate sind 10630 Tage?

Hier hilft die in Excel gut versteckte und nicht dokumentierte Funktion DATEDIF weiter:
=DATEDIF(Anfangsdatum;Enddatum;Einheit)
Weder in der Funktionsübersicht noch in der Excel-Hilfe taucht diese überaus praktische Funktion auf. Warum, das kann wohl nur Microsoft beantworten.

Die ersten beiden Argumente – Anfangsdatum und Enddatum – sind klar. Für das dritte Argument „Einheit“ können folgende Werte eingegeben werden:

„Y“ – Gibt die Differenz in Jahren an.
„M“ – Gibt die Differenz in Monaten an.
„D“ – Gibt die Differenz in Tagen an.
„YM“ – Gibt die Differenz zwischen den beiden Monaten an. Die Tage und Jahre werden nicht berücksichtigt.
„MD“ – Gibt die Differenz zwischen den beiden Tagen an. Die Monate und Jahre werden nicht berücksichtigt.
„YD“ – Gibt die Differenz zwischen Tagen und Monaten an. Die Jahre werden nicht berücksichtigt.

Die versteckte DATEDIF-Funktion

Die versteckte DATEDIF-Funktion

Damit lässt sich z.B. das Alter schön berechnen:

Altersberechnung

Altersberechnung

(Hinweis: Nein, das ist nicht mein Geburtsdatum)

Oder die Dauer bis zur nächsten Fußball-WM:

Zeit bis zur WM

Zeit bis zur WM

Und für die Hartgesottenen unter uns:
Wieviel Zeit bleibt mir noch bis zu meinem statistischen Höchstalter? (ich kann den Aufschrei und die Empörung unter meinen Lesern formlich hören)

Statistisches Lebensalter

Statistisches Lebensalter

Wie man sieht, lassen sich allerhand mehr oder weniger praktische Berechnungen mit der DATEDIF-Funktion anstellen. Eine kleine Warnung möchte ich dennoch aussprechen:

Da es sich um eine undokumentierte Funktion handelt, besteht immer die Gefahr, dass Microsoft sie in zukünftigen Excel-Versionen stillschweigend aus dem Verkehr zieht. Aber bis dahin viel Spaß damit!

Das könnte dich auch interessieren:
Und immer daran denken: Excel beißt nicht!

P.S. Die Lösung ist immer einfach. Man muss sie nur finden.
(Alexander Solschenizyn)

P.P.S. Das Problem sitzt meistens vor dem Computer.



Avatar-Foto

Über Martin Weiß

Er ist das Gesicht hinter dem Blog "Der Tabellenexperte". Seit 2013 veröffentlicht er hier Beiträge zu seinem Lieblingsprogramm: Microsoft Excel. Martin Weiß ist zertifizierter Microsoft Excel Expert und verdient sein Geld als selbständiger Excel-Berater, -Entwickler und -Trainer.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

15 Gedanken zu “DATEDIF: Sage mir, wie alt Du bist

  • Avatar-Foto
    Friedrich

    Hallo Martin,

    vielen Dank für Deine wöchentlichen Beiträge.

    Gibt es eine ähnliche Funktion auch für Arbeitstage, oder
    wie könnte man sich dabei helfen?

    Dieter

    • Avatar-Foto
      Martin Weiß

      Hallo Dieter,

      ja, es gibt in der Tat eine Funktion namens NETTOARBEITSTAGE, mit der sich so etwas berechnen lässt. Wochenenden werden damit herausgerechnet, ebenso kann man Feiertage damit angeben, die dann ebenfalls nicht berücksichtigt werden. Ich hatte vor längerer Zeit mal einen kleinen Artikel darüber geschrieben.

      Schöne Grüße,
      Martin

      • Avatar-Foto
        EKr

        Hallo Martin,

        Ich brauche bitte deine Hilfe.
        Ich möchte mithilfe der Formel DATEDIFeine Datumsdifferenz berechnen. Dazu habe ich folgendes gemacht:

        Ich habe das Anfangsdatum (02.10.2006) in Zelle A1 geschrieben, das Enddatum (31.07.2009) in Zelle B1 und in C1 habe ich folgende Formel geschrieben:
        =DATEDIF(A1;B1;“D“)
        und ENTER gedrückt. Als Ergebnis schreibt er mir dann aber Null = 0, was definitiv FALSCH ist. Heraus kommen müsste 1020 Tage auf Basis dessen, dass die Formel jedes Monat mit 30 Tagen multipliziert (34Monate Mal 30Tage = 1020Tage)

        Was stimmt an der Formel nicht bzw. was mache ich falsch?

        Bitte um deine Unterstützung!
        LG EKr

      • Avatar-Foto
        EKr

        Hallo Martin,

        ich hab die Formel nun in einem neuen Excel-Blatt probiert und bei folgender Formel:

        Ich habe das Anfangsdatum (02.10.2006) in Zelle A1 geschrieben,
        das Enddatum (31.07.2009) in Zelle B1
        und in C1 habe ich folgende Formel geschrieben: =DATEDIF(A1;B1;”D”)
        und ENTER gedrückt.

        Als Ergebnis schreibt er mir dann 1033 Tage.
        Wie kommt die Formel auf diese Tagesanzahl?

        Rechnet die Formel mit 30 Tagen pro Monat oder mit 31 Tagen?
        LG EKr

        • Avatar-Foto
          Martin Weiß

          Hallo EKr,

          die Formel rechnet weder mit 30 noch mit 31 Tagen pro Monat, sondern mit den exakten Tagen. Und damit sind es eben genau 1033.
          Du kannst auch einfach mal in Zelle C1 die Formel „=B1-A1“ schreiben, dann kommst Du auf genau das gleiche Ergebnis.

          Schöne Grüße,
          Martin

  • Avatar-Foto
    Heinz

    Hallo Martin,
    Deine Seite finde ich sehr interessant und habe aber dazu ein Problem!
    Hier mein Beispiel:
    (20.05.18) (29.05.18) = 9 Tage mit dieser Formel: =DATEDIF(A1;B1;“d“)
    (20.05.18) (29.05.18) = 10 Tage mit dieser Formel: =DATEDIF(A1;B1;“d“)+1

    Meiner Ansicht nach ist die Berechnung nur mit den 10 Tagen richtig und die vorige falsch!
    Man sagt doch auch: „ich habe vom 20.05. bis 29.05. Urlaub“ und demnach wird Anfang- und Enddatum mitgerechnet!
    Oder wie siehst Du das?
    LG Heinz

    • Avatar-Foto
      Martin Weiß

      Hallo Heinz,

      freut mich, wenn Dir die Seite gefällt. Das Thema mit den Datumsberechnungen ist so eine Sache:

      Die Formel berechnet die Anzahl der Tage zwischen zwei Datumsangaben. Umgangssprachlich also: Wenn heute der 20.05. ist, wieviele Tage sind es bis zum 29.05.? Antwort = 9 Beim Urlaub hast Du natürlich Rech, da hier Anfang- und Enddatum mitgerechnet wird.

      Es ist also immer eine Frage dessen, was man genau berechnen möchte. Insofern kann man nicht pauschal sagen, die eine Lösung ist richtig und die andere falsch. Es kommt eben darauf an…

      Schöne Grüße,
      Martin

  • Avatar-Foto
    vielen Dank im voraus

    Leider ist die angegebene Formel für mich nicht geeignet, da das Startdatum nicht aus einer Tabellenspalte stammt, sondern fest eingegeben sein sollte. Das Enddatum soll auch nicht =heute() sein, sondern aus einer Tabellenspalte. Dsa Ergebnis soll auch nicht das Alter am jeweils heutigen Tage sein, sondern eben das Alter am Tag des Datums, welches aus der Spalte A stammt.

    Folgende Formel, so wie ich sie im Internet gefunden habe, funktioniert leider nicht:
    =DATEDIF(08.05.1945;A4;“Y“) & “ Jahre, “ & DATEDIF(08.05.1945;A4;“YM“) & “ Monate, “ & DATEDIF(28.11.1964;A4;“MD“) & “ Tage“

    Wie müßte also die formel für meine Bedürfnisse aussehen. Ich hoffe die Antwort heißt nicht, daß dies Excel nicht kann.

    • Avatar-Foto
      Martin Weiß

      Hallo,

      du musst das fixe Datum in der Formel auch einfach nur in Anführungszeichen setzen (und natürlich in allen drei Formeln das gleiche Datum verwenden).

      Schöne Grüße,
      Martin

  • Avatar-Foto
    Heinz

    Hallo Martin,
    Bin zufällig auf deine Seite gestoßen bei der Suche nach meinem Exelproblem.
    Kann ich die Zeit mit der datedif-Funktion auch erschlagen
    11.07.2020 17:45 01.09.2020 19:05
    Im Voraus besten Dank
    Heinz

    • Avatar-Foto
      Martin Weiß

      Hallo Heinz,

      DATEDIF wird nur mit dem Datumsanteil rechnen und die Uhrzeiten ignorieren.

      Schöne Grüße,
      Martin

  • Avatar-Foto
    Nasti

    Hallo Martin,
    die Funktion ist tatsächlich super. Ich hab nur ein Problem damit, wenn sich das Alter 0 ergibt. Dann gibt die Funktion als Antwort „#ZAHL!“ aus. Ich habe Listen mit diversen Geburtstagen und möchte das Alter zu einem bestimmten Stichtag ermitteln. Das Alter 0 kann dabei regelmäßig auftreten. Das Einbetten in eine Wenn-Funktion hab ich probiert. Es hat nicht funktioniert – zumindest bei mir.
    Hast du einen Tipp?
    VG, Na

    • Avatar-Foto
      Martin Weiß

      Hallo Nasti,

      grundsätzlich kann man jeden Fehler mit der WENNFEHLER-Funktion abfangen. Zum Beispiel so:

      =WENNFEHLER(DATEDIF(„09.01.2021″;“08.01.2021″;“Y“);“-„)

      gibt anstelle eines #ZAHL!-Fehlers eben nur einen Bindestrich aus.

      Schöne Grüße.
      Martin

  • Avatar-Foto
    Helmut "Ratlos"

    A B C D
    Geburtstag 01.04.1985 11.12.2023 Jahre, Monate, Tage, Stunden, Minuten

    =DATEDIF(B1,C1,“y“)&“ Jahre, „&DATEDIF(B1,C1,“ym“)&“ Monate, „&DATEDIF(B1,C1,“md“)&“ Tage, „&TEXT(C1-B1,“h“)&“ Stunden, „&TEXT(C1-B1,“m“)&“ Minuten“

    Diese Formel habe ich in Zelle „D“ eingegeben. Es kommt immer eine Fehlermeldung. Was müsste ich in der Formel denn anstelle „TEXT“ eingeben? Stehe voll auf dem Schlauch. Wie wäre die korrekte Formel für mein obiges Beispiel? Kann mirjemend ievollständige Formel für mein Problem schreiben? Vielen Dank für die Hilfe.

    • Avatar-Foto
      Martin Weiß

      Hallo Helmut,

      die Formel scheint meiner Meinung nach schon korrekt zu sein, unter folgenden Annahmen:
      Du verwendest keine deutsche Excel-Version, denn ansonsten wäre das Trennzeichen in den Funktionsargumenten kein Komma, sondern ein Semikolon
      Die Datumsangaben in B1 und C1 sind echte Datumswerte und keine Texte
      Außerdem werden die Stunden und Minuten jeweils den Wert 0 liefern, sofern die Angaben in B1 und C1 nicht zum Datum auch eine Uhrzeit enthalten

      Bei mir hat die Formel jedenfalls funktioniert.

      Schöne Grüße,
      Martin