Correspondance texte d'une cellule et liste d'expressions

Fermé
Adlux Messages postés 2 Date d'inscription mercredi 31 juillet 2013 Statut Membre Dernière intervention 1 août 2013 - 31 juil. 2013 à 17:49
via55 Messages postés 14501 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 28 novembre 2024 - 1 août 2013 à 15:45
Bonjour, à tous, et merci de l'intérêt que vous portez à ma demande :)

Voici mon problème :

J'ai une cellule excel, pour laquelle j'aimerai vérifier si une partie du texte de celle-ci (logiquement une suite de caractères) est reprise dans une liste de mots.

Par exemple, le texte de ma cellule serait "Bonjour je suis", et j'aimerai savoir si elle correspond à l'une des expression de la liste suivante
- Aurevoir
- Merci
- Bonjour
- etc.

Pour info j'ai atteint un résultat en utilisant CHERCHE+EST.NUM+OU+IF mais la formule est beaucoup trop contraignante car elle implique de tapper dans le critère de CHERCHE tous les mots de la liste et cependant j'en ai beaucoup trop (environ 300).

Un grand merci d'avance pour votre aide!

1 réponse

via55 Messages postés 14501 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 28 novembre 2024 2 735
31 juil. 2013 à 18:11
Bonjour

une possibilité : un exemple avec 5 mots

https://www.cjoint.com/?0GFsiOzpIoP

ce ne sont pas les mots qui sont tapés dans CHERCHE mais CHERCHE qui s'adapte en fonction de chaque mot; si le mot est trouvé une croix est mise dans sa colonne ce qui permet de retrouver le mot avec INDEX EQUIV

A adapter à tes besoins

Cdlmt
0
Adlux Messages postés 2 Date d'inscription mercredi 31 juillet 2013 Statut Membre Dernière intervention 1 août 2013
1 août 2013 à 09:16
Salut via55 et merci d'avoir pris le temps de me répondre.

Ta solution est correcte, mais je ne peux toutefois pas l'adapter à mon problème :

J'ai environ 50.000 cellules à tester et 300 mots...aussi cela donnerai une matrice avec 15.000.000 de formules à copier.

A la base je pensais pouvoir faire un bête INDEX+EQUIV, mais en ajoutant quelque chose pour préciser que la recherche doit se faire sur une partie de la cellule de réference.

Quoiqu'il en soit merci quand même pour ton aide!
0
via55 Messages postés 14501 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 28 novembre 2024 2 735
1 août 2013 à 15:45
Bonjour Adlux

La formule n'est pas à recopier mais juste à étirer (néanmoins sur 300 colonnes et 50 000 lignes si je te suis)

Une solution alternative consisterait à passer par un code en VBA avec 2 boucles imbriquées
du style

For n = 1 to 50 000
ici mettre un code pour récuperer successivement chacun des phrase en ligne n (style : phrase=cells(ligne n, colonne 1).value)

numero=0

For t=1 to 300
ici code pour tester si l'un des 300 mots est compris dans la phrase (avec l'équivalent de CHERCHE en VBA)

et si est compris attribuer à une variable numerola valeur t

Next t

IFnumero >0
faire afficher en regard de la phrase (colonne B, ligne n par ex) le mot retrouvé dans la liste grâce à son N°

Next n


Je t'aurais bien établi le code de manière plus complète mais je suis sous Libre office incompatible avec le VBA d'Open

En espérant qu tu arriveras à une solution

Cdlmnt
0