XL 2019 Countifs si les 4 premières lettres = "Toto"

  • Initiateur de la discussion Initiateur de la discussion carlos
  • Date de début Date de début

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 !

carlos

XLDnaute Impliqué
Supporter XLD
Bonjour,
Je ne comprends pas pourquoio cela ne marche pas.
Application.WorksheetFunction.CountIfs(Left(.Columns(1), 4), "Toto")
Un exemple :
TotoPlus 12
Tata 28
TotoMoins 6

Résultat attendu = 2
Bonne soirée
 
Bonjour Phil69970,
J'ai suivi le lien proposé mais ne trouve pas de reference à un comptage dune chaine de caractère chiffrée.
1718380304552.png

L'exemple ci dessus est interessant mais reste en texte. Ca ne marche pas avec des nombres.
Peut etre faut il transformer la colonne de chiffre en texte en amont?
Merci
 
La formule suivante ne fonctione pas :
Application.WorksheetFunction.CountIfs(Feuil4.Columns(1), "2325760????") donne 0
Colonne 1 :
232576045
232576177
232576079
132576033
Bonjour,
Elle fonctionnera à condition de sélectionner tous les éléments de la colonne 1 et de changer leur format en "Texte".
Sinon, par défaut, Excel les considère comme des nombres et ça ne marche pas.
C'est ce que se tuent à essayer de vous expliquer tous 😉les excellents contributeurs de ce post depuis le début !
 
Bonjour à tous,
La fonction NB.SI.ENS n'autorise pas les plages matricielles, si tu mets gauche(A1:A10). Si tu ne veux pas changer ta plage de nombre en texte comme déjà dit, il te faut passer par sommeprod, par exemple :
VB:
=SOMMEPROD(N(GAUCHE(A1:A10;3)="123"))
Cordialement
 
Hello,
Pour le fun une fonction personnalisée à base d'expressions régulières à mettre dans un module VBA .
VB:
Public Function CompterVal(plage As Range, str, _
       Optional CaseSensitive As Boolean = False, _
       Optional Debut As Boolean = False, _
       Optional Fin As Boolean = False) As Integer
Dim data, Regex As Object, matches As Object
CompterVal = 0
data = "|" & Join(Application.Transpose(plage.Value), "|") & "|"
Set Regex = CreateObject("VBScript.RegExp")
Regex.Pattern = str
Regex.Global = True
Regex.IgnoreCase = Not CaseSensitive
If Debut Then Regex.Pattern = "\|" & str
If Fin Then Regex.Pattern = str & "\|"
Set matches = Regex.Execute(data)
CompterVal = matches.Count
Set matches = Nothing: Set Regex = Nothing
End Function
plage correspond à la plage sur laquelle s'effectue le comptage (doit être une seule colonne)
CaseSensitive permet de dire si le comptage est sensible à la casse. (optionnel)
Debut permet de dire si la valeur recherchée doit être au début des cellules. (optionnel)
Fin permet de dire si la valeur recherchée doit être à la fin des cellules. (optionnel)

A noter que l'on exécute le regex qu'une seule fois par formule et que toutes les données à traiter sont rapatriées en une seule instruction sans boucle.

CompterVal.gif


Ami calmant, J.P
 
- 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

Réponses
2
Affichages
735
  • Question Question
XL pour MAC Calcul de notes.
Réponses
5
Affichages
635
Réponses
10
Affichages
369
Réponses
3
Affichages
248
Retour