Eu gosto de manter minhas planilhas do Excel bastante limpas. Então, muitas vezes eu acabo escrevendo declarações como esta:
IF([formula x]=[value],"",[formula x])
O que essencialmente diz é que, se a fórmula corresponder a um determinado critério, não exibir o resultado - caso contrário, exibir o resultado.
Em alguns casos, [formula x]
é repetido em uma coluna inteira de células e cada célula tem uma referência em [formula x]
que aponta para a célula acima dela. Para evitar erros de fórmula, tenho que adicionar outra camada da seguinte forma:
IF(C2="","",IF([formula x]=[value],"",[formula x])
No entanto, especialmente quando
[formula x]
é muito longo, isso pode resultar em uma fórmula final que parece muito mais complicada do que é e se torna muito mais difícil de solucionar problemas e manter do que deveria ser.
Aqui está um exemplo horrível ...
Fórmula básica:
=IF(A3>=$E$11,C2+(C2*($F$2/12))-$E$9,C2+(C2*($F$2/12))-$E$7)
Adicionar preenchimento condicional:
=IF(C2="","",IF(IF(A3>=$E$11,C2+(C2*($F$2/12)-$E$9),C2+(C2*($F$2/12))-$E$7)<=0,"",IF(A3>=$E$11,C2+(C2*($F$2/12))-$E$9,C2+(C2*($F$2/12))-$E$7)))
Uma fórmula já muito longa é mais do que duplicada em tamanho, apenas para que eu possa exibir um espaço em branco (ou qualquer outro valor escolhido) quando essa mesma fórmula atender a uma determinada condição. Se eu tentar fazer isso em uma linha inteira, dependendo da fórmula inicial, posso facilmente encontrar erros de referência circulares.
Existe alguma maneira de fazer referência a uma fórmula ou argumento existente dentro da mesma célula, ou talvez outra função ou recurso que possa ser usado para obter esse resultado de maneira mais clara?
Uma função que faz o que eu estou procurando pode ser assim:
=FnName([base formula],[match condition],[condition result])
O argumento 1 é a fórmula base, o argumento 2 é a condição em que estou interessado em corresponder. O argumento 3 é o resultado a ser exibido se a condição corresponder. Caso a condição não seja correspondida, a função retorna o resultado da fórmula base.