J'ai des données essentiellement une liste d'éléments et une autre feuille contenant une liste des commandes (certains éléments peuvent apparaître dans plusieurs commandes, c'est pourquoi je ne peux pas utiliser de vlookup pour cela)

Mon problème est que je veux obtenir tous les identifiants de commande de tous les éléments de la liste dynamique (dans mon exemple, il n'y a que 3 articles, mais cela peut se développer.

J'essaie d'utiliser la formule de filtrage et j'y ai jusqu'à présent:

=filter('Orders'!AC1:AD,'Orders'!K:K=A4)

enter image description here

Ce qui fonctionne bien pour récupérer tous les identifiants de commande pour le numéro d'article dans la cellule A4.

Mais je veux que l'ID de commande est pour tous les articles de la colonne A.

J'ai essayé

=filter('Orders'!AC1:AD,'Orders'!K:K=A2:A)

Mais cela ne fonctionne pas. Je suppose que j'ai besoin de faire une sorte de formule de tableau peut-être.

Mais je ne peux pas le comprendre.

0
Michael Liew 4 mai 2021 à 13:11

1 réponse

Meilleure réponse

Vous pouvez utiliser QUERY fonction

Ceci est une syntaxe SQL comme manipuler vos données.

=query({Orders!$A:$B},"select Col2 where Col1 matches '"&textjoin("|",true,unique(Summary!$A4:$A))&"' ",1)

Ou cela si vous avez besoin de trier le résultat:

=query({Orders!$A:$B},"select Col2 where Col1 matches '"&textjoin("|",true,unique(Summary!$A4:$A))&"' order by Col2 ",1)

Le premier argument est la plage que vous souhaitez interroger. Ce qui est dans ce cas inséré avec le Notation de tableau {{x0} }.

L'argument suivant est une chaîne représentant une déclaration SQL comme indique que, dans ce cas, "Sélectionnez la colonne 2 lorsque la colonne 1 correspond à l'élément A ou élément C ou élément D".

La pièce "Item A ou Item c ou élément D" est construite avec une autre formule, {{x0} }. Il suffit de saisir la plage pour rejoindre et le délimiteur est défini sur le ou l'opérateur qui est |.

1
iansedano 4 mai 2021 à 12:49