Tengo datos en Excel que parece
10
15
12
3
2
5
3
Me gustaría devolver subtotales como
10
15
12
37
3
2
5
5
3
8
¿Hay alguna manera de lograr esto en Excel?
Tengo datos en Excel que parece
10
15
12
3
2
5
3
Me gustaría devolver subtotales como
10
15
12
37
3
2
5
5
3
8
¿Hay alguna manera de lograr esto en Excel?
Una alternativa que podría ser de alguna utilidad y posiblemente sea más versátil (también evita el "monstruo" en caso de que no sea fácil de recrear a mano) sería unir operaciones más familiares.
Asumiendo: ColumnA
es 'repuesto'; los valores están en ColumnB
; Row1
contiene una etiqueta, y C1
tiene algo dentro (diga 'Suma').
Requiere identificación de valor 'bloques', por lo que filtrar A:C
desmarcar (Blanks)
en B
, tecla decir "v" en A2
y copiar hacia abajo al último número de fila azul.
Seleccionar A1:C{last blue row number}
, elimine el filtro (si se requiere agrupación), subtotal con En cada cambio en: "(Columna A)", use la función: "Suma", agregue subtotal a: marque la casilla "Suma", OK
.
Eliminar filas en blanco (por ejemplo, mediante el filtrado ColumnA
), luego Eliminar ColumnA
.
Seleccionar ColumnB
, Encuentre qué: ‘, B’, Reemplace con: ‘, A’, haga clic en Replace All
.
El total general es una bonificación.
Se me ocurrió este monstruo, pero funciona bien, puedes copiarlo:
Este es mi original (alemán):
Entonces, cuando la celda en Col A está vacía, haga un subsum, sumando los valores de obove, hasta el último subsum o 1.
Si el foro no está claro, no dude en preguntar sobre detalles.
Editar
En código pseudo / explicado:
IF(ISBLANK(A4),SUBTOTAL(),"")
Si la celda de la fila actual en la columna A está vacía, calcule el subtotal, de lo contrario no muestre nada.
SUBTOTAL(9,RANGE)
Cree el subtotal usando la función de suma (9) para el RANGO dado
RANGE = OFFSET(B4,ROWS,COLS,HEIGHT,WIDTH)
El rango para el subtotal se crea compensando / abarcando un rango, en función de la celda B4.
En este ejemplo concreto de B4, esto sería como escribir:
OFFSET(B4,-3,-1,3,1)
Entonces, cree un rango, que es de 3 filas por encima de B4 (-3), y 1 col a la izquierda (-1), y es de 3 filas hacia abajo / alto y 1 col de ancho.
Para calcular -3 y 3, que diferirán según las filas entre dos celdas vacías en la columna A, usamos estos:
IFERROR(MATCH(0,$B$1:B3,-1),1)-ROW()
ROW()-IFERROR(MATCH(0,$B$1:B3,-1)
que son básicamente lo mismo, salvo el signo.
MATCH(0,$B$1:B3,-1)
busca por encima de 0 (-1 significa más grande) en la columna b, desde la primera celda hasta la anterior de la actual ($ B $ 1: B3)Debido a que esto resultará en un error para el primer subtotal, el
IFERROR
proporciona 1 para corregir esto.Entonces, cuando estás en B4, buscas si hay algún valor por encima de B4, asumiendo que esto es un subtotal, y si no puedes encontrar ninguno, entonces usas 1 como tu fila. 1-4 = -3; 4-1 = 3 hay que ir.
fuente
37
en tu ejemplo Lo comprobaré de nuevo.Una fórmula alternativa más corta que puedes probar:
Las líneas máximas para calcular se pueden aumentar al aumentar la "$ A $ 1000" Usando A2 como primera línea:
= IF (A2 = "", SUMA ($ A $ 1: $ A $ 1000) -UM (A3: $ A $ 1000) -UM ($ B $ 1: N2), "")
fuente
Se me ocurrió otra solución al mismo problema:
resuelto usando
=if(isblank(a2),H1+1,H1+0)
Fórmula en H2 y 1 en H1. Después usé subtítulos simples para obtener la solución.fuente