Methode pr chercher plusieurs mots dans une cellule avec cdt OU

gdcobra91

XLDnaute Junior
Bonjour,

Je souhaiterai remplacer des formules imbriquées par une formule plus compacte ;)

Voici la formule actuelle :

dans B3
=SI(OU(NB.SI(C3;"renault*");NB.SI(C3;"citroen*");NB.SI(C3;"magasin*reparation*");NB.SI(C3;"concession*auto*"))=VRAI;"x";"")

Je souhaiterai ajouter d'autres mots de recherche. L'objectif est le suivant:
dès qu'une des valeurs recherchées est trouvée dans la colonne C alors on ecrit la valeur recherchée dans la cellule immédiatement à gauche. Exemple, si on trouve "citroen" en C8 alors on ecrit "citroen" en B8.

Je souhaiterai pouvoir continuer a rechercher plusieurs mots dans une même cellule. Exemple:" magasin*reparation*"

Si possible, faire une vérification si 2 valeurs de recherches sont trouvées dans une cellule. Dans ce cas, écrire les 2 valeurs de recherche séparé par un "-". Exemple, on recherche "citroen" et "citroen*marseille" dans une cellule C10 contenant "citroen de marseille" alors écrire en B10 "citroen - citroen*marseille".

Merci par avance :)
 

Softmama

XLDnaute Accro
Re : Methode pr chercher plusieurs mots dans une cellule avec cdt OU

Bonjour,

Tu peux essayer cette formule :
Code:
=si(SOMME(NB.SI(C3;{"*renault*";"*citroen*";"*magasin*reparation*";"*concession*auto*"}))>0;"x";"")

formule matricielle à valider par ctrl+maj+entrée

A toi de rajouter autant de critères dans les accolades que tu le souhaites
 
Dernière édition:

Gorfael

XLDnaute Barbatruc
Re : Methode pr chercher plusieurs mots dans une cellule avec cdt OU

Salut gdcobra91 et le forum
Ma journée de la critique :D
Une abréviation ouvre la porte à l'interprétation ! Or, à moins que je ne me trompe, ce que tu espères est un résultat clair et précis. J'ai mis quelques temps à comprendre que cdt ne voulait pas dire commandement ^^

Ta formule dans B3
Code:
=SI(OU(NB.SI(C3;"renault*");NB.SI(C3;"citroen*");NB.SI(C3;"magasin*reparation*");NB.SI(C3;"concession*auto*"))=VRAI;"x";"")
L'utilisation des balises rend le code plus compréhensible, et évite les smiley en plein milieu du code. Ce n'est pas le cas cette fois, mais une fois qu'on a goûté au forum...

Si je la comprends, tu recherches des valeurs commençant par certains textes (renault, citroën, réparation,etc...) et si tu en trouve 1, tu retourne "x", sinon "" => Juste une remarque : si(condition=Vrai; A;B) : tu écris si Vrai=Vrai => A; Si Faux<>Vrai => B :p => tu peux enlever le "=Vrai", ça continuera à fonctionner.

Je souhaiterai ajouter d'autres mots de recherche
Ça, je pense le comprendre
dès qu'une des valeurs recherchées est trouvée dans la colonne C alors on ecrit la valeur recherchée dans la cellule immédiatement à gauche. Exemple, si on trouve "citroen" en C8 alors on ecrit "citroen" en B8.
Là, j'ai quelques doutes :
Tu veux que la formule ne renvoie plus "x", mais les valeurs des mots trouvés à droite on peut le faire :
Pour B3, ça donnerait une formule du style :
Code:
=si(NB.SI(C3;"renault*");"renault -";"") & si(NB.SI(C3;"citroen*");"citroen -";"") & si(NB.SI(C3;"magasin*reparation*");"magasin*reparation -";"") & si(NB.SI(C3;"concession*auto*");"concession*auto -";"")
Ton résultat sera soit vide ("") soit une/plusieurs des valeurs et se terminera par " -".

Sinon, si B3="x", remplir les B en fonction des conditions de B3, il faut obligatoirement passer par macro. Et n'ayant que ce que tu postes, je ne sais pas trop ce que tu veux en final => Tu ne donnes que le moyen par lequel tu espères atteindre ton but. Ne le connaissant pas, je ne peux que conseiller d'utiliser un filtrage =>soit filtre automatique, mais on se limite à une question : soit filtre élaboré. En final, restent apparentes que les lignes répondant à la/les condition(s) du filtre.
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 393
Messages
2 088 011
Membres
103 699
dernier inscrit
samSam31