Excel : NB.SI avec OU

[Fermé]
Signaler
-
Messages postés
24161
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
13 août 2021
-
Bonjour,

Je recherche une formule afin de compter le nombre de cellules, contenant du texte, si celles-ci contiennent au moins un mot d'une liste.

Je suis partie de NB.SI et NB.SI.ENS mais je n'arrive pas à quelque chose de correct.

Si quelqu'un a une solution, je suis preneuse.

Merci beaucoup,

Lena

7 réponses

Merci beaucoup Vaucluse, mais ça c'est la formule pour chercher un mot.

Je cherche en fait à faire cette formule :

NB.SI(Champ des textes; "*"&mot1&"*"ou"*"&mot2&"*"ou"*"&mot3&"*"...)

soit compter une cellule si elle contient au moins un mot de la liste.

Lena.
4
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Merci pour vos réponses.

Le problème est que ma liste peut contenir jusqu'à 20 mots et du coup cette solution va être assez fastidieuse à mettre en place... :)

De plus, la solution d'Eric a pour problème de compter plusieurs fois certaines cellules puisqu'elles peuvent contenir 1, 2, 3, ou plus de mots de la liste.

Lena.
Messages postés
24161
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
13 août 2021
6 870
Re,

la solution d'Eric a pour problème de compter plusieurs fois certaines cellules
Pas faux.
De plus je viens de voir que c'était la proposition de vaucluse dite autrement...

Proposition par une fonction personnalisée :
Function CompterCelMot(plageTexte As Range, listeMots As Range) As Long
    Dim cTexte As Range, cMot As Range
    For Each cTexte In plageTexte
        For Each cMot In listeMots
            If InStr(cTexte, cMot) > 0 Then
                CompterCelMot = CompterCelMot + 1
                Exit For
            End If
        Next cMot
    Next cTexte
End Function

syntaxe : =CompterCelMot(plageTexte, listeMots)
ex : =CompterCelMot(B5:B14;D2:D6)

Je n'ai pas optimisé, je pense que tu n'auras pas la fonction présente 1000 fois sur ta feuille...
Par contre tu n'as pas précisé ta version. Si c'est excel 2008 c'est mort, il n'accepte pas les macros.
Fichier exemple

eric
Messages postés
26144
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
29 août 2021
6 031
Re
alors là, sans macro ça va être difficile et ce n'est pas ma spécialité!

je vous laisse avec d'autres compétences!

Moi je ne saurais que:
_placer cette formule à droite de la liste des mots
_la tirer sur la hauteur de la liste de mot en plaçant bien les $ aux bons endroits
_faire le total des résultat de cette colonne.

crdlmnt
Je ne m'y connais pas vraiment, mais pourquoi ne pas résonner de manière relativement brutale?

c'est-à-dire enchainer une somme de NB.SI et de NB.SI.ENS?

La somme des lignes ou un des mots apparait, moins les lignes ou deux mots apparaissent plus les lignes ou les trois mots apparaissent donnent un compte juste je crois, donc une simple somme peut suffire?

Désolé si je suis a coté de la plaque :p
Messages postés
24161
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
13 août 2021
6 870
Bonjour,

dans la même lignée que guinpin :
mettre ta liste de mot en colonne et à coté la formule.
Tu n'as plus qu'a faire la somme.

Tu n'as plus de limite de mots et en cas d'évolution la mise à jour est simplifiée.

eric
Messages postés
26144
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
29 août 2021
6 031
Bonjour

placez le mot cherché dans une cellule


=NB.SI(Champ des textes; "*"&cell texte à compter&"*")
soit par exemple:
=NB.SI($A$1:$A$1000;"*"&X1"*") pour compter le nombre de cellule en A1:A1000 où le texte en X1 est présent

en complément

*"&CELL&"*"le mot est dans le texte

CELL&"*" le mot est au début du texte

"*"&CELL le mot est à la fin du texte.

crdlmnt