Aller au contenu principal

Qu'est-ce que la fonction SOUS.TOTAL ?

Définition
La fonction SOUS.TOTAL effectue un calcul (somme, moyenne, comptage, etc.) sur une plage de cellules en ignorant automatiquement les lignes masquées par un filtre.

SOUS.TOTAL (SUBTOTAL en anglais) t'évite de recalculer un total à la main à chaque changement de filtre, ou pire, de livrer un chiffre faux parce qu'une ligne masquée traîne encore dans le calcul. Tu la choisis dès qu'un tableau de bord doit rester juste quel que soit le filtre actif, sans jamais retoucher la formule.

Concrètement, c'est lui qui fait que ton tableau de bord affiche le CA de la région sélectionnée, que ta moyenne de factures se recalcule au fur et à mesure que tu filtres par statut, et que ton compteur de projets actifs reste juste sans jamais toucher à la formule. Fini les totaux faux parce qu'un filtre était actif.

Syntaxe

=SOUS.TOTAL(no_fonction; réf1; [réf2]; ...)

Clique sur un argument pour aller à son explication.

Les codes 1-11 ignorent les lignes filtrées mais incluent les lignes masquées manuellement. Les codes 101-111 ignorent toutes les lignes masquées, quelle que soit la méthode. Dans la pratique, préfère les codes 101-111.

Lucas, la mascotte du Dojo, inspecte les arguments de la fonction à la loupe

Comprendre chaque paramètre de la fonction SOUS.TOTAL

SOUS.TOTAL démarre par un argument que les autres fonctions de calcul n'ont pas : un code chiffré qui dit quel calcul faire (somme, moyenne, comptage…). Viennent ensuite les plages, la première étant obligatoire. Tu peux en empiler jusqu'à 253, mais c'est bien ce code en tête qui change tout le comportement de la formule.

1

no_fonction

: c'est le code qui détermine le type de calcul à effectuer

Tu as le choix entre 11 fonctions différentes, chacune disponible en deux versions.

Les codes 1-11 ignorent les lignes masquées par un filtre, mais incluent les lignes masquées manuellement (clic droit > Masquer). Les codes 101-111 ignorent toutes les lignes masquées, quelle que soit la méthode.

Codes les plus courants : 9 ou 109 = SOMME, 1 ou 101 = MOYENNE, 2 ou 102 = NB (compte les nombres), 3 ou 103 = NBVAL (compte les cellules non vides), 4 ou 104 = MAX, 5 ou 105 = MIN.

2

réf1

: c'est la première plage de cellules sur laquelle effectuer le calcul

Ça peut être une référence simple comme B2:B50 ou une colonne entière comme B:B. C'est le seul paramètre de plage obligatoire.

3

[réf2], [réf3], ...

: tu peux ajouter jusqu'à 253 plages supplémentaires(facultatif)

Pratique si tes données sont réparties dans plusieurs colonnes non adjacentes. Sépare chaque plage par un point-virgule.

Le savais-tu ?
Le premier argument est un code de fonction. Les codes 1 à 11 incluent les lignes masquées à la main, les codes 101 à 111 les ignorent. Le 9 et le 109 correspondent tous deux à la somme.
Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

Comment additionner les lignes filtrées avec la fonction SOUS.TOTAL

La revue de budget est lundi et ton chef veut voir les dépenses tantôt de tous les départements, tantôt d'un seul. Ton tableau liste chaque ligne de dépense avec son département, son responsable et son type, et il te faut un total qui suive le filtre au lieu de rester figé. La fonction SOUS.TOTAL calcule ce total sur les seules lignes affichées, là où la fonction SOMME additionnerait tout, filtre ou pas.

