web-dev-qa-db-fra.com

Dans Excel, comment puis-je ajouter tous les nombres au-dessus de la cellule actuelle?

Je veux avoir une colonne dans Excel qui consiste en un en-tête, une série de nombres, puis la somme de ces nombres en bas. J'aimerais que la somme s'adapte à l'insertion de nouveaux numéros au-dessus du total. Quelque chose comme ça:

Numbers
 1
 2
 5
10

18        Total

Si par la suite j'insère 10 nouveaux numéros au milieu de la liste, je souhaite que la somme les inclue automatiquement.

Je sais que la fonction SUM() peut additionner une colonne entière, mais si le total est également dans cette colonne, elle se plaint d'une référence circulaire. Comment puis-je simplement additionner les nombres supérieurs au total?

29
Mark Meuer

Les fonctions ROW() et COLUMN() donneront la ligne et la colonne de la cellule en cours. Utilisez-les dans la fonction ADDRESS() pour créer une chaîne représentant la plage allant du haut de la colonne actuelle à la ligne située au-dessus du total. Utilisez ensuite la fonction INDIRECT() pour transformer cette chaîne en une plage réelle à attribuer à la fonction SUM(). La formule pour la cellule totale serait alors:

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

Mettez cela dans n'importe quelle cellule d'une feuille de calcul et cela produira la somme de tous les nombres de la colonne au-dessus de cette cellule.

49
Mark Meuer

En fait, vous pouvez faire ce que vous voulez avec =SUM() simple

En supposant que votre feuille de calcul Excel a la structure suivante:

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

Assumng A7 est =SUM(A1:A5), vous pouvez ajouter autant de lignes que vous le souhaitez, car Excel étendra la plage de =SUM en conséquence.

Supposons maintenant que je sélectionne les rangées 2, 3 et 4 et que je les insère. Le résultat sera le suivant:

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

A10 est égal à =SUM(A1:A8). En tant que tel, vous pouvez maintenant insérer de nouveaux numéros à volonté.

6
Doktoro Reichard

Cette réponse est spécifique à Libra Office mais devrait également fonctionner pour Excel.

Fondamentalement, si nous voulons mentionner explicitement la ligne/colonne à figer, nous devons mentionner le $ avec cette ligne/colonne.

* Il existe également un algorithme incorporé, de telle sorte que lorsque vous copiez la formule dans d'autres cellules, Libra Office détermine automatiquement le mode de modification des valeurs de la formule.

Supposons donc que vous deviez ajouter toutes les lignes G1: GN => où N est le numéro de la ligne en cours. Pour cela, vous voulez corriger la ligne de la première valeur et conserver les autres valeurs. La formule sera donc:

= SUM (G $ 1: G1) -> pour la 1ère ligne et vous pouvez ensuite copier-coller la formule dans d'autres cellules.

Libra Office conservera automatiquement G1 comme première valeur et modifiera de manière dynamique la deuxième valeur en G2, G3, etc. pour chaque cellule.

5
Prateek

ok, Indirect () est volatile ... ainsi, plus votre feuille grossit, plus elle ralentit. Si cela vous convient, vous feriez mieux d'utiliser:

=Sum($A1:A1)

lorsque vous faites glisser cette formule vers le bas, vous avez toujours une plage allant de A1 à la cellule actuelle (ou précédente, etc.). Non volatile, très rapide, beaucoup plus simple!

3
Apostolos55