Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

compter le nombre de caractères dans une cellule

gaetanheudes

XLDnaute Nouveau
bonsoir,

J'ai la formule suivante dans une seule et même cellule :

2m 4m 0a 4a 0a 3m 1m 3m

Comment compter le nombre de lettres a et m ?

J'ai essayé la fonction nb.si mais celle-ci ne marche pas.

Cordialement
 

ROGER2327

XLDnaute Barbatruc
Re : compter le nombre de caractères dans une cellule

Bonsoir gaetanheudes
Une petite fonction personnalisée :
Code:
[COLOR=DarkSlateGray][B]Function compte(r, ParamArray lit() As Variant)
Application.Volatile
Dim i&, x&
  For i = 0 To UBound(lit)
    x = UBound(Split(r, lit(i)))
    compte = compte - x * (x > 0)
  Next i
End Function[/B][/COLOR]
Avec
2m 4m 0a 4a 0a 3m 1m 3m
en A2,
Code:
[B][COLOR=DarkSlateGray]=compte($A2;"m")[/COLOR][/B]
renvoie 5.
Code:
[B][COLOR=DarkSlateGray]=compte($A2;"a")[/COLOR][/B]
renvoie 3.
Code:
[B][COLOR=DarkSlateGray]=compte($A2;"a";"m")[/COLOR][/B]
renvoie 8.​
ROGER2327
#4660


Mercredi 4 Sable 138 (Sainte Barbe (femme à), femme-canon, SQ)
14 Frimaire An CCXIX
2010-W48-6T23:13:58Z
 

mth

XLDnaute Barbatruc
Re : compter le nombre de caractères dans une cellule

Bonsoir,

Un essai avec ces formules (matricielles à valider par CTRL MAJ ENTER):

Pour compter le nombre de a:
Code:
=SOMME(NBCAR(A1)-NBCAR(SUBSTITUE(A1;"a";"")))/NBCAR("a")

ou de m:
Code:
=SOMME(NBCAR(A2)-NBCAR(SUBSTITUE(A2;"m";"")))/NBCAR("m")

Si la cellule ne contient que des m ou des a (en plus des espace et des nombres) on peut essayer cette formule:
Code:
=SOMME(SI(NON(ESTNUM(STXT(SUBSTITUE(A3;" ";"");LIGNE(INDIRECT("1:"&NBCAR(SUBSTITUE(A3;" ";""))));1)*1));1))
elle consiste à ne compter que les caractères qui ne sont ni des espaces ni des nombres (sourire... c'est un peu de la triche mais ça marche ...)

Bonne soirée,

mth

Edit: Bonsoir Roger
 

ROGER2327

XLDnaute Barbatruc
Re : compter le nombre de caractères dans une cellule

Bonsoir mth, kjin
Variante :
Code:
[COLOR=DarkSlateGray][B]=SOMME((NBCAR($A2)-NBCAR(SUBSTITUE($A2;{"a"};"")))/NBCAR({"a"}))[/B][/COLOR]
ou simplement :
Code:
[COLOR=DarkSlateGray][B]=SOMME((NBCAR($A2)-NBCAR(SUBSTITUE($A2;"a";"")))/NBCAR("a"))[/B][/COLOR]
pour compter les "a".

Mais aussi :
Code:
[COLOR=DarkSlateGray][B]=SOMME((NBCAR($A2)-NBCAR(SUBSTITUE($A2;{"a";"m"};"")))/NBCAR({"a";"m"}))[/B][/COLOR]
pour compter les "a" et les "m", et même :
Code:
[COLOR=DarkSlateGray][B]=SOMME((NBCAR($A2)-NBCAR(SUBSTITUE($A2;{"a";"3m"};"")))/NBCAR({"a";"3m"}))[/B][/COLOR]
pour compter les "a" et les "3m".

Pas besoin de validation spéciale matricielle.

La fonction personnalisée proposée plus haut fait la même chose, la facilité de saisie en plus.
ROGER2327
#4661


Mercredi 4 Sable 138 (Sainte Barbe (femme à), femme-canon, SQ)
14 Frimaire An CCXIX
2010-W48-6T23:57:34Z
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…