Questão Como eu posso combinar VLOOKUP dentro de uma instrução IF onde o índice da coluna da função VLOOKUP é um número extrapolado de um texto?


Eu tenho as seguintes tabelas no excel; Product Stock 

e Stock Analysis.

A tabela de ações do produto (PST) é mais extenso do que isso, mas para os propósitos desta questão eu o cortei.

Eu quero pesquisar o valor em uma coluna na tabela de análise de estoque (SENTOU) corresponde ao valor na coluna Tamanho da tabela Estoque do Produto.

Por exemplo, nesse caso, o valor na coluna Tamanho da tabela Meu estoque de produtos (PST) é 8 então eu quero procurar o valor no Tamanho 8 coluna da minha tabela de análise de ações. Se meu valor fosse 5 então pesquisa Tamanho 5 na minha tabela de análise de estoque (SENTOU).

Observe que a validação de dados foi realizada para garantir que os valores na coluna Tamanho da tabela Meu estoque de produtos sejam baseados na dimensão especificada, portanto, terão apenas um intervalo de tamanhos que também são as colunas da tabela Análise de Estoque

Também foi inserida uma fórmula para garantir que a próxima linha do SENTOU sempre terá um número de lote que é mais um que a linha anterior (ou seja, há um aumento de 1 na coluna Nº de lote para cada nova linha), para garantir que não haja repetição de lotes no lote. SENTOU


4


origem


Não tenho certeza se entendi completamente. Você não rotulou suas tabelas, presumo que o primeiro é o seu PST e o segundo é o seu SAT? Além disso, o resultado que você está esperando? Você menciona que a coluna de tamanho do seu PST é 8, qual seria o resultado da sua tabela SAT? Eu assumo 7? - Kevin Anthony Oppegaard Rose
Sim, peço desculpas, mas quando eu estava digitando a pergunta, pareceu-me que as tabelas estavam rotuladas. Eu, no entanto, tentei explicar mais. @ g.kov parecia ter resolvido o meu problema. - MrMarho


Respostas:


Algo assim?

enter image description here

Fórmula em H12 é:

=VLOOKUP(E12,$C$6:$H$8,MATCH("Size "&F12,$C$5:$H$5,0),FALSE)

Editar: Como a fórmula em H12 trabalho.

A parte que fornece um número de coluna,

MATCH("Size "&F12,$C$5:$H$5,0)

primeiro concatena o prefixo "Size " com o valor de F12 (= 8), resultando em uma string "Size 8". Então isso olha através das células na linha de cabeçalho $C$5:$H$5  para encontrar essa string de chave e retorna um número da célula correspondente, ou seja, 6 (a última célula no cabeçalho). Então a fórmula

=VLOOKUP(E12,$C$6:$H$8,MATCH("Size "&F12,$C$5:$H$5,0),FALSE)

essencialmente se torna

=VLOOKUP(E12,$C$6:$H$8,6,FALSE)

que procura o conteúdo de E12 (= 1) na primeira coluna do intervalo $C$6:$H$8. Em outras palavras, ele seleciona a linha, que corresponde a Batch No=1, qual é 1. E dado os números de linha (= 1) e coluna (= 6) na faixa $C$6:$H$8, VLOOKUP retorna um valor armazenado em H6, qual é 7.


10



Sim exatamente o que estou procurando. Você acabou de terminar 4 horas de brainstorming. - MrMarho
Portanto, não há necessidade da minha função IF, uma vez que a validação de dados foi realizada, presumo? - MrMarho
@MrMarho: Bem, há sempre um lugar para erros, então cabe a você como lidar com eles. - g.kov
@ fixer1234: adicionado - g.kov


Tente o index função com uma correspondência para o lote # e o texto de tamanho:

=INDEX(C6:H8,MATCH($E12,$C$6:$C$8,0),MATCH("Size "&$F12,$C$5:$H$5,0))

2



Bem-vindo ao superusuário. Respostas que educam são melhores do que aquelas que apenas fornecem uma solução de corte e passado, porque ajudam o leitor a entender como resolver o próximo problema. Você pode adicionar algumas frases para explicar como isso funciona? Obrigado. - fixer1234