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