QUERY : reporter des colonnes via une formule
Bonjour,
Ceci est mon premier message sur ce forum.
Pour faire une présentation rapide, il y a un mois mes connaissances en "tableurs en général" se limitaient à remplir des cases, faire des bordures, éventuellement quelques opérations basiques et c'est tout. Grâce à ce site/forum, je progresse chaque jour et découvre peu à peu le monde fascinant des fonctions, alors he bien merci !
Cela dit, je m'inflige des défis qui me dépassent manifestement et j'ai besoin de l'avis de personnes expérimentées.
Je dois mettre au point un fichier concernant un parc de machines de différents types, comportant chacun différents équipements, ou pas en fonctions des types.
Le but est de créer une "fiche machine" recensant les différents équipements par type machine, en excluant ceux qui ne sont pas concernés.
- La feuille "Nomenclature" recensant les équipements par type machine :
- La fiche machine :
Ici, pour le type machine 1, une simple fonction FILTER suffit à avoir le résultat attendu
Le problème arrive lorsque l'on veut changer de type machine. Je dois éditer la feuille au niveau des cases B4 et D4 pour aller chercher les colonnes correspondantes:
A noter que le report concerne TOUJOURS les colonnes 1 et 2 ("type équipement" et "Equipement") mais les colonnes suivantes dépendent du type machine.
De plus, j'aimerais dynamiser cela via un menu déroulant situé en D2.
Je suis donc parti sur l'élaboration d'une QUERY, afin d'aller chercher les colonnes qui m'intéressent, le tout en fonction de la valeur donnée par le menu déroulant en D2.
-En premier lieu, une fonction TEXTJOIN me permettant d'aller chercher les bonnes colonnes en comparant D2 et la liste "type machine":
On peut voir que ma fonction fonctionne (!!) car j'arrive à retrouver celles qui m'intéressent en H23, d'ailleurs quand je change la valeur via le menu déroulant en D2, la "liste" en H23 change et met les bonnes colonnes.
Par contre là ça se corse, parce que je n'arrive pas à l'intégrer à ma QUERY.
-Pour exemple, lorsque je tape en B4 ma QUERY, avec les colonnes renseignées "en manuel", cela fonctionne :
(A noter que pour l'instant, je n'ai pas encore appliqué de FILTER)
-Mais quand j'essaie d'intégrer la fonction entière "TEXTJOIN....", cela ne fonctionne pas.
Il me semble évident que c'est un problème de syntaxe, mais j'ai essayé beaucoup de choses et avant d'aller plus loin, je dois me (vous) poser la question de savoir si je fais fausse route ou non ?
Ce que je cherche à faire est-il possible?
Est-ce la bonne manière de procéder?
En existe-il une bien plus pratique?
Suis-je David? Mon problème est-il Goliath?
Tant de questions.
En tous cas, si vous êtes arrivés jusque là, merci de m'avoir lu
Et si vous avez des réponses, un merci encore plus grand !
Bonjour,
Il semble manquer un & à ce niveau : ... SELECT "&TEXTJOIN(...
J'ai rapidement lu, mais si vous voulez afficher la famille d'équipement, pourquoi ne pas utiliser =XLOOKUP( ?
Bonjour et merci !
En effet cela fonctionne avec le & ! (je suis pourtant certain d'avoir essayé mais ma formule devait comporter d'autres erreurs à ce moment
J'arrive donc bien à avoir les colonnes correspondantes à ma sélection dans mon menu déroulant D4:
Et lorsque que j'en change la valeur, les bonnes valeurs sont reportées ! Merci encore
Maintenant j'aimerais n'afficher que les lignes dont les colonnes "Format" et "Alimentation" contiennent une valeur (ne sont pas vides).
J'ai tenté de bidouiller avec une fonction FILTER en utilisant ma QUERY comme plage de référence mais je n'arrive à rien. J'ai tenté avec BYROW et une FILTER en LAMBDA, idem.
J'ai l'impression que je fais fausse route et que j'appréhende mal l'exploitation de mes données à la base, avez-vous un conseil à ce propos ?
(Concernant la fonction XLOOKUP/RECHERCHEX j'ai essayé de voir si cela pouvait convenir, mais étant donné que la plage de référence pour mon menu déroulant est différente de la plage de référence pour les colonnes à reporter, j'ai cru comprendre que ça ne pourrait pas fonctionner)
Bonjour,
Tu peux faire avec ça:
=Query(query({Nomenclature!$A$3:$H$10};"select "&textjoin..............+3));"select * where Col3 is not null and Col4 is not null")
Cordialement,
Fil.
Génial ! Ça fonctionne !
Il semblerait que je cherchais un peu compliqué/alambiqué, une fois la réponse donnée cela semble évidemment simple et logique.
J'aurais appris quelque chose en tous cas, merci beaucoup !