Faire une recherche sur du contenu, pour récupérer le titre d'une catégorie

Bonjour à tous,

J'ai besoin de vos lumières svp

Je ne m'y connais pas suffisamment en formule google sheet, et malgré mes heures de recherches, je n'arrives pas à trouver de solution. Peut-être est-ce plus simple que je ne le pense, ou bien je ne réfléchis pas de la bonne manière. Quoi qu'il en soit, j'aimerais un petit coup de main svp.

Mon sujet : Nous devons contrôler tous les 5 ans la tare de nos emballages. Nous avons plus de 500 produits et pour faciliter le travail de la personne, je souhaitais catégoriser ces produits pour effectuer moins de contrôles.

Mon objectif : Dans un tableau récapitulatif, je souhaite qu'apparaisse la catégorie en automatique, en fonction du code de l'emballage et selon un tableau de catégorie. Ce dernier doit être aussi parfaitement claire et compréhensible pour être présenté.

Mon problème : Je n'arrive pas à trouver une formule qui, d'après la cellule dans lequel est inscrit mon code emballage dans mon tableau récap, va chercher dans le contenu de mon tableau de catégorie pour me remonter la catégorie / l'en-tête dans laquelle il est rangé.

Le résultat attendu : Dans la colonne "catégorie" de mon 1er onglet (= tableau récap) je souhaite afficher la catégorie de la référence de la colonne précédente. Ex : la catégorie col E de "Ref film sup" col D de la ligne 6 "LARDON 5".

C'est un peu comme une recherche, mais je dois aller chercher ma donnée dans une multitude de colonnes (dans le contenu du tableau plutôt que dans la première colonne de titre), pour me trouver la ligne de la catégorie dans laquelle il est rangé.

J'ai pensé à une formule QUERY, mais je n'arrive pas à la composer.

Peut-être que mon tableau de catégorie est mal construit, mais je ne sais pas non plus comment m'y prendre pour qu'il reste pratique à consulter.

J'ai vu que dans la plus part des sujets du forum, vous demandiez un fichier d'essai. Le voici :

https://docs.google.com/spreadsheets/d/1tGz2Y-miS285D_8ZUxngM2HySZnMHUjwatEZS9VY11w/edit?gid=8377997...

Bonjour,

Voilà une petite approche de ton problème.

En "Tableau récap", E2 (à copier vers le bas ) :

=iferror(TEXTJOIN(" / ";1;query({'Catégorie'!$C$2:C27\'Catégorie'!$E$2:AZ27};"select Col1 where "&ArrayFormula(JOIN(" OR ";"Col"&SEQUENCE(1;48;2) & " = " & D2))&" ";0 )))

https://docs.google.com/spreadsheets/d/1KwNjIfBlD5PW7GH4d4Hy__k8-tarxoCyyLdS37OEB5s/edit?usp=sharing

Cordialement,

Fil.

Bonjour Filoche,

C'est miraculeux ! C'est exactement se que je souhaitais réaliser. Merci beaucoup !!

Tu as combiner QUERY avec d'autres formules. Je ne savais pas que c'était possible. J'aime comprendre la construction, pour apprendre. Si j'ai bien compris la composition :

TEXTJOIN pour ajouter des / entre les catégories à mon résultat.

QUERY combiné à Arrayformula permet de chercher dans une large plage de données je suppose.

Join OR pour récupérer toutes les catégories

= D2 pour la référence.

Et enfin le iferror pour ne pas afficher de message d'erreur s'il ne trouve rien.

Ai-je bon ?

Pour résumer le fonctionnement de la formule :

=iferror(TEXTJOIN(" / ";1;query({'Catégorie'!$C$2:C27\'Catégorie'!$E$2:AZ27};"select Col1 where "&ArrayFormula(JOIN(" OR ";"Col"&SEQUENCE(1;48;2) & " = " & D2))&" ";0 )))

Nous avons :

