A validação de dados personalizados falha mesmo que a avaliação da fórmula seja "FALSA"

A validação de dados personalizados falha mesmo que a avaliação da fórmula seja "FALSA"

Portanto, antes de fazer minha pergunta, peço desculpas pelo texto do título. Não consegui encontrar uma formulação genérica que se adaptasse ao meu problema.

Eu tenho uma tabela que é fornecida em Table.JPGTabela.JPG.

Tenho validação de dados personalizada para minhas duas últimas colunas mostradas em DV1.JPGDV1.JPGe DV2.JPGDV2.JPG.

A fórmula na célulaL3é =AND(NOT(ISBLANK(K3)),ISNUMBER(L3),LEFT(CELL("format",L3),1)="D",L3>=K3, YEARFRAC(K3, L3)>=0.5 )

A Fórmula emM4é =AND(INT(M4)=M4, NOT(ISBLANK(L4)))

Ambas as fórmulas falham e, como segue, a validação de dados não deve permitir que eu insira essa entrada de usuário, mas não é o caso. A imagem da avaliação da fórmula é mostrada em FormEval.JPGFormEval.JPG.

Então agora o motivo do problema; Estou tentando garantir que uma data de renovação,Colunaeusó pode ser inserido se existir uma data de início para um membro e esta data de renovação deve ser de pelo menos 6 meses a partir da data de início e, finalmente, deve ser uma data maior que a data de início, dada a forma como oANOFRACfunção funciona.

Seguindo o acima, o ID de renovação,ColunaMdeve ser definido pelo usuário e esse ID de renovação deve ser um número inteiro e esse valor só poderá ser inserido se uma data de renovação for definida.

Com base em pesquisas que fiz até agora. A fórmula parece boa, então por que ela falha em alguns casos (ou seja, quando a coluna dependente está em branco)?

Responder1

Para coluna L em L3 use:

=AND(COUNTA($K3),$L3>=EDATE($K3,6))

Para coluna M em M3 use:

=AND($M3-INT($M3)=0,COUNTA($L3))

Ao testar a data vazia, o Excel converterá 0 para 01-01-1900, é por isso que a validação não está funcionando com isblank()
E o Edate adicionará 6 meses à data

CountA será avaliado como True se a célula não estiver vazia

informação relacionada