Como aninhar mais de duas funções IF ISNUMBER SEARCH em uma fórmula de célula única?

Como aninhar mais de duas funções IF ISNUMBER SEARCH em uma fórmula de célula única?

Estou tentando aninhar mais de duas ISNUMBER SEARCHinstruçõ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))))

Minha planilha

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:

  1. O último IF() (mais interno) não contém a seção ELSE;
  2. 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 SEARCHfunção ISNUMBER, pode ser usada para verificar se a célula contém texto específico ou não.

SEARCHretorna a posição da string de pesquisa, se encontrada, e a fórmula testa se a string de pesquisa foi encontrada, usando ISNUMBERpara encontrar suas posições numéricas.

No seu caso, ao encontrar rrou rrr, a fórmula encontra rentre rre dentro rrre sempre calcula $E2+$AY$3em vez de $E2+$AY$4ou $E2+$AY$5.

Se L2contiver qualquer texto diferente rrou rrra mesma fórmula funcionará.

@Muji fez o truque, usou strings de pesquisa na ordem inversa para que a fórmula encontrasse primeiro o rrrthen rr& rin rrre funcionasse corretamente.

O simples IF functionpode 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.

informação relacionada