
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.JPG.
Tenho validação de dados personalizada para minhas duas últimas colunas mostradas em DV1.JPGDV1.JPGe DV2.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.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