Les étapes
  1. 1
    Dans une cellule, écris =SOUS.TOTAL(.
  2. 2
    En 1er argument : saisis le code du calcul à faire, 9 pour une somme. C'est ce premier chiffre, absent des autres fonctions de calcul, qui décide de l'opération, et tu le remplaceras pour obtenir une moyenne ou un comptage.
  3. 3
    En 2ᵉ argument : sélectionne la plage à additionner, la colonne Dépenses en entier sans son en-tête, D2:D19. La fonction ne totalise que les lignes encore affichées, si bien que le résultat suit chaque filtre.
  4. 4
    Ferme la parenthèse et appuie sur Entrée.
Au final, ta formule devrait ressembler à ça :=SOUS.TOTAL(9; D2:D19)
Explication
La fonction additionne les 18 montants de la colonne Dépenses et affiche 628 000 €. C'est le code 9 en tête qui fait la différence : dès que tu filtres le tableau sur un département, le total se refait sur les seules lignes encore affichées, sans que tu retouches quoi que ce soit.
Exemple 2

Comment calculer la moyenne des lignes visibles avec la fonction SOUS.TOTAL

Un client conteste sa facture et tu veux savoir, avant de le rappeler, à combien tourne le montant moyen de celles qui sont déjà réglées. Tes factures sont listées avec leur client, leur statut et leur montant, et tu veux une moyenne qui se recalcule selon le statut affiché. La fonction SOUS.TOTAL propose onze calculs différents, et tu passes de l'un à l'autre en changeant un seul chiffre.

Les étapes
  1. 1
    Dans une cellule, écris =SOUS.TOTAL(.
  2. 2
    En 1er argument : saisis le code du calcul, 1 pour une moyenne là où 9 demandait une somme. C'est le seul argument à changer pour passer d'un calcul à l'autre, 2 comptant les nombres et 4 sortant le maximum.
  3. 3
    En 2ᵉ argument : sélectionne la plage à analyser, la colonne Montant, D2:D7. La fonction fait la moyenne des seuls montants encore visibles et repart d'un calcul neuf à chaque changement de filtre.
  4. 4
    Ferme la parenthèse et appuie sur Entrée.
Voici la formule que tu obtiens à la fin :=SOUS.TOTAL(1; D2:D7)
Explication
Le code 1 demande une moyenne. Sans filtre, la fonction divise les 12 000 € du tableau par 6 factures et affiche 2 000 €. Filtre sur le statut « Payée » et le calcul repart sur les 4 factures restantes (1 900 €), alors que la fonction MOYENNE resterait bloquée à 2 000 €.
Exemple 3

Comment ignorer les lignes masquées à la main avec la fonction SOUS.TOTAL

Ton reporting part dans l'heure et tu as masqué une ligne que ton chef n'a pas à voir dans cette version. Ton tableau donne le chiffre d'affaires par région et par commercial, et le total du bas doit refléter ce qui reste à l'écran, pas ce qui dort encore dans le fichier. La fonction SOUS.TOTAL propose chaque calcul en deux versions, et seule la seconde tient compte des lignes que tu masques toi-même.

Les étapes
  1. 1
    Dans une cellule, écris =SOUS.TOTAL(.
  2. 2
    En 1er argument : saisis le code du calcul, 109 plutôt que 9. Les deux lancent une somme, mais la version à trois chiffres ignore aussi les lignes masquées à la main, pas seulement celles qu'un filtre écarte.
  3. 3
    En 2ᵉ argument : sélectionne la plage à additionner, la colonne CA, C2:C7. Chaque code de la famille 1-11 a son jumeau en 101-111, si bien que 1 devient 101 pour la moyenne et 3 devient 103 pour le comptage.
  4. 4
    Ferme la parenthèse et appuie sur Entrée.
Une fois les morceaux assemblés, ta formule donne ça :=SOUS.TOTAL(109; C2:C7)
Explication
Ici, la fonction additionne les six lignes et affiche 560 000 €. Masque la ligne Ouest d'un clic droit sur son numéro et le total tombe à 473 000 €, parce que le code 109 écarte aussi les lignes cachées à la main. Avec 9, le même geste laisserait 560 000 € à l'écran sans que personne comprenne pourquoi.
Exemple 4

Comment cumuler des sous-totaux sans double comptage avec la fonction SOUS.TOTAL

Ton budget est découpé par département avec un sous-total sous chaque bloc, et il te faut le total général avant l'arbitrage de vendredi. Chaque poste a son montant, chaque département son sous-total, et tu veux additionner la colonne entière sans compter deux fois ce qui est déjà cumulé. La fonction SOUS.TOTAL reconnaît ses propres résultats dans la plage et les saute toute seule, là où la fonction SOMME les additionnerait comme n'importe quel montant.

Les étapes
  1. 1
    Dans une cellule, écris =SOUS.TOTAL(.
  2. 2
    En 1er argument : saisis le code du calcul, 9 pour une somme ordinaire. C'est la fonction elle-même qui se charge d'écarter les sous-totaux déjà présents dans la plage.
  3. 3
    En 2ᵉ argument : sélectionne toute la colonne Montant, lignes de sous-totaux comprises, C2:C7. La fonction saute les cellules qui contiennent déjà un SOUS.TOTAL, à condition que tes sous-totaux soient écrits avec elle et non avec la fonction SOMME.
  4. 4
    Ferme la parenthèse et appuie sur Entrée.
En mettant tout bout à bout, tu écris :=SOUS.TOTAL(9; C2:C7)
Explication
La plage C2:C7 compte six cellules, mais la fonction n'en additionne que quatre : elle repère les deux lignes de sous-totaux, écrites elles aussi avec SOUS.TOTAL, et les saute pour ne pas compter deux fois les mêmes montants. La fonction SOMME, elle, avalerait tout et afficherait 152 000 € au lieu de 76 000 €.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

Les erreurs fréquentes avec la fonction SOUS.TOTAL

Avec SOUS.TOTAL, les soucis viennent rarement de la syntaxe et presque toujours du code de fonction. Le piège classique : choisir un code 1-11 alors que tu attendais un 101-111, si bien que les lignes masquées à la main continuent d'être comptées et que ton total ne colle pas à l'écran. Et si tu tapes un code qui n'existe pas (15, 200…), Excel renvoie #VALEUR!.

Confusion entre codes 1-11 et 101-111 : lignes masquées incluses

Les codes 1-11 ignorent les lignes filtrées mais comptent quand même les lignes masquées manuellement. Résultat : des totaux qui ne correspondent pas à ce qui est visible à l'écran.

Solution : Prends l'habitude d'utiliser systématiquement les codes 101-111. Ils ignorent toutes les lignes masquées et évitent toute ambiguïté. Utilise 109 pour SOMME, 101 pour MOYENNE, 102 pour NB, 104 pour MAX, 105 pour MIN.

Erreur #VALEUR! avec un code de fonction inexistant

Si tu utilises un code qui n'existe pas (comme 15 ou 200), Excel retourne #VALEUR!. Les seuls codes valides sont 1-11 et 101-111.

Solution : Mémorise les codes les plus courants : 109 = SOMME, 101 = MOYENNE, 102 = NB, 104 = MAX, 105 = MIN. Si tu as un doute, consulte l'aide Excel ou utilise la saisie semi-automatique qui propose les codes disponibles.

Utiliser SOUS.TOTAL sur un tableau sans filtre : formule inutilement complexe

Certains utilisent SOUS.TOTAL partout "au cas où", même sur des tableaux qui ne seront jamais filtrés. Résultat : des formules plus complexes à lire sans aucun bénéfice.

Solution : Réserve SOUS.TOTAL aux tableaux où tu appliqueras des filtres ou masqueras des lignes. Pour les tableaux statiques, SOMME, MOYENNE, NB sont plus simples, plus lisibles et tout aussi fiables.

Lucas, la mascotte du Dojo, compare deux fonctions Excel

SOUS.TOTAL vs SOMME vs AGREGAT vs NB

Prends SOUS.TOTAL dès qu'un tableau est filtré et que tu veux le total des lignes visibles, surtout s'il contient déjà des sous-totaux qu'il faut éviter de compter deux fois. Si rien n'est jamais filtré, SOMME et NB restent plus lisibles. Et le jour où tes données contiennent des #N/A ou des #VALEUR! à ignorer, c'est AGREGAT qu'il te faut : c'est la seule des quatre à gérer les erreurs.

CritèreSOUS.TOTALSOMMEAGREGATNB
Respecte les filtres✅ Oui❌ Non✅ Oui❌ Non
Ignore autres sous-totaux✅ Oui❌ Non❌ Non❌ Non
Gère les erreurs❌ Non❌ Non✅ Oui❌ Non
Nombre de fonctions11 fonctions1 seule19 fonctions1 seule
Facilité d'utilisation⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Cas d'usage principalTableaux filtrésAdditions simplesCalculs avancésComptages simples
Le conseil du pro
Contrairement à SOMME, SOUS.TOTAL ignore les lignes cachées par un filtre. Place un SOUS.TOTAL(9; plage) sous un tableau filtré et le total suit tout seul ce qui reste affiché.
FAQ

Questions fréquentes

SOUS.TOTAL est intelligent : il ignore automatiquement les lignes masquées par un filtre. Si tu filtres ton tableau de ventes par région, SOUS.TOTAL recalcule le total uniquement pour les lignes visibles. SOMME, lui, additionne toujours tout, même ce qui est caché.

Ressources

Pour aller plus loin

Continue sur ta lancée après la fonction SOUS.TOTAL : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.

Tout voir