Single index + Match funciona, mas na instrução if

0
=IF(
A4=INDEX(Sheet1!$B:$B, MATCH(A4, Sheet1!$C:$C, 0)), 
INDEX(Sheet1!$B:$B, MATCH(A4, Sheet1!$C:$C,0)),

    IF(A4=INDEX(Source1!$A:$A, MATCH(A4, Source1!$B:$B, 0)), 
    INDEX(Source1!$A:$A, MATCH(A4, Source1!$B:$B, 0)),

        IF(A4=INDEX(Source2!$A:$A, MATCH(A4, Source2!$B:$B, 0)), 
        INDEX(Source2!$A:$A, MATCH(A4, Source2!$B:$B, 0)),

            IF(A4=INDEX(Source3!$A:$A, MATCH(A4, Source3!$B:$B, 0)), 
            INDEX(Source3!$A:$A, MATCH(A4, Source3!$B:$B, 0)))
)))

Olá a todos! Aqui, existem 4 planilhas diferentes e eu tento pesquisar o valor na célula A4 para procurar todas as 4 planilhas de origem para retornar valores corretos.

Quando eu tento isso, funciona bem como ouro:

INDEX(Sheet1!$B:$B, MATCH(A4, Sheet1!$C:$C,0))

Mas isso não funciona com instruções if simples, como as instruções nest if. E não tenho ideia de onde fiz errado.

=IF(INDEX(Sheet1!$B:$B, MATCH(A4, Sheet1!$C:$C, 0))=A4,
    INDEX(Sheet1!$B:$B, MATCH(A4, Sheet1!$C:$C, 0)),
    "NO")

Com isso, cada célula retorna "NO", que é um valor falso. Você poderia dar uma olhada e me dizer o que eu fiz de errado? Sua atenção e tempo muito apreciados.

    
por zzaewon 25.05.2017 / 19:19

1 resposta

0

se A4 não for encontrado, ele retornará um erro e você não poderá se igualar a um erro sem criar seu próprio erro.

Use isso:

=IF(
ISNUMBER(MATCH(A4, Sheet1!$C:$C, 0)), 
INDEX(Sheet1!$B:$B, MATCH(A4, Sheet1!$C:$C,0)),

    IF(ISNUMBER(MATCH(A4, Source1!$B:$B, 0)), 
    INDEX(Source1!$A:$A, MATCH(A4, Source1!$B:$B, 0)),

        IF(ISNUMBER(MATCH(A4, Source2!$B:$B, 0)), 
        INDEX(Source2!$A:$A, MATCH(A4, Source2!$B:$B, 0)),

            IF(ISNUMBER(MATCH(A4, Source3!$B:$B, 0)), 
            INDEX(Source3!$A:$A, MATCH(A4, Source3!$B:$B, 0)))
)))
    
por 25.05.2017 / 19:37