Buenas tardes, necesito ayuda necesito sumar el total de cada ingrediente utilizado en una fórmula determinda.
Esta sección ya tiene dos filtros activos.
Agradecería ayuda.
Saludos.
Fecha | Hora | Peso | Código 1 | Código 2 | Fórmula | Lote | Ingrediente |
18/10/2016 | 04:47:00 | 75,2 | 0 | 20 | 25 | 3900 | 1 |
18/10/2016 | 04:48:00 | 59,2 | 0 | 20 | 25 | 3900 | 2 |
18/10/2016 | 04:48:00 | 20,4 | 0 | 20 | 25 | 3900 | 3 |
18/10/2016 | 04:50:00 | 119,4 | 0 | 20 | 25 | 3900 | 4 |
18/10/2016 | 04:50:00 | 42,8 | 0 | 20 | 25 | 3900 | 5 |
18/10/2016 | 04:52:00 | 75,1 | 0 | 20 | 25 | 3900 | 1 |
18/10/2016 | 04:53:00 | 59,3 | 0 | 20 | 25 | 3900 | 2 |
18/10/2016 | 04:53:00 | 20,4 | 0 | 20 | 25 | 3900 | 3 |
18/10/2016 | 04:55:00 | 119,4 | 0 | 20 | 25 | 3900 | 4 |
18/10/2016 | 04:55:00 | 37,3 | 0 | 20 | 25 | 3900 | 5 |
18/10/2016 | 04:56:00 | 75,2 | 0 | 20 | 25 | 3900 | 1 |
18/10/2016 | 04:56:00 | 59,4 | 0 | 20 | 25 | 3900 | 2 |
18/10/2016 | 04:56:00 | 20,2 | 0 | 20 | 25 | 3900 | 3 |
Entiendo que lo que quieres es sumar el peso de cada ingrediente. Colocando tu tabla empezando en A1, tendríamos el último valor de la columna de ingredientes en la fila 14. Se me ocurre hacerte en algún sitio una lista de los ingredientes y a su derecha el total de peso que hay.
A efectos del ejemplo, lo pondremos en la columna B16 hacia abajo (los ingredientes) y C16 hacia abajo (las sumas).
Para hacer una suma condicional, lo normal es utilizar SUMAR.SI
Sin embargo, tú quieres poder filtrar por determinadas columnas, y que te dé la suma de lo que se está viendo, y para eso viene a ayudarnos la fórmula SUBTOTALES. Pero esta función no filtra por criterios, por lo que vamos a hacer un hack para poder filtrar por criterio. Básicamente, lo que vamos a hacer es utilizar un valor TRUE/FALSE, que en Excel tienen valor 1/0, y multiplicar por él, de manera que si se cumple el criterio será verdadero y multiplicará por 1 (lo añadirá a la suma) mientras que si no se cumple, el valor será 0, se multiplicará por el valor y sumará 0. Esto lo haremos con una fórmula que trabaja con una matriz, que será el argumento de SUMAPRODUCTO.
Pasamos a la formulación:
Como dije, empezando por B17 ponemos los ingredientes (1, 2, 3, 4 y 5 en tu ejemplo)
En C17 ponemos esta fórmula:
=SUMAPRODUCTO(SUBTOTALES(9;DESREF($C$2;FILA($C$2:$C$14)-FILA($C$2);;1))*($H$2:$H$14=$B17))
No hace falta entrarla en forma matricial. Con escribirla así es suficiente.
Y esta fórmula la arrastramos hacia abajo para cubrir todos los ingredientes.
Adjunto ejemplo con tus datos. En la columna D he puesto la fórmula SUMAR.SI para comprobación. Si filtras la tabla por cualquier argumento verás como la fórmula en la columna C funciona correctamente, mientras que la de la columna D sigue sumando los datos ocultos.
Un saludo
Muchas gracias Cron por tu respuesta, la probé y me funciona bárbaro.
Pero te consulto por otro lado si no tengo un número determinado de filas la fórmula funciona igual?
Saludos
Si el número de filas es indeterminado, puedes cambiar la tabla como está por una tabla de excel, y cambiar las referencias por referencias a columnas de la tabla. De esta manera, cuando la tabla crezca, también lo hará la referencia a los datos.
Un saludo
Muchas gracias por tu aporte. Anduvo perfecto!
Saludos.
Te hago la última pregunta, si despues de hacer un filtro quiero tomar el dato de la primera fila que me queda de un dato como puedo replicarlo en otra hoja.
Por ejemplo si en la fila fórmula tuviera dos y cuando filtro los ingredientes de una pueda sacar de cual.
No se si se entiende.
Saludos.
Lo siento, la verdad es que no entiendo qué necesitas.
Si tengo estos datos en la tabla, colocando la formula que vos me diste obtengo cuando use de cada ingrediente, haciendo antes un filtro por fórmula.
Hasta ahí perfecto, como puedo hacer la obtener despúes de hacer el filtro por fórmula el valor de la primera celda para extraerlo.
Las fórmulas que me diste las puse en una hoja nueva y de esta forma saber cual fórmula corresponde los ingredientes calculados.
TE adjunto un archivo.
Saludos. Gracias
Después de darle un poco al coco y de buscar por internet, he encontrado la siguiente fórmula (adaptada a tu tabla):
=SI(SUMA((SUBTOTALES(3;DESREF(Tabla1[Peso];FILA(Tabla1[Peso])-MIN(FILA(Tabla1[Peso]));;1))))=FILAS(Tabla1[Peso]);$C$2;INDICE(Tabla1[Peso];COINCIDIR(1;SUBTOTALES(3;DESREF(Tabla1[Peso];FILA(Tabla1[Peso])-MIN(FILA(Tabla1[Peso]));;1));0)))
Cuando la copies, si pulsas ENTER te dará un error #N/A. Como es una fórmula matricial, para que funcione hay que introducirla pulsando CTRL+MAYS+ENTER. Entonces verás que se introduce toda la fórmula entre llaves {} y sí que te dará el resultado que buscas (que he entendido que es el primer valor de la columna "peso")
Un saludo
Muchas gracias la voy a probar.
Saludos.
Maestro que ayudasa que he tenido gracias
Gracais por el aporte.
Saludos
Me ha sido de mucha utilidad tu archivo! Gracias por compartir