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

Statistiques des forums

Discussions
312 241
Messages
2 086 522
Membres
103 241
dernier inscrit
Peyo33