
Estou tentando aninhar mais de duas ISNUMBER
SEARCH
instruções () em uma célula e as duas últimas não funcionam. Os dois primeiros argumentos ("n/a" e "r") funcionam, mas o terceiro e o quarto extraem os dados errados.
Você pode ter mais de duas pesquisas em uma célula? Onde minha fórmula está errada?
=IF(ISNUMBER(SEARCH("N/A",$L2)),$E2+$AY$2,IF(ISNUMBER(SEARCH("r",$L2)),$E2+$AY$3,IF(ISNUMBER(SEARCH("rr",$L2)),$E2+$AY$4,IF(ISNUMBER(SEARCH("rrr",$L2)),$E2+$AY$5))))
Obrigado pela sua ajuda antecipadamente
Responder1
Isso é causado porque a fórmula encontra um único “r” em valores de células “rr” e também “rrr”. Tente alterar a ordem da condição ISNUMBER. Comece com “rrr”, depois “rr” e finalmente “r”. Deveria funcionar.
=IF(ISNUMBER(SEARCH("N/A",$L2)),$E2+$AY$2,IF(ISNUMBER(SEARCH("rrr",$L2)),$E2+$AY$5,IF(ISNUMBER(SEARCH("rr",$L2)),$E2+$AY$4,IF(ISNUMBER(SEARCH("r",$L2)),$E2+$AY$3))))
Atenciosamente, Lucas
Responder2
Pretizando a fórmula, vemos:
IF( ISNUMBER(SEARCH("N/A",$L2)),
$E2+$AY$2,
IF( ISNUMBER(SEARCH("r",$L2)),
$E2+$AY$3,
IF( ISNUMBER(SEARCH("rr",$L2)),
$E2+$AY$4,
IF( ISNUMBER(SEARCH("rrr",$L2)),
$E2+$AY$5
)
)
)
)
Agora vemos:
- O último IF() (mais interno) não contém a seção ELSE;
- O segundo IF() fornece True para qualquer valor testado por mais IF() interno - portanto, nenhum IF() interno pode fornecer True porque IF() externo já fez isso.
Recomendação: substitua SEARCH() por testes de equações simples.
Responder3
A SEARCH
função ISNUMBER
, pode ser usada para verificar se a célula contém texto específico ou não.
SEARCH
retorna a posição da string de pesquisa, se encontrada, e a fórmula testa se a string de pesquisa foi encontrada, usando ISNUMBER
para encontrar suas posições numéricas.
No seu caso, ao encontrar rr
ou rrr
, a fórmula encontra r
entre rr
e dentro rrr
e sempre calcula $E2+$AY$3
em vez de $E2+$AY$4
ou $E2+$AY$5
.
Se L2
contiver qualquer texto diferente rr
ou rrr
a mesma fórmula funcionará.
@Muji fez o truque, usou strings de pesquisa na ordem inversa para que a fórmula encontrasse primeiro o rrr
then rr
& r
in rrr
e funcionasse corretamente.
O simples IF function
pode testar tudo isso com sucesso.
=IF($L$2="N/A",$E$2+$AY$2,IF($L$2="r",$E$2+$AY$3,IF($L$2="rr",$E$2+$AY$4,IF($L$2="rrr",$E$2+$AY$5))))
Ajuste as referências de células na fórmula conforme necessário.