Une recherche/remplacement compliquée !

Résolu/Fermé
Kahelm Messages postés 12 Date d'inscription jeudi 26 mai 2016 Statut Membre Dernière intervention 15 juin 2016 - 27 mai 2016 à 11:44
Kahelm Messages postés 12 Date d'inscription jeudi 26 mai 2016 Statut Membre Dernière intervention 15 juin 2016 - 27 mai 2016 à 17:25
Bonjour,

Merci encore pour votre réponse hier soir, je viens de finir le code ce matin, tout est NIKEL. Je m'étais trompé de fonction, effectivement ça n'aide pas !

Me voila avec (encore!) une nouvelle problématique, et de taille, comme tout est possible en informatique... :-)


La cellule A1 contient Zidane Turam Petit

Je cherche à tester le premier mot de la cellule A1, j'utilise ;

=LEFT(A1;FIND(" ";A1;1))

Zidane ressort bien en résultat.

Ensuite, et c'est là que je nage dans l'océan.

Je veux faire une recherche pour trouver la biographie de "Zidane" dans toutes les cellules de la colonne B.

La colonne B contient différentes biographies de joueurs de foot, une biographie par cellule.

Une biographie ne commence pas forcément par le nom du joueur, il faut donc rechercher chaque mot de chaque cellule jusqu’à trouver le mot "Zidane".

Par contre, le mot Zidane apparaît UNIQUEMENT dans la cellule de sa biographie, et dans aucune autre dans la colonne B.

Disons que le mot "Zidane" apparaît dans la cellule B6

Une fois que le mot "Zidane" a été trouvé, je cherche à Copier tous les caractères de la cellule B6 dans celle ou est la formule.

... OUF SOUFFLONS ...


... RESPIRATION ...

Je me rends compte qu'il s'agit davantage d'un exercice d'informatique que d'une aide.. Je ne sais vraiment pas quoi faire.

Je pense que celle ou celui qui parviendra à résoudre mon dilemme accédera au Nirvana. :-)

Merci pour tout.


4 réponses

Kahelm Messages postés 12 Date d'inscription jeudi 26 mai 2016 Statut Membre Dernière intervention 15 juin 2016 1
27 mai 2016 à 13:08
Cette formule me renvoi des données mais pas les bonnes, c'est compliqué...

=MID(VLOOKUP(LEFT(A1;FIND(" ";A1;1));B:B;1);1;1000)
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
Modifié par Vaucluse le 27/05/2016 à 13:30
Bonjour
pour détecter les cellules qui contiennent le nom cherché, par exemple de B2 à B100

=SI(NB.SI(A2;"*Zidane*");B2;0)

ou selon votre type de recherche

=SI(NB.SI(A2:"*"LEFT(A1;FIND(" ";A$1;1));B1:"")

et pour détecter à la fois les cellules qui contiennent Zidane et un texte cherché comme "soufflons")

=SI(NB.SI.ENS(B2;"*Zidane*";B2;"*soufflons*");B2;"")


principe pour chercher un mot ou une partie de phrase dans un texte avec NB.SI


soit "*texte*"
soit "*"&adresse cellule contenant le texte&"*"
soit "*"&formule, définissant le texte&"*"

et en complément pour éditer les textes retenus de B:

en C cette formule

=SI(NB.SI.ENS(B2;"*Zidane*";B2;"*soufflons*");MAX($C$1:C1)+1;"")

et en D:

=SIERREUR(INDEX(B:B;EQUIV(LIGNE($A1);C:C;0));"")

à tirer sur la hauteur utile

qui ressortira en la liste des textes contenant les deux valeurs cherchées dans l'item NB.SI.ENS

attention à tous les signes $ * & aux bons endroits

crdlmnt

La qualité de la réponse dépend surtout de la clarté de la question, merci!
0
Kahelm Messages postés 12 Date d'inscription jeudi 26 mai 2016 Statut Membre Dernière intervention 15 juin 2016 1
27 mai 2016 à 15:03
Bonjour,

merci pour tes explications. Je cerne mieux la fonction COUNTIF.

Le problème c'est que le résultat est un test logique.

Ma cellule de calcul est C1
en A1, la cellule contient Zidane Turam Petit

Je veux que le premier mot, c'est OK avec la formule ;

=LEFT(A1;FIND(" ";A1;1))

Avec ce mot, je veux faire une recherche dans la colonne B.

La colonne B contient uniquement une cellule avec le mot "Zidane", pas deux.

La cellule B6 contient : "Le pays de naissance de ZIDANE est..."

Je veux passer en revue chaque mot de chaque cellule jusqu’à pointer dans la bonne cellule, ici B6.

Une fois la cellule trouvée, B6, je veux afficher tout le contenu de cette cellule dans ma cellule de calcul C1.


Il faudrait peut-être procédé avec la fonction FIND, LOOKUP ? Et ensuite utiliser la fonction DIM ?

La tête devient lourde, une petite pause s'impose.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
27 mai 2016 à 16:17
Alors essayez celle ci si la liste de vos terxtes est en B( version française)

=RECHERCHEV("*"&GAUCHE(A1;TROUVE(" ";A1)-1)&"*",B:B;1;0)

crdlmnt
0
Kahelm Messages postés 12 Date d'inscription jeudi 26 mai 2016 Statut Membre Dernière intervention 15 juin 2016 1
27 mai 2016 à 17:25
C'est PARFAIT. Tout marche correctement. Un grand merci.

Maintenant reste à la décortiquer pour comprendre la logique, mais j'y voit déjà bien mieux !

Merci encore !
0