tablas - ¿Cómo crear el total acumulado usando la tabla de Excel referencias estructuradas?
tablas en excel (8)
Creé mi total acumulado usando el Pivot de Excel:
- Suma de valores -> Suma de ...
- Mostrar valores como -> Total acumulado
Mis 2 centavos, 5 años de retraso (y tal vez me falta el punto).
Estoy buscando una manera de crear un total acumulado (total de la fila actual y superior) utilizando las referencias estructuradas de la tabla de Excel.
Sé cómo hacerlo usando la antigua forma basada en fila / columna:
=SUM($A$2:$A2)
Y sé cómo sumar una columna completa usando referencias estructuradas:
=SUM([WTaskUnits])
Y sé cómo obtener la celda actual usando [#ThisRow]
, pero no estoy seguro de cómo obtener la primera fila de la tabla para usarla en una SUM
.
En realidad, acabo de descubrir una forma de hacerlo utilizando INDEX, pero creo que debería haber una forma de referencia más estructurada. Sin embargo, para otros que buscan hacer esto aquí es lo que se me ocurrió:
=SUM(INDEX([WTaskUnits],1):[[#This Row],[WTaskUnits]])
Uso INDEX para obtener la primera celda de la columna (equivalente a $ A $ 2 en mi ejemplo de fila / columna) y uso [#Esta fila] normalmente para obtener la celda en la fila actual (equivalente a A2 en mi ejemplo de fila / columna) .
Me doy cuenta de que este es un tema antiguo, pero finalmente tengo una solución que me gustaría ofrecer.
=IF(ISNUMBER(OFFSET([@Balance],-1,0)),OFFSET([@Balance],-1,0)+[@Amount],[@Amount])
En la instancia de la primera fila de datos, el desplazamiento apunta al encabezado, que no es un número, por lo que el resultado es solo la columna Amount
.
Las filas restantes le dan el Balance
anterior de la OFFSET
más la cantidad actual de la fila.
No estoy seguro de lo que quieres decir con más estructurado, la forma en que lo haces está bien. También puede simplemente comenzar su rango en la celda debajo del encabezado de la tabla:
OFFSET([[#Headers],[WTaskUnits]],1,0,1,1):
Pero no lo llamaría más estructurado, simplemente diferente. No hay una referencia de tabla para un rango parcial de filas en las columnas, por lo que mi sugerencia sería seguir con lo que tienes.
Para una tabla de datos fija 1. vaya a la última celda de la columna en la que desea el subtotal en 2. subtotal la columna que contiene los datos y haga referencia absoluta a la primera fila 3.copie la fórmula hasta la primera fila
Tenga en cuenta que si usa = SUBTOTAL (109, ...) en lugar de = SUM (...), entonces su fórmula respetará los filtros en la tabla.
Usa la siguiente fórmula:
=SUM( INDEX([Values],1) : [@Values] )
Usamos ÍNDICE para devolver la primera celda en la columna Valores, y simplemente usamos la Referencia estructurada a la fila actual para devolver la segunda celda en el rango que queremos sumar.
=SUM(OFFSET([WTaskUnits],0,0,ROW()-ROW([[#Headers],[Running Total]])))
La tabla tiene dos columnas [WTaskUnits] y [Running Total]. La fórmula anterior suma el rango de celdas según lo solicitado.
Los primeros argumentos de la función de COMPENSACIÓN definen el punto de inicio de la suma. El cuarto término,
ROW()-ROW([[#Headers],[Running Total]]
es un modismo útil para el número de la fila actual en la tabla.