Le cabinet ouvre prochainement. Guides et simulateurs sont déjà en libre accès —être informé de l’ouverture
Excel de zéro à héros · Épisode 23 sur 50

SOMME.SI.ENS et NB.SI.ENS : plusieurs critères pour construire une balance

Épisode 23 : cumuler selon plusieurs critères pour bâtir une balance par compte et par période : mouvements, cumuls, soldes et contrôle d’équilibre.

Publié le 6 min de lectureNiveau : IntermédiaireModule 4 : Chercher, additionner, rapprocherRédaction ExpertiseComptable.ma

En bref
  • SOMME.SI.ENS(plage_somme; plage1; critère1; plage2; critère2; …) cumule les lignes qui vérifient tous les critères : compte ET période, par exemple.
  • Attention à l’ordre des arguments : la plage à additionner vient en premier, contrairement à SOMME.SI.
  • Pour une période, deux critères sur la même colonne de dates : ">="&début et "<="&fin, avec les dates saisies dans des cellules de paramètres.
  • Une balance se contrôle toujours : total débit = total crédit, aussi bien pour la période que pour les cumuls.

La fonction SOMME.SI de l’épisode précédent porte un seul critère. Or une balance exige au moins deux dimensions : le compte et la période. Construire une balance générale à partir d’un journal d’écritures est le travail typique de SOMME.SI.ENS. Cet épisode en fait une balance complète, avec cumuls et contrôle d’équilibre.

Ce que vous saurez faire à la fin de l’épisode

  • écrire SOMME.SI.ENS et NB.SI.ENS avec plusieurs critères ;
  • borner une période avec deux critères sur une colonne de dates ;
  • piloter la balance avec des cellules de paramètres (du … au …) ;
  • distinguer les mouvements d’une période et les cumuls ;
  • contrôler l’équilibre débit/crédit.

La syntaxe

=SOMME.SI.ENS(plage_somme; plage_critère1; critère1; plage_critère2; critère2; …)     (anglais : SUMIFS)

L’ordre est inversé par rapport à SOMME.SI : la plage à additionner est le premier argument, suivie des paires plage de critère / critère. Toutes les plages doivent avoir la même taille. Les critères s’écrivent comme dans l’épisode 22 (valeurs, comparaisons, jokers, références de cellules). Les fonctions sœurs : NB.SI.ENS (nombre de lignes), MOYENNE.SI.ENS, MAX.SI.ENS et MIN.SI.ENS (Excel 2019 et suivants).

Le cas : janvier et février d’Atlas Négoce

Le journal compte 18 écritures, douze en janvier (on les connaît depuis l’épisode 9) et six en février : une vente de 8 000 HT au client (9 600 TTC, TVA de 1 600), et un achat de 4 000 HT (TVA récupérable 800, fournisseur 4 800). On veut la balance de février (mouvements du mois) et les cumuls à fin février.

Les paramètres sont saisis en I2 (début : 01/02/2026) et J2 (fin : 28/02/2026).

Balance de février construite avec SOMME.SI.ENS : mouvements de la période, solde de la période, cumuls au 28/02/2026 et totaux équilibrés de 58 900 Figure 1 : la balance. Repère 1 : formule des mouvements ; repère 2 : les dates de la période ; repère 3 : les totaux de contrôle.

Les mouvements de la période

Débit de la période, pour le compte en A2 :

=SOMME.SI.ENS(Journal!$C$2:$C$19;      ← plage à additionner : le débit
              Journal!$B$2:$B$19; A2;  ← compte égal à A2
              Journal!$A$2:$A$19; ">="&$I$2;   ← date postérieure ou égale au début
              Journal!$A$2:$A$19; "<="&$J$2)   ← date antérieure ou égale à la fin

Trois critères : le compte, la date de début, la date de fin. La colonne des dates est utilisée deux fois (une fois par borne). Le crédit s’écrit de la même façon avec la colonne D du journal. Le solde de la période est =B2-C2 (débit moins crédit).

