Comment compter des lettres a l'intérieur de cellules faisant parti d'une plages?

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

madtnt09

XLDnaute Junior
Bonjour et bonne année à tous santé et succès!

j'ai essayé avec la formule nb, nb.si et nb.si.ens. et ce sans succès avec la fonction droite mais le problème est que le résultat est toujours le total des cellules de la plages qui contiennent un seul caractère.

j'aimerais à l'intérieur de ma plage pouvoir additionner le total des "q" pour chaque cellule.
une seule ou plusieurs lettre peuvent être à l'intérieur de chaque cellule.

en attachement un exemple très simple.

J'ai fait d'autre calcule, mais toujours avec le même résultat

Merci de bien vouloir m'aider.
 

Pièces jointes

Re : Comment compter des lettres a l'intérieur de cellules faisant parti d'une plages

Bonjour @ tous,
Salut pierrejean 🙂,

Si tes cellules ne contiennent que les "q",
Code:
=SOMMEPROD(NBCAR(D4:I4))

Si tes cellules contiennent autres mots et lettres que "q",
Code:
=SOMMEPROD(NBCAR(D4:I4)-NBCAR(SUBSTITUE(D4:I4;"q";)))

@ + +
 
Re : Comment compter des lettres a l'intérieur de cellules faisant parti d'une plages

Merci 'a vous deux par contre si,

jintegre dautre lettre a linterieur de certaine cellule comme de "m" ou des "L" la formule serait tel differente.

C<est a dire que dans une cellule je peux avoir une combinaison comme qllmq est-ce que la formule comptera chacune des lettres separement.

donc:
=sommeprod(nbcar(d4:i4)-nbcar(substitute(d4:i4,"q",)))
la celluele adjacente:
=sommeprod(nbcar(d4:i4)-nbcar(substitute(d4:i4,"m",)))
La cellule adjacent:
=sommeprod(nbcar(d4:i4)-nbcar(substitute(d4:i4,"L",)))

Si j<ai bien compris!!
 
Re : Comment compter des lettres a l'intérieur de cellules faisant parti d'une plages

Bonjour à tous,

Pour compléter la solution de R@chid, on peut compter chaque lettre.

Formule matricielle en K4, à valider par Ctrl+Maj+Entrée :

Code:
=CAR(PETITE.VALEUR(SI(NB.SI(D$4:I$4;"*"&CAR(LIGNE($97:$122))&"*");LIGNE($97:$122));LIGNES($4:4)))
Formule normale en L4 :

Code:
=SOMMEPROD(NBCAR(D$4:I$4)-NBCAR(SUBSTITUE(MINUSCULE(D$4:I$4);K4;)))
Tirer K4:L4 vers le bas et s'arrêter quand on rencontre une valeur d'erreur.

NB.SI ignore la casse, il faut MINUSCULE dans la 2ème formule.

Fichier joint.

A+
 

Pièces jointes

Re : Comment compter des lettres a l'intérieur de cellules faisant parti d'une plages

Merci a vous tous la fonction de Rachid fonctionne tres bien.

Job75 merci une autre solution un peu plus complexe, mais tres utile merci.

Pierre jean je ne suis pas tout a fait familier avec VBA, mais j<ai compris lastuce derriere le raisonnement.
 
Re : Comment compter des lettres a l'intérieur de cellules faisant parti d'une plages

Bonjour madtnt09, pierrejean, R@chid,

Si l'on veut respecter la casse, le plus simple est de lister les lettres par cette fonction VBA :

Code:
Function Lettre$(r As Range, ordre)
Dim d As Object, i, a
Set d = CreateObject("Scripting.Dictionary")
For Each r In r
  For i = 1 To Len(r)
    d(Mid(r, i, 1)) = ""
  Next
Next
If ordre > d.Count Then Exit Function
a = d.keys
Call tri(a, 0, UBound(a))
Lettre = a(ordre - 1)
End Function

Sub tri(a, gauc, droi)          ' Quick sort
Dim ref, g, d, temp
ref = a((gauc + droi) \ 2)
g = gauc: d = droi
Do
    Do While a(g) < ref: g = g + 1: Loop
    Do While ref < a(d): d = d - 1: Loop
    If g <= d Then
      temp = a(g): a(g) = a(d): a(d) = temp
      g = g + 1: d = d - 1
    End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
Fichier joint.

A+
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

M
Réponses
10
Affichages
2 K
moostach
M
Retour