Transposer seulement une colonne sur résultats multiples

La formule suivante :

=query({'SHEET1'!A2:J};"select Col4, Col5, Col6 where Col1 like '"&A5&"' and Col10 like '1'")

me renvoie les résultats sous cette forme :

Michel XAVIER 0384000000

Michel XAVIER 0600000000

Mon souhait, serait de n'avoir qu'une seule ligne et de n'avoir qu'une seule fois le nom (Col4), prénom (Col5) mais bien les 2 N° de téléphone(Col6).

j'ai tenté des transpose un peu dans tous les licences sans trouver la solution😢

Possible facilement en 2 ou 3 formules mais peu pratique et un peu lourd pour traiter beaucoup de données.

Pourriez-vous m'aider à faire cela en 1 seule formule ?

J'avais préparé un fichier test mais comme je suis une nouvelle je n'ai pas le droit de poster le lien, désolée

Merci :)

Bonjour,

Peut-être comme ça :

={unique(query(query({SHEET1!A2:J};"select Col4, Col5, Col6 where Col1 like '"&A5&"' and Col10 like 1 ");"select Col1, Col2 "))\iferror(map(unique(query(query({SHEET1!A2:J};"select Col4, Col5, Col6 where Col1 like '"&A5&"' and Col10 like 1 ");"select Col1 "));unique(query(query({SHEET1!A2:J};"select Col4, Col5, Col6 where Col1 like '"&A5&"' and Col10 like 1 ");"select Col2 "));lambda(m;n;(transpose(query({SHEET1!A2:J};"select Col6 where Col1 like '"&$A$5&"' and Col4 = '"&m&"' and Col5 = '"&n&"' and Col10 like 1 "))))))}

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

Cordialement,

Fil

Bonjour et merci pour votre réponse qui fonctionne très bien et très complexe de mon niveau.

N'ayant jamais vu ce type de formule, je ne parviens pas à intégrer un "map" ou un "Arrayformula" fonctionnel dans celle-ci, ou toute autre action pour ne pas avoir à la répéter sur 10000 lignes.

Bonjour,

La formule se développe toute seule et fonctionne quelque soit le nombre de lignes ; tu n'as pas besoin de la répéter !

Cordialement,

Fil.

Cette répétition sur chaque ligne ne semble pas fonctionner sur le fichier que je traite, la subtilité réside peut-être dans le fait que vous utilisez une référence unique en A5, quand le fichier à traiter utilise une référence par personne qui sont sont toutes en Ax ?

Je me suis permise d'utiliser votre fichier de démonstration pour mettre un exemple de données anonymisées, en espérant vous apporter plus de clarté dans ma requête.

Voilà pour avoir tout la plage :

={unique(query(query({'SOP 2'!A2:J};"select Col1, Col4, Col5, Col6 where  Col10 like 1 ");"select Col1, Col2, Col3 "))\iferror(map(unique(query(query({'SOP 2'!A2:J};"select Col1, Col4, Col5, Col6 where Col10 like 1 ");"select Col2 "));unique(query(query({'SOP 2'!A2:J};"select Col1, Col4, Col5, Col6 where  Col10 like 1 ");"select Col3 "));lambda(m;n;(transpose(query({'SOP 2'!A2:J};"select Col6 where  Col4 = '"&m&"' and Col5 = '"&n&"' and Col10 like 1 "))))))}

J'ai mis à jour dans ton exemple, si tu veux uniquement chercher par référence de la 1ère colonne; il suffit de faire une liste déroulante et ajouter un critère dans la formule...

Merci pour vos réponses, je me rends compte qu'il faut que je sois très précise dans ma demande, sinon je vous fait perdre du temps, mes excuses.

La récupération des références en A2:A se fait dans un premier onglet qu'on va nommer 'Feuille base', partant de ces références, le but est donc de trouver les références existantes aussi en 'Complément' pour afficher les données correspondantes (Nom, prénom, N° Tel 1 et Tel2) dans 'Résultats'.

Aussi j'ai adapté, cette fois j'espère, correctement votre fichier d'aide.

Encore désolée pour cette perte de temps pour vous.

Voilà avec la fonction BYROW/LAMDA :

En E2 :

=byrow(query(A2:A;"select A where A is not null ");lambda(ref;{unique(IFERROR(query(query({'Complément'!A2:J990};"select Col4, Col5, Col6 where Col1 like '"&ref&"' and Col10 like 1 ");"select Col1, Col2 ");"Aucun"))\IFERROR(map(unique(query(query({'Complément'!A2:J990};"select Col4, Col5, Col6 where Col1 like '"&ref&"' and Col10 like 1 ");"select Col1 "));unique(query(query({'Complément'!A2:J990};"select Col4, Col5, Col6 where Col1 like '"&ref&"' and Col10 like 1 ");"select Col2 "));lambda(m;n;(transpose(query({'Complément'!A2:J990};"select Col6 where Col1 like '"&ref&"' and Col4 = '"&m&"' and Col5 = '"&n&"' and Col10 like 1 "))))))}))

En I2 :

=byrow(query(A2:A;" select A where A is not null ");lambda(a;{unique(IFERROR(query(query({'Complément'!$A$2:$J$992};"select Col4, Col5, Col6 where Col1 like '"&a&"' and Col10 like 2 ");"select Col1, Col2 ");"Aucun"))\IFERROR(map(unique(query(query({'Complément'!$A$2:$J$992};"select Col4, Col5, Col6 where Col1 like '"&a&"' and Col10 like 2 ");"select Col1 "));unique(query(query({'Complément'!$A$2:$J$992};"select Col4, Col5, Col6 where Col1 like '"&a&"' and Col10 like 2 ");"select Col2 "));lambda(m;n;(transpose(query({'Complément'!$A$2:$J$992};"select Col6 where Col1 like '"&a&"' and Col4 = '"&m&"' and Col5 = '"&n&"' and Col10 like 2 "))))))}))

Parfait, merci beaucoup

Rechercher des sujets similaires à "transposer seulement colonne resultats multiples"