Pregunta ¿Cómo puedo combinar VLOOKUP dentro de una declaración IF donde el índice de columna de la función VLOOKUP es un número extrapolado de un texto?


Tengo las siguientes tablas en Excel; Product Stock 

y Stock Analysis.

El producto Stock table (PST) es más extenso que esto, pero a los fines de esta pregunta lo he cortado.

Quiero buscar el valor en una columna en la tabla de análisis de stock (SAB) coincide con el valor en la columna Tamaño de la tabla Stock del producto.

Por ejemplo, en este caso, el valor en la columna de tamaño de la tabla Stock de productos (PST) es 8 así que quiero buscar el valor en el Tamaño 8 columna de mi tabla de Análisis de Stock. Si mi valor fuera 5 luego búsqueda Talla 5 en mi tabla de Análisis de Stock (SAB).

Tenga en cuenta que la validación de datos se ha llevado a cabo para garantizar que los valores en la columna Tamaño de la tabla Stock del producto se basen en la dimensión especificada, por lo tanto, solo tendrán un rango de tamaños que también son las columnas de la tabla Stock Analysis

También se ha insertado la fórmula para asegurar que la próxima fila del SAB siempre tendrá un número de lote que es uno más que la fila anterior (es decir, hay un aumento de 1 en la columna No de lote para cada nueva fila), esto es para garantizar que no se repitan los lotes en el SAB


4


origen


No estoy seguro de que entiendo completamente. No ha etiquetado sus tablas, supongo que el primero es su PST y el segundo es su SAT? Además, ¿qué resultado estás esperando? Menciona que la columna de tamaño de su PST es 8, ¿cuál sería el resultado de su tabla SAT? Supongo que 7? - Kevin Anthony Oppegaard Rose
Sí, me disculpo, pero cuando estaba escribiendo la pregunta, me pareció que las tablas estaban etiquetadas. Yo, sin embargo, traté de explicar más. @ g.kov parece haber resuelto mi problema. - MrMarho


Respuestas:


¿Algo como esto?

enter image description here

Fórmula en H12 es:

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

Editar: Cómo la fórmula en H12 trabajos.

La parte que proporciona un número de columna

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

primero concatena el prefijo "Size " con el valor de F12 (= 8), lo que resulta en una cadena "Size 8". Entonces eso mira a través de las celdas en la fila de encabezado $C$5:$H$5  para encontrar esta cadena clave y devuelve un número de la celda correspondiente, es decir, 6 (la última celda en el encabezado). Entonces la fórmula

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

esencialmente se convierte

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

que busca el contenido de E12 (= 1) en la primera columna del rango $C$6:$H$8. En otras palabras, selecciona la fila, que corresponde a Batch No=1, cual es 1. Y dados los números de la fila (= 1) y la columna (= 6) en el rango $C$6:$H$8, VLOOKUP devuelve un valor almacenado en H6, cual es 7.


10



Sí exactamente lo que estoy buscando. Acabas de terminar 4 horas de tormenta de ideas. - MrMarho
Entonces, no hay necesidad de mi función IF ya que la validación de datos se ha llevado a cabo, supongo. - MrMarho
@MrMarho: Bueno, siempre hay un lugar para los errores, por lo que depende de usted cómo manejarlos. - g.kov
@ fixer1234: agregado - g.kov


Prueba el index función con una coincidencia para el # de lote y el texto de tamaño:

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

2



Bienvenido a Super Usuario. Las respuestas que educan son mejores que las que solo brindan una solución de corte y pasado porque ayudan al lector a entender cómo resolver el siguiente problema. ¿Puedes agregar un par de oraciones para explicar cómo funciona esto? Gracias. - fixer1234