Excel - BUSCARV con múltiples criterios
Pregunta
Actualmente estoy intentando analizar una hoja de cálculo de inventario de activos que consta de PC y monitores.El problema que tengo en este momento es asociar una PC con sus dos monitores.
Por ejemplo, la hoja de cálculo se ve así:
Hoja 1 - Lista de PC
Monitor 1 Monitor 2
Employee Name PC Tag Number Serial ID MonTag1 Tag Serial ID MonTag2 Tag Serial ID
John Smith ABC123456 123456789 ABC123423 5465614
Hoja 2 - Todos los activos:
Parent Asset (Tag) Tag Number Serial ID Description
ABC123456 ABC123423 5465614 24" Monitor
ABC123456 XYZ123424 5456415 24" Monitor
Donde activo principal (etiqueta) = código de barras de computadora
Hice una BUSCARV de la celda del Número de etiqueta de la PC en la hoja 2 para encontrar el número de etiqueta del monitor conectado a esa PC.entonces hice un VLOOKUP
del número de etiqueta contra la hoja 2 para encontrar el número de serie.
ahora necesito hacer otro VLOOKUP
para obtener información del Monitor 2, necesito que la fórmula busque el activo principal similar al primero VLOOKUP
pero proporcione el valor del segundo monitor en la hoja 2 (XYZ123424).
P.EJ
Monitor 1 Monitor 2
Employee Name PC Tag Number Serial ID MonTag1 Tag Serial ID MonTag2 Tag Serial ID
John Smith ABC123456 123456789 ABC123423 5465614 XYZ123424 5456415
Solución
OK, no podía pensar en cómo escribir mi solución, así que aquí hay un archivo de muestra: https://app.box.com/s/4j79fu7vd93u0dc1rltg
Tengo que decir, tiendo a preferir el uso de índice y coincidir con VlookUP, de modo que Combo (PLUS OFFSET) lo que he usado para esta solución.
Espero que esto sea lo que tenías en mente ... y por favor perdona el nombre del compañero de trabajo de John Smith.Acabo de llegar a algo rápido para asegurarme de que trabajaría con más empleados y una lista de equipos barajados.: D
Otros consejos
El enlace en la respuesta aceptada aparentemente expiró, por lo que quizás sea hora de actualizar esta publicación.
No estoy seguro de si abordar múltiples devoluciones o múltiples criterios es más importante, pero construir una Fórmula ÍNDICE con el mas nuevo Función AGREGAR¹ proporcionar los números de fila coincidentes puede manejar ambos fácilmente.
La función AGREGAR produce cálculos cíclicos de la misma manera que la función AGREGAR produce cálculos cíclicos. Función SUMAPRODUCTO lo hace, pero también sufre un retraso en el cálculo cuando se aplican referencias de columna completas.Por ese motivo, todos los rangos de búsqueda se crearán dinámicamente seleccionando una columna y determinando el principio y el final de los datos.La fila final de esta columna se utilizará para todas las demás columnas de búsqueda como punto final de sus propias columnas.
La columna de búsqueda principal en la Hoja2 (ver imagen de datos de muestra a continuación) es la columna A;p.ej.[Etiqueta de activo principal].Los valores de esta columna se basan en texto, por lo que lo siguiente determinará la extensión de los datos.
Sheet2!$A$1:INDEX(Sheet2!$A:$A, MATCH("zzz", Sheet2!$A:$A))
Si la columna [Etiqueta de activo principal] hubiera sido numérica, esta fórmula sería:
Sheet2!$A$1:INDEX(Sheet2!$A:$A, MATCH(1E+99, Sheet2!$A:$A))
Hoja 2 - Todos los activos:
Hoja 1 - Lista de PC
La función AGREGAR devuelve el número de fila apropiado a ÍNDICE usando su Subfunción PEQUEÑA (p.ej. 15).Para devolver el segundo, tercero, etc.fila coincidente, todo lo que se requiere es elevar el PEQUEÑO k parámetro.
Los números de fila coincidentes se recuperan forzando cualquier número de fila que no coincida en una #DIV/0!
estado de error e ignorar errores con el 6 opción.
Hoja1 - Fórmulas
Las fórmulas en A2 son,
=IFERROR(INDEX(Sheet2!$D:$D, AGGREGATE(15, 6, ROW(Sheet2!$A$1:INDEX(Sheet2!$A:$A, MATCH("zzz", Sheet2!$A:$A)))/(Sheet2!$A$1:INDEX(Sheet2!$A:$A, MATCH("zzz", Sheet2!$A:$A))=$B6), COLUMN(A:A))), "")
Complete a la derecha para devolver la lista del segundo monitor.Esto se logra utilizando el Función COLUMNA. COLUMN(A:A)
devoluciones 1 pero el derecho lleno se convierte COLUMN(B:B)
que regresa 2.Esto alimenta a los PEQUEÑOS k parámetro.
La fórmula en D6 es,
=IFERROR(INDEX(Sheet2!B:B, AGGREGATE(15, 6, ROW(Sheet2!$A$1:INDEX(Sheet2!$A:$A, MATCH("zzz", Sheet2!$A:$A)))/(Sheet2!$A$1:INDEX(Sheet2!$A:$A, MATCH("zzz", Sheet2!$A:$A))=$B6), 1)), "")
Eso recupera la primera [Etiqueta MonTag1].Llene hacia la derecha hasta E6 para recoger el primer [ID de serie].Copie la fórmula de D6 usando la barra de fórmulas (no copie la celda) a F6 como,
=INDEX(Sheet2!B:B, AGGREGATE(15, 6, ROW(Sheet2!A$1:INDEX(Sheet2!A:A, MATCH("zzz", Sheet2!A:A)))/(Sheet2!A$1:INDEX(Sheet2!A:A, MATCH("zzz", Sheet2!A:A))=$B6), 2))
Cambiar el k parámetro a 2.Esto recupera la [Etiqueta MonTag1] del segundo monitor.Llene hacia la derecha hasta G6 para recoger el segundo [ID de serie].
Nada de eso.Se pueden agregar múltiples columnas de criterios como declaraciones VERDADERO/FALSO multiplicadas por el denominador que produce el #DIV/0!
errores.
¹ El Función agregada se introdujo con Excel 2010.No está disponible en versiones anteriores.
² El Función SI ERROR se introdujo con Excel 2007.No está disponible en versiones anteriores.
La compatibilidad con la versión anterior de Excel se puede mantener con el Paquete de compatibilidad de Microsoft Office para Word, Excel y PowerPoint.