Estoy tratando de encontrar una manera de comparar dos listas de "personas" con varias filas por persona con otra lista donde pueden contener o no las mismas filas.
Cada persona tiene una identificación única y única. Para cada persona en cualquiera de las listas, puede haber entre 1 y 4 filas. Es posible que no contengan necesariamente el mismo número de filas o que no estén en el mismo orden. Aparte de eso, por persona, casi todas las celdas de cada fila serán redundantes e idénticas (principalmente información personal que no varía). Las posibles filas ("items") son siempre las mismas: Chaquetas, Gorros, Zapatos y Accesorios. Las dos últimas celdas de cada fila son el valor real que necesito comparar.
El inglés es mi segundo idioma y me está costando muchísimo expresarlo con palabras.así que hice un ejemplo en Google Sheets.
También obtengo ambas tablas con las columnas y el formato específicos como en el ejemplo que estoy vinculando y no puedo cambiarlas ni reorganizarlas. Todo lo que puedo hacer es agregar "¿Pasó?" columna.
Me parece que necesito algo así como una versión más sofisticada de BUSCARV, donde pueda buscar el ID único (col. B), luego de alguna manera buscar también el artículo (col. E) y devolver el valor de la cantidad para ese específico artículo (col. F). Entonces es sólo una cuestión de SI A=B y luego "¡OK!", etc. Pero no conozco una función que funcione como una BUSCARV doble, por así decirlo.
¿Pueden ustedes, buenas personas de SU, indicarme la dirección correcta sobre cómo encontrar una forma de producir la columna de "comparación" en N de una manera que no requiera secuencias de comandos? De lo contrario, ¿cómo puedo comparar cada elemento para cada persona con los mismos elementos para la misma persona en la otra lista?
Ejemplo de tabla 1
NOMBRE | N.º de identificación del proveedor | SEXO | EDAD | ARTÍCULOS ESPERADOS | CANTIDAD ESPERADA |
---|---|---|---|---|---|
Watts, Tom | 6505581 | METRO | 21 | Chaquetas | 44 |
Watts, Tom | 6505581 | METRO | 21 | Sombreros | 20 |
Watts, Tom | 6505581 | METRO | 21 | Zapatos | 55 |
Watts, Tom | 6505581 | METRO | 21 | Accesorios | 18 |
SMITH, JANE | 702452 | F | 32 | Sombreros | 56 |
SMITH, JANE | 702452 | F | 32 | Zapatos | 20 |
SMITH, JANE | 702452 | F | 32 | Accesorios | 26 |
GAMA, JUAN | 1235554 | METRO | 54 | Chaquetas | 80 |
GAMA, JUAN | 1235554 | METRO | 54 | Accesorios | 20 |
Ejemplo de tabla 2
NOMBRE | N.º de identificación del proveedor | SEXO | EDAD | COSAS VENDIDAS | CANTIDAD VENDIDA | ¿PASÓ? |
---|---|---|---|---|---|---|
Watts, Tom | 6505581 | METRO | 21 | Chaquetas | 44 | ¡DE ACUERDO! |
Watts, Tom | 6505581 | METRO | 21 | Zapatos | sesenta y cinco | +10 |
Watts, Tom | 6505581 | METRO | 21 | Sombreros | 20 | ¡DE ACUERDO! |
Watts, Tom | 6505581 | METRO | 21 | Accesorios | 18 | ¡DE ACUERDO! |
SMITH, JANE | 702452 | F | 32 | Accesorios | 26 | ¡DE ACUERDO! |
SMITH, JANE | 702452 | F | 32 | Zapatos | 10 | -10 |
SMITH, JANE | 702452 | F | 32 | Sombreros | 56 | ¡DE ACUERDO! |
GAMA, JUAN | 1235554 | METRO | 54 | Chaquetas | 95 | +15 |
GAMA, JUAN | 1235554 | METRO | 54 | Accesorios | 22 | 2 |
Respuesta1
Una solución sin tablas yLET
Ahora he usado una columna auxiliar para obtener primero la cantidad esperada (para que la fórmula final sea más simple):
=FILTER($F$2:$F$10,($B$2:$B$10=I2)*($E$2:$E$10=L2))
La fórmula principal simplemente compara la cantidad vendida con la cantidad esperada:
=IF(M2=N2,"OK!",M2-N2)
Respuesta2
La función que necesita es FILTER()
, además de eso, he usado LET()
la función para simplificar la fórmula y agregué tablas (insertar - tabla), para poder usar referencias estructuradas.
=LET(expected, FILTER(Table1[AMOUNT EXPECTED],(Table1[VENDOR ID '#]=[@[VENDOR ID '#]])*(Table1[ITEMS EXPECTED]=[@[ITEMS SOLD]])),IF(expected=[@[AMOUNT SOLD]],"OK!",[@[AMOUNT SOLD]]-expected))