Excel: cómo actualizar automáticamente la fórmula de suma cuando se agrega una columna manteniendo el mismo rango

Excel: cómo actualizar automáticamente la fórmula de suma cuando se agrega una columna manteniendo el mismo rango

Actualmente tengo un problema en Excel. Estoy tratando de encontrar la suma del costo anual y esta hoja de Excel se actualizará a medida que avance el mes. El problema es que podría sumar fácilmente el costo anual usando la función de suma, pero me gustaría que sucediera que cuando se actualiza una nueva columna (mes) y el costo en esa columna, todavía quiero calcular el costo anual.

Entonces, por ejemplo, un costo anual en este momento sería la suma de junio de 2022 a julio de 2021. y el próximo mes, sería de junio de 2022 a agosto de 2022. He visto la función de suma (indirecta), pero esto no parece para incluir el hecho de que tengo que eliminar la columna inicial de mi fórmula cuando se agrega una nueva columna.

La ayuda sería muy apreciada, gracias.

Respuesta1

Por lo general, cuando quiero que una suma incluya columnas que inserto más adelante, lo hago teniendo una columna vacía entre las columnas individuales que se van a sumar y la columna de suma, e incluyendo esta columna vacía en el rango SUMA. Luego, cuando inserto una columna a la izquierda de la columna vacía, la función SUMA incluirá la celda en esta nueva columna, ya que está dentro del rango.

Sin embargo, un enfoque más versátil, que también elimina la necesidad de esta columna vacía, es utilizar una fórmula como:

=SUM(A1:OFFSET(K1,0,-1))

Este ejemplo consiste en ingresar en la celda K1 para sumar el rango de A1 a J1. La OFFSETfunción funciona en la referencia de la celda en lugar del valor de la celda. OFFSET(cell, y, x)significa las yfilas de celdas debajo y xlas columnas a la derecha de cell.

Si desea que el inicio del rango de suma avance, puede usar la función OFFSET para esto también. Por ejemplo

=SUM(OFFSET(K1,0,-6):OFFSET(K1,0,-1))

le daría las seis columnas más recientes. No sé qué estás intentando hacer exactamente.

Respuesta2

Una fórmula como esta:

=SUM(INDIRECTO(CELDA("dirección",DESPLAZAMIENTO(A2,0,CONTARA(2A:ZZ2)-3))&":"&CELDA("dirección",DESPLAZAMIENTO(A2,0,CONTARA(A2:ZZ2)- 1))))

Primero contará el número de celdas con valores en A2:ZZ2.
(debido a que COUNTA(A2:ZZ2)eso también obliga a que el primer parámetro OFFSET() sea A2

CELL("address",OFFSET(A2,0,COUNTA(A2:ZZ2)-3))creará una cadena con la dirección de la celdaDOScolumnas a la izquierda de la última celda (con valor) del rango.( -3Está -1en el segundo OFFSET() para que encuentre el último valor)

... y eso hará que el texto formado por CELL(...) & ":" & CELL(...)cree un rango de celdas correspondiente a las últimas 3 celdas de esa fila.

INDIRECT()luego 'interpreta' ese texto de rango de celdas y se lo entrega a SUM(...), quien luego puede hacer el cálculo.

Nota: para obtener una fila COMPLETA -range; utilizar, por ejemplo, COUNTA(2:2)para la segunda fila.

Verificado en LibreOffice, debería funcionar en cualquier versión de SpreadSheet.
Muchas llamadas a funciones INDIRECT() pueden hacer que su hoja de cálculo sea lenta

información relacionada