En este grupo En todos

Foro de Excel



SUBTOTAL CON SUMAPRODUCTO

Escrito por Carolina Mendez
el 24/02/2008

Hola a todos,

Es posible hacer un subtotal con la funcion sumaproducto? De modo que al filtrar me calcule la sumaproducto solo de las celdas filtradas.

Muchas gracias

Armando Montes
Foro excel emagister
Escrito por Armando Montes
el 24/02/2008
Depende de que necesites exactamente, si colgaras una muestra del archivo y los resultados buscados recibiras una respuesta mas adecuada
Armando Montes
Foro excel emagister
Escrito por Armando Montes
el 24/02/2008
Este es uno de los muchos sitios para colgar archivos que puedes encontrar con google:
https://elblogdelosblogs.blogspot.com/2006/04/turbo-upload-archivos-word-excel-y_06. Html
Javi Boa Do R
Matemáticas puras santiago de compostela
Escrito por Javi Boa Do R
el 25/02/2008

Sí, se puede:

Normalmente, las funciones de Excel para resumir o contar datos en base a criterios trabajarían con la lista completa, pero Laurent Longre descubrió hace años una forma de usar la función DESREF que permite trabajar tan sólo con las filas visibles en cada momento en el rango filtrado.

Código Importe
001 20
002 40
002 60
003 80
004 100
004 120
004 140

Partiendo del ejemplo anterior, si por ejemplo se necesitara (siempre sobre las filas visibles):

  • sumar las celdas de la columna B cuyo valor fuera superior a 50, la fórmula sería:

          =SUMAPRODUCTO(B2:B15>50)*(SUBTOTALES(3;DESREF(A2:A15;FILA(A2:A15)-MIN(FILA(A2:A15));;1)))*B2:B15)

  • contar dichas celdas:

          =SUMAPRODUCTO(B2:B15>50)*(SUBTOTALES(3;DESREF(A2:A15;FILA(A2:A15)-MIN(FILA(A2:A15));;1))))

  • sumar las celdas visibles de la columna B:

          =SUMAPRODUCTO(SUBTOTALES(3;DESREF(A2:A15;FILA(A2:A15)-MIN(FILA(A2:A15));;1)))*B2:B15)

  • contar dichas celdas:

          =SUMAPRODUCTO(--(SUBTOTALES(3;DESREF(A2:A15;FILA(A2:A15)-MIN(FILA(A2:A15));;1))))

  • averiguar el valor filtrado:

           {=INDICE(A2:A15;COINCIDIR(1;SUBTOTALES(3;DESREF(A2:A15;FILA(A2:A15)-MIN(FILA(A2:A15));;1));0))}

  • averiguar el número de fila de la primera que cumple la condición activa:

           {=COINCIDIR(1;SUBTOTALES(3;DESREF(A2:A15;FILA(A2:A15)-MIN(FILA(A2:A15));;1));0)+1}

  • averiguar el número de fila de la última que cumple la condición activa:

           {=MAX(SUBTOTALES(3;DESREF(A2:A15;FILA(A2:A15)-MIN(FILA(A2:A15));;1))*FILA(A2:A15))}

Te lo cuentan en https://www.jrgc.es/funcvarias01. Htm en el apartado de título Contar y resumir datos filtrados

Salu2

Armando Montes
Foro excel emagister
Escrito por Armando Montes
el 25/02/2008
Magnifica aportacion Javi, sigue sorpendiendome la versatilidad de SUMAPRODUCTO
Escrito por Carolina Mendez
el 12/03/2008
Un millon de gracias
Armando Montes
Foro excel emagister
Escrito por Armando Montes
el 12/03/2008
Solucionado por Javi