Correspondance texte d'une cellule et liste d'expressions

Adlux Messages postés 2 Statut Membre -  
via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   -
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. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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. Adlux Messages postés 2 Statut Membre
       
      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. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      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