¿Cómo comparar 2 listas con varias filas por elemento?

¿Cómo comparar 2 listas con varias filas por elemento?

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)

ingrese la descripción de la imagen aquí

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))

ingrese la descripción de la imagen aquí

información relacionada