Calc : rechercheV non exact

Personne n’a d’idées?

Bonjour Mr-Boutindou, le forum

Vous utilisez la fonction : “com.microsoft.xlookup”

Elle n’existe actuellement pas dans LibreOffice et ne peut donc logiquement pas fonctionner…
:wink:

depuis la dernière version elle existe, cependant ça ne fonctionne pas correctement

Voici une version qui fonctionne déjà un peu mieux !

J’ai modifié la formule XLOOKUP en ajoutant des * autour du contenu de la cellule J10 (et suivante dans la colonne), puis j’ai changé le type de recherche en 2 qui permet d’utiliser ces * comme caractères spéciaux signifiant “possibilité de caractères avant” et “possibilité de caractères après”. De plus, cette façon de procéder permet d’éliminer la non-correspondance entre un mot avec majuscule et un mot avec minuscule.

Par exemple, pour “sel”, la nouvelle formule trouve d’abord “Gros sel” par ordre alphabétique. Et s’il y avait un produit qui s’appelait “Bettesselrave”, c’est ce produit qui serait retourné en premier. C’est donc une limitation de l’approche !

Concernant “poulet cuisse” et “cuisse de poulet”, XLOOKUP ne trouve pas la correspondance exacte et donc retourne FAUX.

Test convertion.ods (103.8 KB)

Entre temps j’ai eu une idée pour aider quand il y a plusieurs réponses possibles, j’ai créé une liste déroulante dynamique avec la formule : FILTRE(CuisineNomcompose;ESTNUM(CHERCHE(J10;CuisineNomcompose)))

sachant que CuisineNomcompose c’est l’ensemble des données “nom composé” dans l’onglet cuisine.
C’est bien parce que ça me donne tous les choix disponible, cependant si je mets “cuisse de poulet” il ne trouvera forcement rien…

Est ce qu’il y aurait un moyen de lui dire de chercher chaque mots du critère séparément et de trouver toutes les combinaisons possible de ces mots? Si on lui dit cuisse de poulet, il pourrait chercher “cuisse poulet”, “de poulet”, “cuisse de”, “cuisse de poulet”, “poulet cuisse de” etc… et l’inclure dans la liste?

qq idées par là (en anglais) : Searching for multiple words in a cell or row

J’ai pensé à un truc mais je ne sais pas en quelle mesure c’est faisable…
En gros je prends la ligne où je mets le texte brut “1 u cuise de poulet”, il extrait la quantité, l’unité et le nom (jusque là ça va)
Ligne en dessous, un textsplit (je ne sais pas si ça existe dans calc) pour qu’il sépare tous les mots
Ligne en dessous, génère toutes les possibilités de combinaisons de mots (cuisse de, cuisse poulet, cuisse de poulet, cuisse poulet de, de poulet, de cuisse, de cuisse poulet, de poulet cuisse, poulet cuisse, poulet de, poulet de cuisse, poulet cuisse de)

Dans ma ligne déroulante, au lieu de lui demander de chercher le nom extrait, je lui demande de faire une recherche de toutes les combinaisons possible et de me retourner tous les résultats trouvés

C’est faisable? Comment?

sic IA :

sauf que la fonction SPLIT n’existe pas

Fonction Split

et plus généralement : Conseils pour poser une question - #3 by ajlittoz

Ok, mais je cherchais une formule, pas du vba parce que je ne le maitrise pas du tout. D’où la confusion

Personne ne peut m’aider? :frowning:

[obsolete]

@koyotak
Je ne comprends pas bien le fichier :frowning:

@koyotak
Serait-ce possible d’avoir une explication?

[obsolete]

@koyotak Even if I look at your second file, I don’t understand it…
My wish is to put what ever I want (cuisse de poulet) and make a search in the data table. “cuisse de poulet” does’nt exist, but “poulet, cuisse” exist.
So when I put “cuisse de poulet”, the search must find “poulet, cuisse”

fichier modifié
Test conversion amélioré.ods (124.6 KB)
:

J’ai modifié le fichier en anglais comme il suit:

  • ajout de liste denrées sur Feuille2
  • cellules de recherche combinées avec texte
  • cellules coloriées avec résultat

Recherche adaptée à ton lexique.ods (16.9 KB)

@koyotak ?