En Excel, ¿cómo puedo sumar todos los números sobre la celda actual?

31

Quiero tener una columna en Excel que consista en un encabezado, un montón de números, y luego tener la suma de esos números en la parte inferior. Me gustaría que la suma se adapte a la inserción de nuevos números por encima del total. Algo como esto:

Numbers
 1
 2
 5
10

18        Total

Si luego inserto 10 números nuevos en el medio de la lista, quiero que la suma los incluya automáticamente.

Sé que la SUM()función puede sumar una columna completa, pero si el total también está en esa columna, se queja de una referencia circular. ¿Cómo puedo sumar los números por encima del total?

Mark Meuer
fuente

Respuestas:

51

Las funciones ROW()y COLUMN()darán la fila y columna de la celda actual. Úselos en la ADDRESS()función para crear una cadena que represente el rango desde la parte superior de la columna actual hasta la fila sobre el total. Luego use la INDIRECT()función para convertir esa cadena en un rango real para dar a la SUM()función. La fórmula para la celda total sería entonces:

=SUM(INDIRECT(ADDRESS(1,COLUMN())&":"&ADDRESS(ROW()-1,COLUMN())))

Ponga eso en cualquier celda en una hoja de cálculo y producirá la suma de todos los números en la columna sobre esa celda.

Mark Meuer
fuente
1
@ user370646 En realidad, acabo de probarlo con Excel 2010 usando varios tipos diferentes de fórmulas en diferentes celdas que se agregaron y funcionó correctamente. (Falla con un error de referencia circular si las celdas que se agregan contienen una fórmula que hace referencia a la celda con la suma). ¿Tiene ejemplos específicos?
Mark Meuer el
1
+1 veces un millón. Esto funciona en las Hojas de cálculo de Google, donde los rangos de funciones de suma -NO- se actualizan automáticamente. Muchas gracias.
seekerOfKnowledge
1
Acabo de probar en Google Sheets y la combinación de funciones funciona perfectamente.
Dom
1
¡Esta respuesta me salvó la vida!
kRazzy R
1
Parece que también funciona en LibreOffice Calc.
Dejan
6

En realidad, puedes hacer lo que quieras con simple =SUM()

Asumiendo que su hoja de Excel tiene el siguiente diseño:

\|  A  |  B  |
-+-----+-----+
1|  1  |     |
2|  2  |     |
3|  3  |     |
4|  4  |     |
5|  5  |     |
6|     |     |
7|  15 |Total|

Assumng A7es =SUM(A1:A5), puede agregar más filas a su gusto, como Excel ampliará los =SUM's varían en consecuencia.

Supongamos ahora que selecciono las filas 2, 3 y 4, e inserto filas. El resultado será el siguiente:

 \|  A  |  B  |
--+-----+-----+
 1|  1  |     |
 2|     |     |
 3|     |     |
 4|     |     |
 5|  2  |     |
 6|  3  |     |
 7|  4  |     |
 8|  5  |     |
 9|     |     |
10|  15 |Total|

A10es igual =SUM(A1:A8). Como tal, ahora puede insertar nuevos números a voluntad.

Doktoro Reichard
fuente
1
Ahora que lo deletreas, supe de este comportamiento. Pero por alguna razón, estaba pensando que sería útil tener una fórmula que siempre se sume justo por encima de la celda actual. Pero obviamente es más fácil crear el rango de suma simple que la fórmula compleja que se me ocurrió. Yo era demasiado inteligente a la mitad. ¡Gracias! (Tendré que consolarme de que al menos aprendí sobre INDIRECTO y DIRECCIÓN, que no había usado antes.)
Mark Meuer
2
He cambiado la respuesta aceptada a la que publiqué, ya que esa sigue recibiendo votos positivos más de un año después, cumple con el trabajo que hice en la pregunta y aparentemente funciona en las hojas de cálculo de Google donde esta respuesta no. Pero, @Doktoro, su respuesta proporcionó una visión muy útil y estoy agradecido por ello.
Mark Meuer
1
Hay un defecto: inserte una fila al final (antes de la fila vacía). Al menos en LibreOffice, esto dejará la fórmula SUMA con su rango original, es decir, omitirá la nueva fila. Mi solución: SUM(OFFSET(A$1; 0; 0; ROW(A7)-ROW(A$1); 1)). Debido a que se refiere a sí mismo y no a una fila de arriba, siempre ajustará el rango correctamente.
Tilman Vogel
¡El @TilmanVogel debería ser una respuesta! Muchas gracias
Genarito
5

Esta respuesta es específica de Libra Office, pero también debería funcionar para Excel.

Básicamente, si queremos mencionar explícitamente la fila / columna que se congelará, debemos mencionar $ con esa fila / columna.

* También hay un algo incorporado que cuando copia la fórmula a otras celdas, Libra Office determinará automáticamente cómo debe cambiar los valores de la fórmula.

Entonces, supongamos que tiene que agregar todas las filas G1: GN => donde N es el número de fila actual. Para esto, desea corregir la fila del primer valor y mantener otros valores como. Entonces la fórmula será:

= SUMA (G $ 1: G1) -> para la primera fila y luego puede copiar y pegar la fórmula en otras celdas.

Libra Office mantendrá automáticamente G1 como primer valor y cambiará dinámicamente el segundo valor a G2, G3, etc. para cada celda.

Prateek
fuente
Según la respuesta de Apostolos55> = Suma ($ A1: A1) <, no funcionaría, ya que solo la columna A se corregirá, mientras que la Fila aún variará cuando la fórmula se copie a otras celdas en la misma columna. Entonces, el $ debe agregarse antes de la Fila para obtener los valores correctos en la fórmula. Además, no explicaba qué pueden ser otras combinaciones, así que proporcioné la alternativa. El $ debe aplicarse tanto en la fila como en la columna si la celda debe mantenerse constante.
Prateek el
3

ok, Indirect () es volátil ... así que a medida que tu hoja crezca, solo se volverá más lenta. Si te satisface, será mejor que uses:

=Sum($A1:A1)

cuando arrastre esta fórmula hacia abajo, siempre tendrá un rango desde A1 hasta la celda actual (o anterior, etc.). ¡No volátil, muy rápido, mucho más simple!

Apostolos55
fuente
Gracias por la respuesta. Por favor, ayúdame a entender, ¿en qué se diferencia tu respuesta de la de @Doktoro Reichard?
Mark Meuer
Esta es la suma que puede "seguir" junto a sus celdas, digamos en la siguiente columna. Luego, con un IF solo puede mostrar / calcular la última suma. Probablemente no sea lo que estás buscando, pero es bueno saberlo.
Apostolos55
Gracias por la información. Tiene razón en que no resuelve el problema de la pregunta original (que busca específicamente una fórmula para sumar el número sobre la celda) pero puede ser útil en otras situaciones.
Mark Meuer