In Excel come posso sommare tutti i numeri sopra la cella corrente?


31

Voglio avere una colonna in Excel che consiste in un'intestazione, un mucchio di numeri e quindi avere la somma di quei numeri in fondo. Vorrei che la somma si adattasse all'inserimento di nuovi numeri al di sopra del totale. Qualcosa come questo:

Numbers
 1
 2
 5
10

18        Total

Se successivamente inserisco 10 nuovi numeri in mezzo all'elenco, voglio che la somma li includa automaticamente.

So che la SUM()funzione può sommare un'intera colonna, ma se anche il totale si trova in quella colonna, allora si lamenta di un riferimento circolare. Come posso semplicemente sommare i numeri sopra il totale?

Risposte:


51

Le funzioni ROW()e COLUMN()forniranno la riga e la colonna della cella corrente. Usali nella ADDRESS()funzione per creare una stringa che rappresenti l'intervallo dalla cima della colonna corrente alla riga sopra il totale. Quindi utilizzare la INDIRECT()funzione per trasformare quella stringa in un intervallo reale da assegnare alla SUM()funzione. La formula per la cella totale sarebbe quindi:

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

Inseriscilo in qualsiasi cella di un foglio di calcolo e produrrà la somma di tutti i numeri nella colonna sopra quella cella.


1
@ user370646 In realtà, l'ho appena testato con Excel 2010 utilizzando diversi tipi di formule in diverse celle aggiunte e ha funzionato correttamente. (Non riesce con un errore di riferimento circolare se le celle che vengono aggiunte contengono una formula che fa riferimento alla cella con la somma.) Hai esempi specifici?
Mark Meuer,

1
+1 volte un milione. Funziona in Fogli Google in cui gli intervalli di funzioni somma -DON'T- vengono automaticamente aggiornati. Grazie mille.
seekerOfKnowledge,

1
Ho appena testato su Fogli Google e la combinazione di funzioni funziona perfettamente.
Dom

1
Questa risposta mi ha salvato la vita!
kRazzy R,

1
Sembra funzionare anche in LibreOffice Calc.
Dejan,

6

In realtà, puoi fare quello che vuoi con la semplicità =SUM()

Supponendo che il tuo foglio Excel abbia il seguente design:

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

Assumng A7è =SUM(A1:A5), è possibile aggiungere più righe come ti pare, come Excel si espanderà le =SUM's variano di conseguenza.

Supponiamo ora di selezionare le righe 2, 3 e 4 e di inserire le righe. Il risultato sarà il seguente:

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

A10uguale =SUM(A1:A8). Pertanto, ora puoi inserire nuovi numeri a piacimento.


1
Ora che lo hai spiegato, conoscevo questo comportamento. Ma per qualche ragione stavo pensando che sarebbe utile avere solo una formula che si sommerebbe sempre appena sopra la cella corrente. Ma è ovviamente più facile creare l'intervallo di somma semplice rispetto alla formula complessa che ho creato. Ero troppo intelligente della metà. Grazie! (Dovrò consolarmi che almeno ho imparato a conoscere INDIRETTO e INDIRIZZO, che non avevo mai usato prima.)
Mark Meuer,

2
Ho cambiato la risposta accettata a quella che ho pubblicato in quanto si continua a ottenere voti oltre un anno dopo, fa il lavoro che ho posto nella domanda e apparentemente funziona nei fogli di calcolo di Google dove questa risposta non lo fa. Ma, @Doktoro, la tua risposta ha fornito informazioni molto utili e te ne sono grato.
Mark Meuer,

1
C'è un difetto: inserire una riga alla fine (prima della riga vuota). Almeno in LibreOffice, questo lascerà la formula SUM con la sua gamma originale, ovvero omettendo la nuova riga. La mia soluzione: SUM(OFFSET(A$1; 0; 0; ROW(A7)-ROW(A$1); 1)). Poiché fa riferimento a se stesso e non a una riga sopra, regola sempre correttamente l'intervallo.
Tilman Vogel,

Lo shoud di @TilmanVogel è una risposta! Grazie mille
Genarito

5

Questa risposta è specifica per Bilancia Office ma dovrebbe funzionare anche per Excel.

Fondamentalmente, se vogliamo menzionare esplicitamente la riga / colonna da congelare, dovremmo menzionare $ con quella riga / colonna.

* Esiste anche un algoritmo integrato tale che quando copi la formula in altre celle, Libra Office determinerà automaticamente come modificare i valori della formula.

Quindi, supponiamo che tu debba aggiungere tutte le righe G1: GN => dove N è il numero di riga corrente. Per questo si desidera correggere la riga del primo valore e mantenere altri valori come. Quindi la formula sarà:

= SOMMA (G $ 1: G1) -> per la 1a riga e quindi puoi copiare e incollare la formula in altre celle.

Libra Office manterrà automaticamente G1 come primo valore e cambierà dinamicamente il 2o valore in G2, G3 e così via per ogni cella.


Secondo la risposta di Apostolos55> = Sum ($ A1: A1) <, non funzionerebbe poiché verrà fissata solo la colonna A mentre Row continuerà a variare quando la formula viene copiata in altre celle nella stessa colonna. Quindi, $ dovrebbe essere aggiunto prima della riga per ottenere i valori corretti nella formula. Inoltre, non ha spiegato quali possono essere altre combinazioni, quindi ho fornito l'alternativa. $ Deve essere applicato sia su riga che su colonna se la cella deve essere mantenuta costante.
Prateek,

3

ok, Indirect () è volatile ... quindi man mano che il foglio diventa più grande, diventerà solo più lento. Se ti piace, è meglio usare:

=Sum($A1:A1)

quando trascini questa formula verso il basso, avrai sempre un intervallo da A1 fino alla cella corrente (o precedente ecc.). No volatile, molto veloce, molto più semplice!


Grazie per la risposta. Per favore, aiutami a capire, in che modo la tua risposta è diversa da quella di @Doktoro Reichard?
Mark Meuer,

Questa è la somma che può "seguire" a fianco delle tue celle, diciamo nella prossima colonna. Quindi con un IF puoi solo mostrare / calcolare l'ultima somma. Probabilmente non è quello che stai cercando, ma è buono a sapersi.
Apostolos55

Grazie per l'informazione. Hai ragione che non risolve il problema dalla domanda originale (che è specificamente alla ricerca di una formula per sommare il numero sopra la cella) ma può essere utile in altre situazioni.
Mark Meuer,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.