Respuestas:
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:
=IF(ISBLANK(A4),SUBTOTAL(9,OFFSET(B4,IFERROR(MATCH(0,$B$1:B3,-1),1)-ROW(),-1,ROW()-IFERROR(MATCH(0,$B$1:B3,-1),1),1)),"")
Este es mi original (alemán):
=WENN(ISTLEER(A4);TEILERGEBNIS(9;BEREICH.VERSCHIEBEN(B4;WENNFEHLER(VERGLEICH(0;$B$1:B3;-1);1)-ZEILE();-1;ZEILE()-WENNFEHLER(VERGLEICH(0;$B$1:B3;-1);1);1));"")
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.
37
en tu ejemplo Lo comprobaré de nuevo.