
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 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:
• Fórmula utilizada en la celda C2y Sheet Named Table1
para 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 comoStock Unit
,Sales Unit
ySales
basado enID
yName
- A continuación, use
SUM()
la función para realizar una operación booleana para comparar entre las matricesSales Unit
yStock Unit
extraí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 personalizadosLAMBDA()
. - Dentro del
LAMBDA()
uso de aLET()
para pasar unaFILTER()
función para extraer las tres columnas deseadas en función deID
yName
- A continuación, hacemos una suma de los productos de las matrices correspondientes aquí, comparando con
Stock Unit
-->INDEX(z,,1)
conSales Unit
-->INDEX(z,,2)
que devuelveTRUE
yFALSE
luego multiplicando lo mismo conSales
para obtener el resultado deseado después de la suma.
Una manera fácil podría ser usar SUMIFS()
la Sales Unit
Columna tomada como Criteria Range
y Stock Units
la Columna como Criteria
, sin embargo, depende de su preferencia:
=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))