Sumar varias filas en Excel

Sumar varias filas en Excel

Supongamos que tengo la siguiente tabla:

(aún no se pueden insertar imágenes)

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/MATCHpero no estoy muy seguro de cómo proceder.

Entiendo que la SUMIFfunció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:

(tampoco puedo insertar esto)

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 SUMIFSdeberí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 SMALLfunció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 SMALLfunción B$15como 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))

Respuesta2

Si puede separar las celdas de su Daycampo, de modo que el número del día aparezca en cada fila, aparecerá unTabla dinámicasería, con diferencia, la forma más sencilla de obtener el resultado que necesita:

Pivote

información relacionada