Observação: estou no Reino Unido, então minha resposta usa datas no formato dd / mm / aaaa
Digamos que: date a
esteja na célula A1
e date b
esteja na célula B1
, e que date c
esteja na célula C1
Digamos que você coloque 31/02/2015
na célula A1
e coloque =IF(AND(DATEDIF(A1,TODAY(),"Y")>=1,ISBLANK(C1)),TODAY(),DATE(YEAR(A1)+1,MONTH(A1),DAY(A1)))
na célula A2
que a fórmula funciona para mim.
Como @ Máté Juhász disse nos comentários, o problema surge quando você tem algo na célula C1
. Se for esse o caso, ele adicionará 1 ano à data em A1, 31/02/2016, em vez da data de hoje de 09/02/2016.
A célula C1
pode aparecer em branco se você colocar um espaço nela, mas o Excel verá o espaço como dados. Portanto, por segurança, se você quiser verificar se uma célula é humanamente visível como em branco incluindo um espaço em branco, será necessário alterar o teste lógico para =OR(ISBLANK(C1),C1=" ")
, tornando a fórmula final na célula B1
as =IF(AND(DATEDIF(A1,TODAY(),"Y")>=1,OR(ISBLANK(C1),C1=" ")),TODAY(),DATE(YEAR(A1)+1,MONTH(A1),DAY(A1)))
Uma alternativa para =OR(ISBLANK(C1),C1=" ")
, que não tem diferença funcional, exceto reduzir o comprimento da fórmula em 6 caracteres, é usando a alternativa sugerida no comentário, que seria =OR(C1="",C1=" ")
fazendo uma fórmula final alternativa em% de célulaB1
as =IF(AND(DATEDIF(A1,TODAY(),"Y")>=1,OR(C1="",C1=" ")),TODAY(),DATE(YEAR(A1)+1,MONTH(A1),DAY(A1)))