Vous avez une liste de clients, de produits ou de réponses à un questionnaire, et vous voulez savoir combien de fois un même texte apparaît ? Pas besoin de recompter les lignes une à une : Excel sait le faire en quelques secondes. La fonction à connaître est NB.SI.
Dans ce guide, nous allons voir comment compter les cellules qui contiennent exactement un texte, comment rechercher une partie de texte et comment éviter les erreurs les plus fréquentes. De quoi gagner du temps… et épargner vos yeux.
Compter un texte avec NB.SI
La fonction NB.SI compte les cellules d’une plage qui répondent à un critère. Pour compter les cellules contenant un texte précis, sa syntaxe est la suivante :
=NB.SI(plage; critère)
Plage correspond aux cellules à examiner. Critère est le texte que vous cherchez, placé entre guillemets s’il est saisi directement dans la formule.
Imaginons que les réponses d’une enquête se trouvent dans les cellules A2 à A100. Pour compter le nombre de fois où la réponse « Oui » apparaît, saisissez :
=NB.SI(A2:A100;"Oui")
Excel compte alors les cellules dont le contenu correspond à « Oui ». La formule se met à jour si vous modifiez les réponses dans la plage. Elle ne compte pas les cellules vides ni les autres réponses, comme « Non » ou « Peut-être ».
Utiliser une cellule comme critère
Vous pouvez aussi placer le texte recherché dans une cellule. Par exemple, si D2 contient le mot « Paris », utilisez :
=NB.SI(A2:A100;D2)
Cette méthode est pratique lorsque vous souhaitez tester plusieurs textes sans modifier la formule. Remplacez simplement le contenu de D2 par une autre valeur : le résultat s’actualise automatiquement.
Pour créer un petit tableau de comptage, inscrivez les noms recherchés dans la colonne D, puis saisissez la formule en E2 :
=NB.SI($A$2:$A$100;D2)
Recopiez-la vers le bas pour compter chaque nom. Les signes $ maintiennent la plage A2:A100 en place pendant la recopie, tandis que la référence D2 devient D3, D4, et ainsi de suite. C’est une astuce toute simple qui évite de réparer une formule ligne après ligne.
Compter une partie d’un texte
Parfois, vous ne cherchez pas une cellule dont le contenu est exactement « Paris ». Vous voulez compter toutes celles qui mentionnent cette ville, même si elles contiennent aussi d’autres mots, comme « Paris centre » ou « Livraison à Paris ».
Pour rechercher un texte n’importe où dans une cellule, entourez-le du caractère * :
=NB.SI(A2:A100;"*Paris*")
Dans un critère, * représente une suite de caractères, quelle que soit sa longueur. La formule trouve donc les cellules contenant « Paris » au début, au milieu ou à la fin du texte. Elle peut aussi compter des expressions plus longues : essayez par exemple "*retard*" pour repérer les commentaires qui mentionnent un retard.
Le caractère ? représente, lui, un seul caractère. Il peut servir à rechercher une petite variation dans une valeur. Par exemple, le critère "D?vid" correspond à « David » ou « Dovid », mais pas à « Davyd » si la lettre qui suit le D ne correspond pas au motif attendu.
Vous pouvez associer ces caractères à un texte saisi dans une cellule. Si D2 contient « Paris », la formule suivante compte les cellules qui contiennent ce mot, où qu’il apparaisse :
=NB.SI(A2:A100;"*"&D2&"*")
Le symbole & assemble les différentes parties du critère : l’astérisque avant le contenu de D2, le texte de D2, puis l’astérisque après. Cette construction est particulièrement utile dans un tableau de suivi.
Majuscules, minuscules et espaces
Dans la plupart des cas, NB.SI ne distingue pas les majuscules des minuscules. Ainsi, les cellules contenant « Paris », « PARIS » ou « paris » sont comptées avec le critère « Paris ». Si la casse doit absolument être prise en compte, il faudra utiliser une formule plus élaborée, notamment avec SOMMEPROD et EXACT.
Les espaces, en revanche, peuvent expliquer un résultat inattendu. Une cellule contenant « Paris » et une autre contenant « Paris » suivi d’un espace ne sont pas toujours interprétées de la même manière lors d’une recherche exacte. Les espaces placés avant le texte peuvent également perturber le comptage.
Pour nettoyer une valeur située en A2, vous pouvez employer :
=SUPPRESPACE(A2)
Cette fonction retire les espaces superflus au début et à la fin du texte et réduit les séries d’espaces entre les mots. Pour nettoyer une colonne entière, créez une colonne temporaire avec la formule, recopiez-la, puis copiez les résultats et collez-les en tant que valeurs si vous souhaitez remplacer les données d’origine.
Compter plusieurs textes séparément ou ensemble
Pour compter plusieurs valeurs une par une, le plus simple est de créer une liste de critères dans une colonne et de recopier la formule NB.SI à côté. Vous obtenez ainsi un comptage distinct pour chaque catégorie.
Si vous voulez additionner les occurrences de plusieurs textes, vous pouvez additionner plusieurs fonctions :
=NB.SI(A2:A100;"Paris")+NB.SI(A2:A100;"Lyon")
Cette formule compte les cellules correspondant à « Paris » ou à « Lyon ». Elle convient si vous avez seulement quelques critères. Pour une liste plus longue, une petite table de critères et une formule adaptée seront plus faciles à maintenir qu’une formule interminable.
Attention : additionner deux fonctions NB.SI peut compter deux fois une cellule si vos critères se recoupent. C’est notamment possible avec des recherches contenant des astérisques. Vérifiez donc que vos critères sont bien distincts lorsque vous additionnez leurs résultats.
Compter les cellules qui ne sont pas égales à un texte
Le comptage peut aussi servir à repérer tout ce qui ne correspond pas à une valeur donnée. Pour compter les cellules de A2 à A100 qui ne contiennent pas exactement « Oui », utilisez :
=NB.SI(A2:A100;"<>Oui")
Le signe <> signifie « différent de ». Si votre objectif est d’exclure uniquement une valeur précise, cette formule est pratique. Gardez toutefois en tête qu’elle peut aussi compter les cellules vides selon la plage et le critère utilisés. Pour compter seulement les cellules non vides qui ne sont pas égales à « Oui », vous pouvez ajouter un second critère avec NB.SI.ENS :
=NB.SI.ENS(A2:A100;"<>Oui";A2:A100;"<>")
NB.SI.ENS permet d’appliquer plusieurs critères. Ici, la formule exclut à la fois « Oui » et les cellules vides.
Quand le comptage ne donne pas le résultat attendu
Si le résultat semble incorrect, commencez par vérifier ces points :
"Oui". En revanche, si le critère se trouve dans une cellule, indiquez simplement sa référence."Paris" recherche le texte exact, tandis que "*Paris*" cherche « Paris » dans n’importe quelle partie de la cellule.Un bon réflexe consiste à cliquer sur une cellule que vous pensez devoir être comptée et à examiner son contenu dans la barre de formule. Ce petit contrôle révèle souvent un espace ou un caractère inattendu.
Quel est le meilleur choix pour votre fichier ?
Pour compter un texte précis, commencez par NB.SI : c’est la solution la plus directe. Ajoutez des astérisques si vous cherchez le texte à l’intérieur d’une cellule, utilisez une référence de cellule pour rendre le critère modifiable, et passez à NB.SI.ENS lorsque plusieurs conditions sont nécessaires.
Par exemple, pour compter les lignes d’un suivi où la ville est « Bordeaux » et le statut « Livré », si les villes sont en A2:A100 et les statuts en B2:B100, saisissez :
=NB.SI.ENS(A2:A100;"Bordeaux";B2:B100;"Livré")
Vous pouvez ainsi compter les commandes livrées dans une ville donnée sans filtrer les données à la main. Une formule, deux critères, et votre tableau fait le travail pendant que vous vous occupez du reste.
La prochaine fois qu’une liste vous semble interminable, laissez donc Excel compter à votre place. Et si le nombre obtenu vous étonne, inspectez les espaces avant d’accuser la formule : elle est souvent plus innocente qu’elle en a l’air.
