Microsoft 365 Cherche si une liste de mot est dans une phrase

danbibi

XLDnaute Junior
Bonjour !

Je souhaiterai si un des mots , d’une liste de mot , est dans une phrase. Exemple :

Liste à vérifier :
Je
Dan
Assiette
Tomates

Cellule à vérifier :
A. B
Je mange des tomates TRUE
Il mange une tomate. False
Dan mange. True
Il aime les carottes. False

Merci beaucoup
 

Pièces jointes

  • 6..xlsx
    12.2 KB · Affichages: 0
Dernière édition:
Solution
Re,

Tout d'abord j'ai transformé vos tableaux en tableaux structurés, car power query travaille avec ces tableaux ou avec des plages de cellules nommées (Insertion/Tableau)

Le tableau de la liste des mots de la feuille 1 a été nommé 'Liste' par l' onglet création tableau (s'affiche lorsqu' un élément de tableau est selectionné.
Le table de la feuille 2 a été nommé 'Phrases' par le même procédé.

Pour voir les requêtes du classeur : Onglet 'Données' boutons 'Requêtes et connexions'
Dans le panneau de gauche qui s'ouvre, click-droit sur la requête 'Test_Phrase' puis 'Modifier', ce qui ouvre l'éditeur de requête.

Dans cet éditeur, à droite vous avez un panneau vous donnant les différentes étapes de la requête. En général, la première...

danbibi

XLDnaute Junior
merci beaucoup, mais cela reponds en partie a mon probleme.
Par exemple, si dans ma liste e mot j'ai 'tomate' sans s, et que des mes cellules a verifier , j'ai une phrase comportant le mot 'tomates' avec un s, je veux que cela donne 0, cr ce n'est pas exacement le meme mot. je veux que le code cherche le mot exactement, et non pas une suscession de ses lettres.
 

danbibi

XLDnaute Junior
Re
je l'avais mis hier soir, mais j'ai oublié de valider ......
merci beaucoup de votre aide, malheursement ce n'est pas exactement ce que je cherche a obtenir. Je vais essayer de mieux expliquer.

Si dans ma liste de mot j'ai le mot tomate(sans S), et que dans mes cellules a checker , j'ai par exemple:

A2: j'aime les tomates ----> je veux obtenir False, car le mot tomate (sans S) est differents du mot tomates(avec S)
A3: j'aime la tomate ----> True, car le mot tomate exact, est bien dans ma liste de mot. j'espere avoir bien explique. Je vous envoie mon Excel pour que vous essayer
 

Pièces jointes

  • 6..xlsx
    12.2 KB · Affichages: 3

Hasco

XLDnaute Barbatruc
Bonjour,

Une tentative par power query. S'il faut rendre les comparaisons non sensibles à la casse, il y a moyen.
La requête retourne les mots communs, mais s'il faut retourner un nombre ou VRAI/FAUX c'est possible aussi.

Cordialement
 

Pièces jointes

  • 6..xlsx
    30.4 KB · Affichages: 2

danbibi

XLDnaute Junior
Bonjour,

Une tentative par power query. S'il faut rendre les comparaisons non sensibles à la casse, il y a moyen.
La requête retourne les mots communs, mais s'il faut retourner un nombre ou VRAI/FAUX c'est possible aussi.

Cordialement
bonjour,

merci pour votre aide ! pouvez vous m'expliquez ce que vous avez fait comme calcul, je connais pas power query. De plus j'aimerai que cela mette true ou false svp
merci beaucoup !
 
Dernière édition:

Hasco

XLDnaute Barbatruc
Re,

Tout d'abord j'ai transformé vos tableaux en tableaux structurés, car power query travaille avec ces tableaux ou avec des plages de cellules nommées (Insertion/Tableau)

Le tableau de la liste des mots de la feuille 1 a été nommé 'Liste' par l' onglet création tableau (s'affiche lorsqu' un élément de tableau est selectionné.
Le table de la feuille 2 a été nommé 'Phrases' par le même procédé.

Pour voir les requêtes du classeur : Onglet 'Données' boutons 'Requêtes et connexions'
Dans le panneau de gauche qui s'ouvre, click-droit sur la requête 'Test_Phrase' puis 'Modifier', ce qui ouvre l'éditeur de requête.

Dans cet éditeur, à droite vous avez un panneau vous donnant les différentes étapes de la requête. En général, la première s'appelle 'Source'.
Vous pouvez cliquer sur ces noms d'étapes, pour voir dans le panneau du milieu de l'éditeur, ce que l'étape sélectionné a transformé par rapport à l'étape précédente. Vous pouvez voir le texte de ces étapes dans la barre de formule de l'éditeur, au-dessus du grand panneau du milieu.

1 - L'étape 'Source', retourne le contenu du tableaux du nommé "Phrases"
= Excel.CurrentWorkbook(){[Name="Phrases"]}[Content]
2 - L'étape suivante 'Type modifié' attribut le type text aux donnée de la colonne nommée 'Keyword'

= Table.TransformColumnTypes(Source,{{"Keyword", type text}})​

3 - l'étape suivante (personnalisée ajoutée) ajoute une colonne (test) à la table et rempli cette colonne avec la liste des items communs entre la liste des mots de Keyword et la liste des mots retournés par la requête 'Liste' (Intersection entre les listes)
= Table.AddColumn(#"Type modifié", "Test", each List.Intersect({Text.Split([Keyword]," "),Liste}))​

4 - La dernière étape quant à elle, se contente de concaténer les items retournés par l'étape précédente avec
= Table.TransformColumns(#"Personnalisée ajoutée", {"Test", each Text.Combine(List.Transform(_, Text.From), "; "), type text})​


Cordialement
 

Deadpool_CC

XLDnaute Impliqué
Piste sans power query ... pour ceux qui ne maitrise pas ... mais plus compliquer dans la formule
Chercher "tomate" et vérifier que le caractère suivant n'est pas alphabétique (espace, point, point d'exclamation, ... sont autorisés mais pas une lettre de l'alphabet)
(Ajout : ) ... ou qu'il n'y a pas de caractère suivant si c'est la fin du texte ... lol

après ... avec la matrice des mots cherchés difficile de trouver la bonne formule pour que cela fonctionne.
Peut-etre plus simple de se mettre au powerquery ... sniff
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
299 845
Messages
1 979 513
Membres
206 755
dernier inscrit
So78310