Les cumuls à la fin de la période

Pour le cumul, on enlève la borne de début : tout ce qui est antérieur ou égal à la date de fin.

=SOMME.SI.ENS(Journal!$C$2:$C$19; Journal!$B$2:$B$19; A2; Journal!$A$2:$A$19; "<="&$J$2)

Le résultat

Compte Débit février Crédit février Solde février Cumul débit Cumul crédit Solde cumulé
3421 Clients 9 600,00 0,00 9 600,00 15 600,00 6 000,00 9 600,00
3455 TVA récupérable 800,00 0,00 800,00 2 800,00 0,00 2 800,00
4411 Fournisseurs 0,00 4 800,00 (4 800,00) 12 000,00 16 800,00 (4 800,00)
4455 TVA facturée 0,00 1 600,00 (1 600,00) 0,00 2 600,00 (2 600,00)
5141 Banques 0,00 0,00 0,00 6 000,00 20 500,00 (14 500,00)
6111 Achats 4 000,00 0,00 4 000,00 14 000,00 0,00 14 000,00
6131 Loyers 0,00 0,00 0,00 8 500,00 0,00 8 500,00
7111 Ventes 0,00 8 000,00 (8 000,00) 0,00 13 000,00 (13 000,00)
Totaux 14 400,00 14 400,00 0,00 58 900,00 58 900,00 0,00

Lecture : en février, les mouvements s’équilibrent à 14 400 au débit comme au crédit ; les cumuls à fin février s’équilibrent à 58 900, soit 44 500 (janvier) + 14 400 (février). Le compte banque n’a bougé qu’en janvier (6 000 reçus, 20 500 payés) et affiche un solde créditeur de 14 500 : sa position dépend du solde d’ouverture, qui n’est pas dans cet exemple.

Le compte de solde nul dans la colonne Solde février (5141, 6131) est une situation normale : aucun mouvement dans la période.

Le contrôle

La ligne des totaux est la preuve que la balance est juste : un journal équilibré (chaque écriture a un débit égal à son crédit) donne toujours une balance équilibrée, à condition que tous les comptes du journal figurent dans la liste de la balance. Si un compte manque (par exemple le 6199 saisi par erreur), la balance affiche un déséquilibre : c’est le signal de chercher. Un contrôle simple : comparer SOMME(B2:B9) avec SOMME.SI.ENS(Journal!C:C; dates…) sans critère de compte, ou avec le total du journal.

Le décompte NB.SI.ENS(Journal!$A$2:$A$19;">="&$I$2;Journal!$A$2:$A$19;"<="&$J$2) donne le nombre d’écritures de la période : 6 pour février, qui permet de vérifier qu’aucune ligne n’a échappé à la période.

Les comptes avec jokers

On peut cumuler par classe avec un joker : "6*" désigne tous les comptes qui commencent par 6.

=SOMME.SI.ENS(Journal!$C$2:$C$19; Journal!$B$2:$B$19; "6*")

Cette formule renvoie le total des charges (classe 6) : 14 000 + 8 500 = 22 500,00 au débit à fin février, soit 6111 et 6131. Le joker ne fonctionne que sur du texte : si les numéros de compte sont stockés en nombres, la formule ne trouve rien. C’est une des raisons pour lesquelles nos numéros de compte sont des textes depuis l’épisode 2.

Les pièges

  • Ordre des arguments : la plage à additionner d’abord. Un oubli donne une erreur ou un résultat bizarre.
  • Tailles de plages différentes : #VALEUR!. Les plages du journal doivent toutes aller de la ligne 2 à la ligne 19.
  • Plages qui ne suivent pas : quand le journal grandit, la plage $A$2:$A$19 ne couvre pas les nouvelles lignes. Solution : tableau Excel (tblJournal[Débit]) ou plages plus larges ($A$2:$A$5000).
  • Dates en texte : le critère ">="&$I$2 compare des nombres ; si les dates du journal sont du texte, aucune ne correspond.
  • Critère "<="&$J$2 avec une date sans heure : la date de fin est incluse. Une date avec heure poserait problème pour le dernier jour.
  • Comptes manquants dans la balance : signalés par un écart avec le journal.

