=TODAY
date A date B date C
Ich brauche eine Formel, die mir Datum B berechnet. D.
h.: Wenn zwischen Datum A und =HEUTE mehr als ein Jahr vergangen ist und Datum C leer ist, dann ist Datum B dasselbe wie =HEUTE, andernfalls ist Datum B dasselbe wie Datum A plus ein Jahr.
Mir ist es gelungen, eine Formel wie diese zu erstellen:
=IF(AND(DATEDIF(date A,$date $B,"Y") >= 1, ISBLANK(date C)), TODAY(), DATE(YEAR(date A)+1,MONTH(date A),DAY(date A)))
aber das scheint nicht zu funktionieren, wenn der Unterschied zwischen Datum A und HEUTE mehr als ein Jahr beträgt.
Antwort1
Hinweis: Ich bin in Großbritannien, daher verwendet meine Antwort Daten im Format TT/MM/JJJJ
Sagen wir:
date a
ist in Zelle A1
date b
ist in Zelle B1
und
date c
ist in ZelleC1
Nehmen wir dann an, Sie geben 31/02/2015
in die Zelle ein A1
, und =IF(AND(DATEDIF(A1,TODAY(),"Y")>=1,ISBLANK(C1)),TODAY(),DATE(YEAR(A1)+1,MONTH(A1),DAY(A1)))
dann A2
funktioniert die Formel für mich.
Wie @Máté Juhász in den Kommentaren sagte, tritt das Problem auf, wenn Sie etwas in der Zelle haben C1
. Wenn das der Fall ist, wird dem Datum in A1 ein Jahr hinzugefügt, sodass es der 31.02.2016 ist, statt des heutigen Datums 02.09.2016.
Eine Zelle C1
kann für Sie leer erscheinen, wenn Sie ein Leerzeichen einfügen, aber Excel erkennt das Leerzeichen als Daten. Wenn Sie also aus Sicherheitsgründen überprüfen möchten, ob eine Zelle für den Menschen als leer sichtbar ist, indem Sie ein Leerzeichen als Leerzeichen einfügen, müssen Sie den logischen Test ändern, um =OR(ISBLANK(C1),C1=" ")
die endgültige Formel in der Zelle B1
wie folgt zu erstellen:=IF(AND(DATEDIF(A1,TODAY(),"Y")>=1,OR(ISBLANK(C1),C1=" ")),TODAY(),DATE(YEAR(A1)+1,MONTH(A1),DAY(A1)))
Eine Alternative zu =OR(ISBLANK(C1),C1=" ")
, die keinen funktionalen Unterschied aufweist, außer dass die Länge der Formel um 6 Zeichen reduziert wird, ist die Verwendung der im Kommentar vorgeschlagenen Alternative, die =OR(C1="",C1=" ")
eine alternative endgültige Formel in der Zelle erstellen würde B1
als=IF(AND(DATEDIF(A1,TODAY(),"Y")>=1,OR(C1="",C1=" ")),TODAY(),DATE(YEAR(A1)+1,MONTH(A1),DAY(A1)))