Verifique se o valor da célula existe na coluna e, em seguida, obtenha o valor da próxima célula


89

Depois de verificar se existe um valor de célula em uma coluna, preciso obter o valor da célula ao lado da célula correspondente . Por exemplo, verifico se o valor em cell A1existe em column Be, supondo que corresponda B5, desejo o valor em cell C5.

Para resolver a primeira metade do problema, eu fiz isso ...

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match")

... e funcionou. Então, graças a uma resposta anterior no SO , também fui capaz de obter o número da linha da célula correspondente:

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match on Row " & MATCH(A1,B:B, 0))

Então, naturalmente, para obter o valor da próxima célula, tentei ...

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", C&MATCH(A1,B:B, 0))

... e não funciona.

o que estou perdendo? Como faço para anexar o número da coluna ao número da linha retornado para obter o resultado desejado?

Respostas:


99

Use uma função diferente, como VLOOKUP:

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", VLOOKUP(A1,B:C,2,FALSE))

1
Obrigado! Isso também funciona! E eu acho que seria melhor usar em VLOOKUP(A1, B:C, 2, FALSE)vez de usar um intervalo fixo (de modo a acomodar uma matriz de pesquisa crescente)?
SNag

1
Sim, apenas usei esse intervalo fixo como um teste. Editou na minha resposta.
CustomX

Você não precisa IFERRORaqui. Funciona bem sem ele, porque VLOOKUP só é executado se houver correspondência.
SNag

Ops! Parece que tenho testado na coluna errada: P De fato, sem IFERROR, ele funciona perfeitamente também: P
CustomX

3
Isso é mais velho do que antigo, mas eu só queria dizer que tenho usado isso há anos e realmente me incomoda que você nunca tenha recebido a melhor resposta. Eu adoro o fato de tornar a tabela escalonável para comparar várias colunas.
DuffDuff

36

Após a resposta de t.thielemans , trabalhei que apenas

=VLOOKUP(A1, B:C, 2, FALSE) 

funciona bem e faz o que eu queria, exceto que retorna #N/Apara não correspondências; portanto, é adequado para o caso em que se sabe que o valor existe definitivamente na coluna de pesquisa.

Editar (com base no comentário de t.thielemans):

Para evitar #N/Anão correspondências, faça:

=IFERROR(VLOOKUP(A1, B:C, 2, FALSE), "No Match")

3
Use isso IFERROR(VLOOKUP(A1, B:C, 2, FALSE),0). Eu também adicionei isso à minha resposta. 0 sendo o valor que você quiser :) (usar isso no código levará a Nenhuma correspondência se nenhuma correspondência for encontrada;)
CustomX

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.