À vous de jouer

Dans le classeur d’exercice :

  1. Complétez les colonnes B, C, E et F de la balance, puis les soldes et les totaux. Les totaux doivent être 14 400 et 58 900.
  2. Changez la période : du 01/01/2026 au 31/01/2026. Quels sont les totaux de la période ?
  3. Revenez à février. Ajoutez une ligne du journal : 12/02/2026, compte 6199, débit 500, crédit 0. Que devient la balance ? Que faut-il faire ?
  4. Écrivez la formule du total de la classe 7 (produits) à fin février avec le joker "7*".

Correction. Pour janvier, les totaux de période sont 44 500,00 au débit et 44 500,00 au crédit. À l’étape 3, le journal n’est plus équilibré (500 au débit sans contrepartie), et le compte 6199 n’étant pas dans la liste, la balance reste à 14 400 au débit et 14 400 au crédit pour février : elle ne voit pas les 500. La comparaison avec le total du journal révèle l’écart ; il faut ajouter 6199 à la balance et saisir la contrepartie de l’écriture. Pour la classe 7, =SOMME.SI.ENS(Journal!$D$2:$D$19;Journal!$B$2:$B$19;"7*";Journal!$A$2:$A$19;"<="&$J$2) donne 13 000,00 (5 000 + 8 000).

À retenir

  • SOMME.SI.ENS(plage_somme; plage1; critère1; plage2; critère2…) : tous les critères doivent être vrais.
  • Une période = deux critères sur la même colonne de dates, avec des dates dans des cellules de paramètres.
  • Mouvements de période (borne de début et de fin) ≠ cumuls (borne de fin seule).
  • La balance doit s’équilibrer ; sinon, un compte, une date ou un type est en défaut.
  • Les jokers ("6*") exigent des comptes en texte.

Épisode 24, dernier du module 4 : SOMMEPROD, pour les calculs pondérés que ni SOMME.SI ni SOMME.SI.ENS ne savent faire.

Questions fréquentes

Combien de critères peut-on mettre dans SOMME.SI.ENS ?

Jusqu’à 127 paires plage/critère. Toutes les plages doivent avoir exactement la même taille que la plage à additionner, sinon la fonction renvoie #VALEUR!.

Comment obtenir tous les comptes d’une classe (par exemple tous les comptes 6…) ?

Avec un joker : le critère "6*" additionne les comptes qui commencent par 6. Le joker ne fonctionne que sur du texte : si vos comptes sont des nombres, il ne trouve rien. C’est une raison de stocker les numéros de compte en texte.

Pourquoi ma balance ne tombe-t-elle pas à zéro ?

Causes fréquentes : un compte du journal absent de la liste de la balance, une date hors période, un montant stocké en texte, un doublon de ligne, ou une plage de somme qui n’inclut pas les dernières lignes. Comparez le total de la balance avec le total du journal.

SOMME.SI.ENS ralentit-elle un grand classeur ?

Sur plusieurs dizaines de milliers de lignes et plusieurs centaines de comptes, le temps de calcul reste raisonnable. Au-delà, ou avec de nombreux critères, un tableau croisé dynamique (épisode 25) ou Power Query est plus rapide.

Rédaction ExpertiseComptable.ma

Articles rédigés par l’équipe du cabinet à partir des textes officiels et de la pratique des missions. Chaque article indique sa date de publication et, le cas échéant, de dernière revue.

Partager :LinkedInFacebookWhatsApp

Articles connexes

Une question sur votre situation ?

Décrivez-nous votre projet : nous vous répondons sous 48 heures ouvrées avec une proposition de lettre de mission.