47 votes

Dans Excel, comment faire la somme de tous les nombres au-dessus de la cellule actuelle ?

Je souhaite avoir une colonne dans Excel qui se compose d'un en-tête, d'une série de nombres et de la somme de ces nombres en bas. J'aimerais que la somme s'adapte à l'insertion de nouveaux chiffres au-dessus du total. Quelque chose comme ceci :

Numbers
 1
 2
 5
10

18        Total

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

Je connais les SUM() peut additionner une colonne entière, mais si le total se trouve également dans cette colonne, elle se plaint d'une référence circulaire. Comment puis-je additionner les nombres au-dessus du total ?

78voto

stavros Points 11

Les fonctions ROW() y COLUMN() donne la ligne et la colonne de la cellule actuelle. Utilisez-les dans la fonction ADDRESS() pour créer une chaîne de caractères représentant la plage allant du haut de la colonne actuelle à la ligne au-dessus du total. Utilisez ensuite la fonction INDIRECT() pour transformer cette chaîne de caractères en une plage réelle à donner à la fonction SUM() fonction. La formule pour la cellule du total serait alors la suivante :

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

Placez ce chiffre dans n'importe quelle cellule d'un tableur et vous obtiendrez la somme de tous les chiffres de la colonne située au-dessus de cette cellule.

15voto

Alexey Points 11

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

En principe, si nous voulons mentionner explicitement la ligne/colonne à geler, nous devons mentionner le $ avec cette ligne/colonne.

*Il existe également un algo intégré qui fait que lorsque vous copiez la formule dans d'autres cellules, Libra Office détermine automatiquement comment il doit modifier les valeurs de la formule.

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

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

Libra Office conservera automatiquement G1 comme première valeur et changera dynamiquement la deuxième valeur en G2, G3 et ainsi de suite pour chaque cellule.

8voto

Doktoro Reichard Points 5220

En fait, on peut faire ce que l'on veut avec du simple =SUM()

Supposons que votre feuille Excel soit conçue de la manière 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 d'autres lignes à votre guise, car Excel élargira la fenêtre de la =SUM en conséquence.

Supposons maintenant que je sélectionne les lignes 2, 3 et 4, et que j'insère des lignes. 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 équivaut =SUM(A1:A8) . Ainsi, vous pouvez désormais insérer de nouveaux numéros à volonté.

5voto

gobbledygook88 Points 175

Ok, Indirect() est volatile... donc au fur et à mesure que votre feuille s'agrandit, cela ne fera que ralentir. Si cela vous dérange, vous feriez mieux d'utiliser :

=Sum($A1:A1)

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

Edition après 7 ans pour ajouter un petit morceau pour compléter des réponses peu orthodoxes et pas à 100% ! Utilisez la référence cyclique ! Donc vous ajoutez C1 à C5 à C6, puis vous écrivez simplement à c6 = sum(c$1:c6)-c6 appuyer sur la touche Entrée choisissez OK (à l'avertissement de la référence cyclique) aller dans fichier / options / formules / options de calcul cochez [calculs itératifs] fixer [itérations maximales] = 1 vous avez terminé !

++ si te suit quoi qu'il arrive... ++ tu peux utiliser des formules cycliques ! :D:D ---- si vous écrivez accidentellement une formule cyclique, vous n'en serez pas averti :(((

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X