Qualifier des phrases en fonction groupes de lists

Fermé
DrPaulE - 4 sept. 2018 à 07:06
 DrPaulE - 5 sept. 2018 à 14:24
Bonjour,

J'ai deux feuilles. Une première contient en colonne A quelques centaines de phrases (le nombre de lignes grandit chaque jour). En colonne B, j'aimerais qualifier chaque ligne (chaque phrase) automatiquement via une formule.

Dans ma deuxième feuille, j'ai mes qualificatifs et mes critères de recherche. En C, j'ai une liste de noms et pour chacun d'eux j'ai en D une série de critères séparés par un point virgule ";" (je pourrais au besoin utiliser plusieurs colonnes pour les critères de recherches). La quantité de critères est variable et certains noms complexes n'ont pas de critères.

Pour donner un exemple, j'aimerais que la phrase "La pomme grenade est un" soit qualifiée du mot "fruit" dans ma première feuille puisque dans ma deuxième feuille j'ai une ligne qui indique quelque part "fruit" accompagné de mots tel que "kiwi", "orange", "pomme grenade" et "fraise".

3 réponses

eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
Modifié le 4 sept. 2018 à 20:01
Re,

Il y a des limites à ce qui est faisable.
Il faut séparer les mots, l'espace est leur séparateur.
Donc "pomme grenade" c'est 2 mots. Si tu veux que ce soit 1 mot il faut utiliser un autre séparateur.
J'ai mis le _ : "pomme_grenade" est bien considéré comme 1 mot et trouvé.
Tu peux aussi utiliser un espace insécable (Alt+0160 taper les chiffres sans relâcher Alt). L'avantage et l'inconvénient c'est qu'on ne le distingue pas du vrai espace.

Comme sur ton exemple, j'ai considéré qu'il n'y avait pas de ponctuation.
Si tu as des , ou des . ou des ? etc ce n'est pas traité, tu auras donc des anomalies.

Si, en colonne A uniquement, tu sélectionnes au moins 2 cellules (pour pas que ça te saoule lorsque tu en sélectionne une seule) il t'est proposé de rechercher les qualificatifs pour la sélection.
La colonne B sera écrasée, sans avertissement, par le résultat.
https://www.cjoint.com/c/HIesah4JlGM
eric


1
Merci beaucoup !

C'est vraiment la meilleure façon de faire.

J'en était rendu à utiliser une formule avec des Si imbriqués :

=SI(OU(NON(ESTERR(CHERCHE(Listes!B2;A2)));NON(ESTERR(CHERCHE(Listes!C2;A2)));NON(ESTERR(CHERCHE(Listes!D2;A2)));NON(ESTERR(CHERCHE(Listes!E2;A2))));Listes!A2;SI(OU(NON(ESTERR(CHERCHE(Listes!B3;A2)));NON(ESTERR(CHERCHE(Listes!C3;A2)));NON(ESTERR(CHERCHE(Listes!D3;A2)));NON(ESTERR(CHERCHE(Listes!E3;A2))));Listes!A3;""))

Je pense que via VBA la façon de faire est bien plus simple.
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
4 sept. 2018 à 08:20
Bonjour,

Vu ce que tu décris ça sera plutôt en vba.
Si tu veux que qq'un se penche dessus, tu devrais déposer un fichier de travail avec qq lignes et le résultat attendu.
cjoint.com et coller ici le lien fourni.

certains noms complexes n'ont pas de critères.
C'est à dire ? Mettre un exemple.
Précise aussi comment s'effectue le choix si plusieurs mots-clés sont trouvés.
eric
0
Le fichier d'exemple est ici : https://www.cjoint.com/c/HIeljCgjxn6

Je pensais à une combinaison d'Index et de Equiv ou encore de Choisir et de Chercher (quitte à prendre la valeur de la colonne immédiatement à gauche lorsque ma liste de critères en feuille 2 colonne D renvoie un positif dans une ligne en feuille 1).

Par noms complexes, je veux dire que s'il n'y a pas de critères de recherche ou qu'aucun critère de recherche ne donne de résultat de tout simplement laisser la case vide. Au fond c'est d'automatiser au maximum, mais de laisser l'humain compléter le travail pour les exceptions.

S'il y a plusieurs mots-clés, le premier sera suffisant. Pour pousser, dans un deuxième temps, on pourrait penser à un message d'avertissement.

De même, s'il y a plusieurs critère de recherche qui pourrait renvoyer un positif, le premier ou le dernier serait suffisant, mais un message d'avertissement serait quelque chose de complémentaire et d'intéressant.
0