Si cellule contient le contenu de la cellule alors

[Fermé]
Signaler
-
Messages postés
26189
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
21 septembre 2021
-
Bonjour,

J'ai un petit soucis.
Alors avant de venir posé ma question j'utilisais sur mon document une formule du type :
=SI(NB.SI(A2;"*Hosta*");1;"A supprimer")

Cependant après modification de mon document j'ai donc beaucoup d'autres critères du type "Hosta" à rechercher. J'aimerais donc pouvoir faire une liste dans une plage de cellules de tous ces critères et faire en sorte que si ma cellule contient l'un des critères de la plage dans son contenu alors mettre 1 sinon la supprimer.
je ne sais pas si c'est bien clair, n'hésiter pas à me demander des précisions. En gros le principal soucis que j'ai c'est que je peux faire si le contenu de ma cellules est égal à l'un des contenus d'une des cellules de la plage mais je ne peux plus faire en sorte qu'elle contienne seulement l'un des contenus de la plage et non pas totalement égale.
Par exemple si dans ma plage de cellules (Critères) je liste "hosta", "Heuchera", "Sedum" alors je voudrais que si la cellule ciblée contient dans son texte ou Heuchera ou Sedum ou Hosta alors la formule me donne en résultat "1" même si c'est dernière contient par exemple "Hosta pot de 10.5" sans avoir à sélectionner chaque critère un par un (Problème de taille de la formule) mais plutôt la plage contenant les critères.

Merci d'avance, en espérant être assez clair ^^,

Cordialement,

1 réponse

Messages postés
26189
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
21 septembre 2021
6 056
Bonjour
exemple à adapter ci: (voila X fois + 1 que je propose cette solution dont une il y a moins de deux heures)
https://mon-partage.fr/f/oYJKCAh8/
revenez si problème pour adapter
crdlmnt
Ok nickel cela fonctionne plutôt bien voilà ma formule une fois réadaptée avec mes arguments : =SI(ET($I3="C2";SOMMEPROD((NB.SI($F3;"*"&GAUCHE('VC2 à supprimer'!$A$2:$A$100;TROUVE(" ";'VC2 à supprimer'!$A$2:$A$100)-1)&"*"))*1)>0);"A supprimer";SI(ET($I3="C5";SOMMEPROD((NB.SI($F3;"*"&GAUCHE('Feuillage 5L à garder'!$A$1:$A$100;TROUVE(" ";'Feuillage 5L à garder'!$A$1:$A$100)-1)&"*"))*1)>0);"A garder";""))

Alors tout va bien pour ma plage (Feuillage 5L) où si ma cellule contient un des éléments de la plage (avec espace) et peu importe quoi avant ou après cela fonctionne par contre pour ma deuxième plage (VC2 à supprimer) ici j'aurais voulu que ce ne soit à supprimer que si ma cellule correspond exactement à l'une des valeurs saisies dans une cellule de la plage. J'ai encore un peu de mal avec les symboles & et * du coup je n'arrive pas à trouver la solution peut être qu'une recherche V suffirait (mon critère sur la plage de cellule étant dans la première colonne de la feuille).

Merci encore pour votre précédente réponse ainsi que votre réactivité et merci d'avance pour la suite,

Cordialement,
Messages postés
26189
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
21 septembre 2021
6 056
il; suffit si vous voulez que le texte corresponde exactement à la valeur de référence

soit la valeur de référence reste à définir avec trouve et donc la formule devient (sans les "*" et les &)

=SI(ET($I3="C2";SOMMEPROD((NB.SI($F3;GAUCHE('VC2 à supprimer'!$A$2:$A$100;TROUVE(" ";'VC2 à supprimer'!$A$2:$A$100)-1)))*1)>0);"A supprimer";SI(ET($I3="C5";SOMMEPROD((NB.SI($F3;GAUCHE('Feuillage 5L à garder'!$A$1:$A$100;TROUVE(" ";'Feuillage 5L à garder'!$A$1:$A$100)-1)))*1)>0);"A garder";""))


soit la valeur de référence est complète et donc la cellule cherché doit contenir complètement la référence Les codes GAUCHE et TROUVE sont alors inutiles
=SI(ET($I3="C2";SOMMEPROD((NB.SI($F3;'VC2 à supprimer'!$A$2:$A$100)*1)>0);"A supprimer";SI(ET($I3="C5";SOMMEPROD((NB.SI($F3;)*1)>0);"A garder";""))


à ajuster bien sur selon vos contraintes

crdlmnts