No Excel, como posso somar todos os números acima da célula atual?

29

Eu quero ter uma coluna no Excel que consiste em um cabeçalho, um monte de números e, em seguida, ter a soma desses números na parte inferior. Eu gostaria que a soma se adaptasse à inserção de novos números acima do total. Algo parecido com isto:

Numbers
 1
 2
 5
10

18        Total

Se mais tarde eu inserir 10 novos números no meio da lista, quero que a soma os inclua automaticamente.

Eu sei que a função SUM() pode somar uma coluna inteira, mas se o total também estiver nessa coluna, ela reclama de uma referência circular. Como posso somar os números acima do total?

    
por Mark Meuer 18.10.2013 / 17:04

4 respostas

44

As funções ROW() e COLUMN() fornecerão a linha e a coluna da célula atual. Use-os na função ADDRESS() para criar uma string representando o intervalo do topo da coluna atual até a linha acima do total. Em seguida, use a função INDIRECT() para transformar essa sequência em um intervalo real para fornecer à função SUM() . A fórmula para a célula total seria então:

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

Coloque isso em qualquer célula de uma planilha e ele produzirá a soma de todos os números na coluna acima daquela célula.

    
por 18.10.2013 / 17:04
6

Na verdade, você pode fazer o que quiser com =SUM()

Supondo que sua planilha do Excel tenha o seguinte design:

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

Assumindo que A7 é =SUM(A1:A5) , você pode adicionar mais linhas como desejar, pois o Excel expandirá o intervalo de =SUM de acordo.

Suponha agora que eu selecione as linhas 2, 3 e 4, e insiro linhas. O resultado será o seguinte:

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

A10 é igual a =SUM(A1:A8) . Como tal, agora você pode inserir novos números à vontade.

    
por 18.10.2013 / 17:12
5

Esta resposta é específica do Libra Office, mas também deve funcionar para o Excel.

Basicamente, se quisermos mencionar explicitamente a linha / coluna a ser congelada, devemos mencionar o $ com essa linha / coluna.

* Também há um algo inerente tal que quando você copia a fórmula para outras células, o Libra Office irá determinar automaticamente como ela deve mudar os valores das fórmulas.

Então, vamos supor que você tenha que adicionar todas as linhas G1: GN = > onde N é o número da linha atual. Para isso, você deseja corrigir a linha do primeiro valor e manter outros valores como. Então a fórmula será:

=SUM(G$1:G1) -> for 1st row and then you can copy-paste the formula to other cells.

O Libra Office manterá automaticamente o G1 como primeiro valor e mudará dinamicamente o segundo valor para G2, G3 e assim por diante para cada célula.

    
por 21.01.2016 / 10:29
3

ok, Indireto () é volátil ... assim, à medida que sua planilha cresce, ela só fica mais lenta. Se for o melhor para você, é melhor usar:

=Sum($A1:A1)

quando você arrasta essa fórmula, sempre terá um intervalo de A1 até a célula atual (ou anterior, etc.). Não volátil, muito rápido, muito mais simples!

    
por 06.03.2015 / 10:24