TEXTJOIN(" / ";1;"query") permet de renvoyer le résultat de la recherche, dans une seule cellule, séparé par espace/espace (en cas de résultats d'appartenance à plusieurs catégories distinctes).

ArrayFormula(JOIN(" OR ";"Col"&SEQUENCE(1;48;2) & " = " & D2)) dans Query...where... déploie automatiquement une syntaxe longue à écrire (Col2 = D2 OR Col3 = D2 OR Col4 = D2 OR Col5 = D2 OR Col6 = D2 OR Col7 = D2 OR Col8 = D2 OR Col9 = D2 OR Col10 = D2 OR Col11 = D2 OR Col12 = D2 OR Col13 = D2 OR Col14 = D2 OR Col15 = D2 OR Col16 = D2 OR Col17 = D2 OR Col18 = D2 OR Col19 = D2 OR Col20 = D2 OR Col21 = D2 OR Col22 = D2 OR Col23 = D2 OR Col24 = D2 OR Col25 = D2 OR Col26 = D2 OR Col27 = D2 OR Col28 = D2 OR Col29 = D2 OR Col30 = D2 OR Col31 = D2 OR Col32 = D2 OR Col33 = D2 OR Col34 = D2 OR Col35 = D2 OR Col36 = D2 OR Col37 = D2 OR Col38 = D2 OR Col39 = D2 OR Col40 = D2 OR Col41 = D2 OR Col42 = D2 OR Col43 = D2 OR Col44 = D2 OR Col45 = D2 OR Col46 = D2 OR Col47 = D2 OR Col48 = D2 OR Col49 = D2

).

SEQUENCE(1;48;2)  permet de générer une séquence de pas 1, à partir de la colonne 2, 48 fois. Donc, si ton tableau est plus grand, il faut modifier le 48, ainsi que les plages du QUERY...
D2 est la référence recherchée.

iferror permet de ne pas afficher de message d'erreur (notamment quand la recherche est infructueuse).

Voilà ! Si tu as besoin d'autres précisions, n'hésite pas...

Bien cordialement et heureux que cela t'aide,

Fil.

Tes explications sont très claires et précises. C'est parfait !

Mais malgré tout, je n'arrive pas à faire fonctionner la formule dans mon tableau cible.

J'ai simplement retiré la fonction iferror pour y voir claire. Mais je ne comprends pas où ai-je fait l'erreur.

image

Et pourtant il m'indique en résultat "INF Kg barq" alors que le code n'y ai pas.

image

Bonjour à tous,

Une alternative basée sur le fichier de @filoche (je l'ai mis dans sa colonne I)

=LET(
_colCat; 'Catégorie'!$C$1:$C$23; _tblRefs; 'Catégorie'!$E$1:$AI$23;
TEXTJOIN(" / "; 1; IFERROR(FILTER(_colCat; BYROW(_tblRefs;LAMBDA(_r;OR(ARRAYFORMULA(_r=D2))))); "")))

Vous pouvez éditer les plages _colCat (colonne des catégories) et _tblRefs (la plage où se trouvent les numéros de référence) facilement.

A la fin de la formule vous avez D2 qui correspond à la référence cherchée.

Le fonctionnement en lui-même est le même que QUERY mais l'avantage c'est que si votre plage de références à chercher est plus large, vous n'avez pas à éditer la SEQUENCE (j'imagine que c'est ce que vous avez pu oublier).

Sans accès au fichier, je ne peux pas trop t'aider...

Je vois que tu as des cases vides dans les catégories, alors que dans ton exemple c'étaient des X.

Essaie de vérifier si ça a un impact...

Bonjour Saboh,

Merci beaucoup pour cet autre formule ! Celle-ci fonctionne parfaitement si je défusionne mes cases. Ce qui, en soit, ne me dérange pas.

Je n'avais jamais utilisé la fonction "LET", elle semble très pratique.

@Filoche, Merci, tu as effectivement raison : il faut que mon tableau de données soit bien complété. Et maintenant, ça marche aussi.

Vous êtes vraiment très fort ! J'ai l'embarras du choix maintenant.

Merci beaucoup à tous les deux, ça va me permettre d'avancer beaucoup plus vite ! Merci pour votre temps et pour les explications, je pourrais reprendre ce que j'ai appris pour les fois prochaines

Ah oui bien vu les cellules fusionnées c'est toujours un problème avec les formules. Dans la mesure du possible évite-les toujours pour ce qui est "données" => c'est juste de la mise en page.

Content d'avoir pu aider, bonne journée.

Rechercher des sujets similaires à "recherche contenu recuperer titre categorie"