Compter nombre d'occurrence d'un mot avec des cellules à plusieurs lignes

Hello !

J'ai cherché un peu partout sans trouver la réponse à ma question.

Je souhaite compter le nombre d'occurrence d'un mot dans plusieurs cellules où ces dernières ont plusieurs lignes de texte. Exemple :

projet de test

projet de test

projet de test

test de test

dev de test

projet de test

Si j'utilise :

=NB.SI(A1:A2;"projet")

ça ne me donnera en résultat que "1" car ça ne vérifie pas toutes les lignes des cellules.

Une idée de comment faire ?

Merci !

bonjour Rudeus,

=NB.SI(A1:A100;"*projet*")

Bonjour,

Si vba est autorisé, avec cette fonction :

Function NbProjets(ByVal Chaine As String) As Integer

    NbProjets = UBound(Split(LCase(Chaine), "projet"))

End Function

@BsAlv : J'ai testé ta solution mais ça ne me récupère pas toutes les lignes c'est vraiment bizarre.

Exemple :

PROJ qsdqqdqsds
PROJ sdqdqdqdqsd
ERR qsdqdqsd

PROJ zdadad
PROJ azdadad
ERR : azdadad
PROJ :azdzada

2

Dans le résultat 2 j'ai utilisé la formule : =NB.SI(A1:A2;"*PROJ*")

@Eric Kergresse, je ne pense pas avoir accès à VBA pour le moment. Il faudrait que je vois si je peux l'utiliser.

Bonjour à tous !

Dans le résultat 2 j'ai utilisé la formule : =NB.SI(A1:A2;"*PROJ*")

Il est nécessaire d'adapter le premier argument de la fonction à la taille de votre plage.

Ici, ce sera A1:A8 et non A1:A2

Si la chaine recherchée est variable, il faut adapter la fonction :

Function NbProjets(ByVal Chaine As String, ByVal ChaineRecherchee As String) As Integer

    NbProjets = UBound(Split(LCase(Chaine), LCase(ChaineRecherchee)))

End Function
capture

bonjour

une contribution

cordialement

4rudeus.xlsx (9.55 Ko)

ou alors impétueusement

=SOMMEPROD(--(SIERREUR(CHERCHE(E1;TRANSPOSE(B2:B6);LIGNE(1:300));"")=LIGNE(1:300)))

E1 est la cel qui contient "projet"

Merci pour vous messages !

J'ai activé VBA et ton code marche super bien Eric merci.

Est ce qu'il est possible de recherche sur une plage et non pas sur une seule cellule ? Sinon je ferais une addition si ce n'est pas possible.

Merci en tout cas !

Faut-il :

Matérialiser résultats ? Si oui à quel endroit déposer le résultat, une cellule, un msgbox ?

Calculer la somme à partir d'une sélection, d'une colonne ? Idem pour le résultat ?

Le but final est par exemple sur une plage donnée A1 à A20, de récupérer dans une cellule classique toutes les occurrences du mot "Projets" par exemple.

Function NbProjets(ByVal AireChaines As Range, ByVal ChaineRecherchee As String) As Integer

Dim I As Integer

    For I = 1 To AireChaines.Count
        NbProjets = NbProjets + UBound(Split(LCase(AireChaines(I)), LCase(ChaineRecherchee)))
    Next I

End Function
capture

Le but final est par exemple sur une plage donnée A1 à A20, de récupérer dans une cellule classique toutes les occurrences du mot "Projets" par exemple.

si tu n'arrives pas à copier la" function" dans un module ,,, essaie mes 2 solutions

cordialement

Merci pour vos retours.

Je teste tout ça de retour lundi pour voir quelle solution sera la plus simple !

Bonjour à tous de nouveau !

Il serait fort judicieux de préciser, dans votre profil, la nature de votre Excel ( 2019 ? 2021 ? 365 ? ...)

Rechercher des sujets similaires à "compter nombre occurrence mot lignes"