Correspondance texte d'une cellule et liste d'expressions

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

  1. 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
    1. 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
    2. 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