Valor de retorno do Excel Vlookup de reference_row-1 em vez da linha de referência

Valor de retorno do Excel Vlookup de reference_row-1 em vez da linha de referência

Como assunto, estou fazendo vlookup entre 2 arquivos Excel, o valor de retorno da fórmula from reference_row-1("Room") em vez de reference_row(DPS DPC) Por que isso aconteceu e como posso consertar?

erro de retorno do excel vlookup

Responder1

O comentário de Mark Fitzgeraldestá no caminho certo, mas não exatamente lá.

A parte correta é que o quarto parâmetro não é especificado E não é especificado como FALSE.

Quando não especificado, o padrão é TRUE. Também é TRUE quando especificado como TRUE. De qualquer forma, você se depara com o problema que vê aqui, mas há algo mais acontecendo aqui que causa o resultado infeliz que você está obtendo.

Antes de abordar isso, devo salientar que, em um uso como o seu, você claramente precisa de uma correspondência exata para obter resultados corretos. Então você deve adicionar o quarto parâmetro e torná-lo FALSE para que procure uma correspondência exata. O problema subjacente que estou prestes a abordar não terá importância, o que é um benefício.

O verdadeiro problema vem de como você informa ao Excel qual intervalo usar para a pesquisa: o segundo parâmetro. Você está usando C:Vo que diz ao Excel para usar cada célula dessas colunas. Há MUITOS motivos para NÃO fazer isso, mas o que importa aqui está vinculado ao valor TRUE para o quarto parâmetro.

Quando for TRUE, a Microsoft nos diz VLOOKUP()(e algumas outras funções, se estiver procurando coisas sem esperar uma correspondência exata) irá pesquisar os dados até encontrar uma célula que seja "maior que" o valor de pesquisa, então pare e retorne o valor DIREITO ANTES do valor "maior que". Mencionarei que isso não é realmente verdade, mas é próximo o suficiente para sua dificuldade.

Devido ao que afirmam, eles sugerem que resultados corretos só ocorrerão quando a coluna de pesquisa (coluna C aqui) for classificada, do valor mais baixo para o valor mais alto ("AZ"). E isso funcionará, quase sempre, mesmo no seu caso, provavelmente (mas provavelmente 99,99%). Infelizmente, um grande número de pessoas simplesmente não consegue fazer isso sem atrapalhar alguma outra funcionalidade em seus dados. Para a maioria, eles simplesmente desejam classificá-lo de acordo com outras condições e não podem classificá-lo pela coluna de pesquisa.

Então, o que está acontecendo com você? A pesquisa está procurando por "CA-whatever" na coluna C. Mas... está começando com o cabeçalho da coluna na célula C1. Esse cabeçalho é "Código de barras"... e até agora está (mais ou menos) bom. Então, na célula C2, encontra-se algo "maior que" o valor de pesquisa (que começa com "CA"). Digamos que encontre, na célula C2, algo em ordem alfabética depois dela e do cabeçalho. Ele para imediatamente e "recua" de volta para a célula do cabeçalho. Essa é a linha 1 do intervalo, lê à direita na coluna S e encontra "Sala" nessa célula (S1). É isso que ele retorna.

Na verdade, se C2 não tivesse ultrapassado o valor de pesquisa em ordem alfabética, certamente teria encontrado algo que estava muito antes de chegar a C380 e teria parado naquele ponto anterior, recuado uma linha e retornado o valor S da coluna dessa linha. O que TAMBÉM estaria errado, mas pode não ter sido tão obviamente errado a ponto de você perceber. Afinal, isso daria um espaço com aparência normal. Tudo pode parecer bem. E, no entanto, pode haver facilmente 4 ou 32, ou mesmo 200-300 valores errados AGORA.

Como mencionei no início, você claramente precisa de correspondências exatas de qualquer maneira, então adicione o quarto parâmetro à pesquisa. Use FALSE, não TRUE. FALSE irá forçá-lo a procurar uma correspondência exata.

Como o problema foi postado há mais de dois anos, parece que você o resolveu de uma forma ou de outra. Mas talvez isso seja útil para outra pessoa, alguém que possa achar útil até mesmo para explicar como adicionar resultados com outras funções que supostamente funcionam como o MS diz, mas realmente funcionam como eu disse, embora meu toque nisso tenha sido apenas uma pequena fatia de todo o assunto! Mas qualquer função que faça pesquisas pode se deparar com isso. MATCH()e XMATCH(), até mesmo a nova XLOOKUP()função. É certo que as funções mais recentes só se deparam com isso quando usam correspondência não exata, mas como o fazem e as pessoas as usam dessa forma... E há outras ocasiões em que isso surge.

informação relacionada