Índice único + Match funciona, mas na instrução if

Índice único + Match funciona, mas na instrução if
=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á pessoal! Aqui, existem 4 planilhas diferentes e tento pesquisar o valor na célula A4 para procurar todas as 4 planilhas de origem para retornar os valores corretos.

Quando tento isso, funciona muito bem:

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

Mas isso não funciona com instruções if simples como abaixo, bem como com instruções if aninhadas. E não tenho ideia de onde errei.

=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 “NÃO”, que é um valor falso. Você poderia dar uma olhada e me dizer o que fiz de errado? Sua atenção e tempo são muito apreciados.

Responder1

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

Use isto em vez disso:

=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)))
)))

informação relacionada