Calcular las ventas totales con múltiples criterios en dos tablas

Calcular las ventas totales con múltiples criterios en dos tablas

Actualmente estoy trabajando contabla 1y tratando de calcular las ventas totales[Columna C]de productos con el mismoIDENTIFICACIÓNy hacer coincidir unidades de stock y unidades de ventas enTabla 2. Intenté usar la fórmula SUMIFS así:

=SUMIFS(Table2!E:E, Table2!A:A, Table1!A1, Table2!C:C, Table2!D:D)

Sin embargo, no parece darme el resultado deseado. ¿Alguien podría echarme una mano y ayudarme con esto? Realmente agradecería tu ayuda. ¡Gracias!

Tabla 1 (Resultados Deseados):

tabla 1

Tabla 2:

Tabla 2

Respuesta1

Si entiendo correctamente, entonces SUMIFS()no es la función correcta la que funcionará para el resultado deseado; en su lugar, utilice la siguiente como se muestra en la captura de pantalla:

ingrese la descripción de la imagen aquí


• Fórmula utilizada en la celda C2y Sheet Named Table1para completar:

=LET(
     _extract, FILTER(Table2!C$2:E$19,(Table2!A$2:A$19=Table1!A2)*(Table1!B2=Table2!B$2:B$19),""),
     SUM(--(INDEX(_extract,,1)=INDEX(_extract,,2))*TAKE(_extract,,-1)))

  • Usando FILTER()la función extrae el rango de datos con encabezados como Stock Unit, Sales Unity Salesbasado en IDyName
  • A continuación, use SUM()la función para realizar una operación booleana para comparar entre las matrices Sales Unity Stock Unitextraídas de arriba para hacer una suma de los productos de las matrices correspondientes.

Además, si está utilizando MS365, puede dividir todo el resultado con una sola fórmula, por lo que no es necesario completar aquí:

=MAP(A2:A7,B2:B7,LAMBDA(x,y,
  LET(z, FILTER(Table2!C:E,(Table2!A:A=x)*(Table2!B:B=y),""), 
  SUM(--(INDEX(z,,1)=INDEX(z,,2))*TAKE(z,,-1)))))

  • Uso de MAP()la función para iterar los valores de cada celda para realizar cálculos personalizados LAMBDA().
  • Dentro del LAMBDA()uso de a LET()para pasar una FILTER()función para extraer las tres columnas deseadas en función de IDyName
  • A continuación, hacemos una suma de los productos de las matrices correspondientes aquí, comparando con Stock Unit--> INDEX(z,,1)con Sales Unit--> INDEX(z,,2)que devuelve TRUEy FALSEluego multiplicando lo mismo con Salespara obtener el resultado deseado después de la suma.

Una manera fácil podría ser usar SUMIFS()la Sales UnitColumna tomada como Criteria Rangey Stock Unitsla Columna como Criteria, sin embargo, depende de su preferencia:

ingrese la descripción de la imagen aquí


=SUMPRODUCT(
    SUMIFS(
        Table2!E:E,
        Table2!A:A, Table1!A2,
        Table2!B:B, Table1!B2,
        Table2!D:D, UNIQUE(
            Table2!C:C
        )
    )
)

Una forma alternativa más, pero se recomienda, ralentizará la eficiencia de Excel.

=SUM(FILTER(Table2!E:E,(IFNA(XMATCH(Table2!D:D,UNIQUE(Table2!C:C)),0))*(A2=Table2!A:A)*(Table2!B:B=Table1!B2),0)) 

información relacionada