cálculo de fecha en excel basado en otras fechas

cálculo de fecha en excel basado en otras fechas
          =TODAY    
date A    date B    date C

Necesito una fórmula que me calcule la fecha B.
Es decir, si entre la fecha A y = HOY ha pasado más de un año y si la fecha C está vacía, entonces la fecha B será la misma que = HOY; de lo contrario, la fecha será la misma que la fecha A más uno. año.

Me las arreglé para crear una fórmula como esta:

=IF(AND(DATEDIF(date A,$date $B,"Y") >= 1, ISBLANK(date C)), TODAY(), DATE(YEAR(date A)+1,MONTH(date A),DAY(date A))) 

pero esto no parece funcionar cuando la diferencia entre la fecha A y HOY es más de un año.

Respuesta1

Nota: Estoy en el Reino Unido, por lo que mi respuesta utiliza fechas en el formato dd/mm/aaaa.

Digamos:
date aestá en la celda A1
date bestá en la celda B1y
date cestá en la celdaC1

Entonces digamos que pones 31/02/2015en la celda A1y pones =IF(AND(DATEDIF(A1,TODAY(),"Y")>=1,ISBLANK(C1)),TODAY(),DATE(YEAR(A1)+1,MONTH(A1),DAY(A1)))en la celda, A2la fórmula funciona para mí.

Como dijo @Máté Juhász en los comentarios, el problema surge cuando tienes algo en el celular C1. Si ese es el caso, se agregará 1 año a la fecha en A1, lo que la convertirá en 31/02/2016 en lugar de la fecha actual de 09/02/2016.

La celda C1puede aparecer en blanco si le pones un espacio, pero Excel verá el espacio como datos. Entonces, por seguridad, si desea verificar que una celda sea humanamente visible como en blanco al incluir un espacio en blanco, debe cambiar la prueba lógica para =OR(ISBLANK(C1),C1=" ")hacer que la fórmula final en la celda B1sea como=IF(AND(DATEDIF(A1,TODAY(),"Y")>=1,OR(ISBLANK(C1),C1=" ")),TODAY(),DATE(YEAR(A1)+1,MONTH(A1),DAY(A1)))

Una alternativa a =OR(ISBLANK(C1),C1=" "), que no tiene ninguna diferencia funcional excepto reducir la longitud de la fórmula en 6 caracteres, es usar la alternativa sugerida en el comentario, que sería =OR(C1="",C1=" ")hacer una fórmula final alternativa en la celda B1como=IF(AND(DATEDIF(A1,TODAY(),"Y")>=1,OR(C1="",C1=" ")),TODAY(),DATE(YEAR(A1)+1,MONTH(A1),DAY(A1)))

información relacionada