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 A1
existe em column B
e, 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?
VLOOKUP(A1, B:C, 2, FALSE)
vez de usar um intervalo fixo (de modo a acomodar uma matriz de pesquisa crescente)?IFERROR
aqui. Funciona bem sem ele, porque VLOOKUP só é executado se houver correspondência.Após a resposta de t.thielemans , trabalhei que apenas
funciona bem e faz o que eu queria, exceto que retorna
#N/A
para 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/A
não correspondências, faça:fonte
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;)Que tal agora?
O "3" no final significa para a coluna C.
fonte