Résumé
Pour compter le nombre de caractères dans une cellule, il faut utiliser la fonction NBCAR ainsi que la fonction SUBSTITUE. Dans notre exemple, la formule en cellule D5 est :
=NBCAR(B5) - NBCAR( SUBSTITUE(B5;"-";"") )
Cette formule va renvoyer le nombre de fois où apparait un tiret ("-") dans notre cellule. Cette formule est pas sensible à la casse. Elle tient compte des majuscules et minuscules. Il existe alors une autre solution (présentée ci-après).
Formule Excel – Compter le nombre de caractères spécifiques dans une cellule
=NBCAR(cellule) - NBCAR( SUBSTITUE( cellule ; caractère ; "" ) )
Explications
Dans notre exemple, l’objectif est de compter le nombre de fois où apparait un caractère spécifique. L’un des moyens de faire cela est d’utiliser la fonction NBCAR et la fonction SUBSTITUE. L’astuce est de faire la différence entre le nombre de caractères totaux dans la cellule et le nombre de caractères totaux une fois le caractère supprimé (grâce à la fonction SUBSTITUE).
Fonction NBCAR
La fonction NBCAR permet de compter le nombre de caractères présents dans un texte ou dans une cellule. Elle va également compter les espaces. Voici quelques exemples de cette fonction :
=NBCAR( "test" )
--> Résultat: 4
= NBCAR(B8) // B8="AFM-AG"
--> Résultat: 6
Fonction SUBSTITUE
La fonction SUBSTITUE permet de substituer un caractère par un autre dans un texte. Sa syntaxe est la suivante :
= SUBSTITUE( texte ; ancien_texte ; nouveau_texte ; [no_position] )
Cette fonction possède 4 arguments :
texte– Texte dans lequel il faut remplacer le caractère ou la chaîne de caractères.ancien_texte– Caractère ou chaîne de caractères à remplacer.nouveau_texte– Valeur de remplacement.[no_position]– Argument optionnel (par défaut 1). Numéro d’occurrence du caractère à remplacer. Si non rempli, tous les caractères sont remplacés.
Par exemple, si nous voulons remplacer des tirets par des espaces nous aurons :
= SUBSTITUE( "AAA-258-256-156" ; "-" ; " " )
--> Résultat: "AAA 258 256 156"
Il est possible de détourner la fonction SUBSTITUE pour supprimer le caractère désiré. Il suffit de le remplacer par une valeur nulle ("") :
= SUBSTITUE( "AAA-258-256-156" ; "-" ; "" )
--> Résultat: "AAA258256156"
Fonction NBCAR + Fonction SUBSTITUE
Si nous combinons la fonction NBCAR et la fonction SUBSTITUE, nous pouvons compter le nombre de caractères totaux en ayant supprimé un caractère spécifique auparavant.
= NBCAR( SUBSTITUE( "AAA-258-256-156" ; "-" ; "" ) )
--> Résultat: 12
A l’origine, le nombre de caractères dans ce texte était de 15. Après avoir supprimé les 3 tirets, nous obtenons 12 caractères. La différence est le nombre de tirets dans notre texte. La formule complète est :
//B5="AAA-258-256-156"
= NBCAR(B8) - NBCAR( SUBSTITUE( B8 ; "-" ; "" ) )
= NBCAR("AAA-258-256-156") - NBCAR( SUBSTITUE( "AAA-258-256-156" ; "-" ; "" ) )
= NBCAR("AAA-258-256-156") - NBCAR( "AAA258256156" )
= 15 - 12
--> Résultat: 3
Cette formule permet de compter le nombre de caractères spécifiques dans une cellule (ici le tiret).
Formule non sensible à la casse
La formule présentée avant est sensible à la casse. C’est-à-dire qu’elle tiendra compte de la présence des majuscules et minuscules. Si nous reprenons notre exemple et que nous comptons le nombre de « a » :
//B5="AAA-258-256-156"
= NBCAR(B8) - NBCAR( SUBSTITUE( B8 ; "a" ; "" ) )
--> Résultat: 0
La formule indique que le texte ne contient pas de « a ». Pour compter un caractère peu importe qu’il soit en majuscule ou en minuscule, on va utiliser la fonction MINUSCULE. La formule sera :
//B5="AAA-258-256-156"
= NBCAR(B5) - NBCAR( SUBSTITUE( MINUSCULE(B5) ; "a" ; "" ) )
--> Résultat: 3
Il faudra indiquer le caractère recherché en minuscule. La fonction MINUSCULE va mettre tous les caractères en minuscules avant d’opérer le traitement vu précedemment.
Formules en lien
- Compléter avec des 0 à gauche
- Convertir texte en nombre
- Convertir nombre en texte
- Compter le nombre de cellules égales à un texte
- Compter le nombre de cellules contenant du texte
- Compter le nombre de cellules contenant une partie du texte (mot, caractère)
- Compter le nombre de cellules contenant un texte avec ou sans accent
- Si cellule contient un texte (sensible à la casse)
- Si cellule contient un texte
- Si cellule égale à (sensible à la casse)
- Convertir date en texte
- Extraire le texte après un caractère