Supongamos que tengo la siguiente tabla:
Me gustaría encontrar la cantidad total de manzanas vendidas el día 1, independientemente del cliente al que se vendieron.
Estoy algo familiarizado con esto, INDEX/MATCH
pero no estoy muy seguro de cómo proceder.
Entiendo que la SUMIF
función se puede usar para sumar solo el día deseado, pero no estoy seguro de cómo sumar varias filas con INDEX/MATCH
.
El resultado que estoy buscando es el siguiente:
Pero lo más importante es que me gustaría sabercómo sumar varias filas específicasy por eso estoy solicitandouna fórmula para B16.
Respuesta1
Si tiene la opción de separar las celdas de la columna A y normalizarlas, entonces una simple SUMIFS
debería funcionar. De lo contrario, prueba esto:
=SUMPRODUCT($C$2:$C$13,
1*($B$2:$B$13=$A16),
1*(ROW($A$2:$A$13)>=SMALL(ROW($A$2:$A$13)+100*($A$2:$A$13=""),B$15)),
1*(ROW($A$2:$A$13)<SMALL(ROW($A$2:$A$13)+100*($A$2:$A$13=""),B$15+1)))
Resultado:
╔════════╦════╦════╗
║ Day ║ 1 ║ 2 ║
╠════════╬════╬════╣
║ Apple ║ 60 ║ 90 ║
║ Orange ║ 0 ║ 85 ║
║ Pear ║ 75 ║ 0 ║
╚════════╩════╩════╝
Fuente:
Modificó la fórmulaencontrado aquí:
Explicación:
La parte central es la SMALL
función.
SMALL(ROW($A$2:$A$13)+100*($A$2:$A$13=""),B$15)
Crea una matriz de números de fila para un rango específico, donde las celdas que no contienen nada ( =""
) tienen un valor 100 más que el número de fila correspondiente ( +100*
). Por otro lado, a las celdas que no cumplen la condición (es decir, celdas que no están en blanco) solo se les asignarán sus números de fila. Esta matriz se pasa a la SMALL
función B$15
como segundo argumento, lo que le indica que busque elkthelemento más pequeño de la matriz.
Entonces, queremos sumar las filas donde comienza la fila con el número de día, que es lo que hace esta parte:
1*(ROW($A$2:$A$13)>=SMALL(ROW($A$2:$A$13)+100*($A$2:$A$13=""),B$15))
Sin embargo, también queremos restringir el total hasta la celda directamente encima de la siguiente celda que no esté en blanco; por lo tanto, el <
operador y B$15+1
(es decir,(k+1)ésimoelemento más pequeño) en la siguiente parte:
1*(ROW($A$2:$A$13)<SMALL(ROW($A$2:$A$13)+100*($A$2:$A$13=""),B$15+1))