2017-06-16 4 views
1

Je dois faire une feuille qui contiendra chaque code de commande, adresse, quantité et dates dans une rangée pour chaque code de commande. J'ai la feuille "Données" avec les commandes (adresse, code produit, quantité et numéro de commande) et je dois le mettre dans une autre feuille "Exporter" dans un ordre spécifique. Y at-il un moyen de le faire avec des fonctions ou un script?Filtrer les données de commande aux lignes

J'ai fait un tableur de test afin que chacun puisse voir aperçu de ce que je dois: test sheet

Par exemple, j'ai Adresse ID A001, je dois obtenir chaque code et la quantité de cet ID d'adresse et de mettre en ligne, dans le test feuille de calcul j'ai fait un exemple.

Désolé si je demande trop, mais j'ai besoin d'aide ou de conseils :)

image a été réalisée il serait plus facile à comprendre: picture

Répondre

0

L'opération dont vous avez besoin est appelé « UNPIVOT » et propose quelques solutions possibles, certaines purement fonctionnelles et certaines utilisant Google Apps Script. Rechercher "unpivot" pour les explorer. Voici une des solutions fonctionnelles possibles. Il est simplifié par rapport à vos besoins précis car je ne suis pas sûr de savoir lequel de vos en-têtes («dimensions») est unique. Je suppose ici que seul le code du produit et l'identifiant de l'adresse sont uniques, car cela ressemble à ceci dans les données.

Faire une nouvelle feuille de calcul et mettre la formule ci-dessous dans A1:

=arrayformula(
    split(
    transpose(
     split(
     concatenate(
      arrayformula(Data!$A$5:$A & "|" &Data!$C$3:$G$3 & "\" 
     ) 
     ); 
     "\") 
    ); 
    "|") 
) 

Ensuite, mettre une autre formule en C1:

=arrayformula(
    vlookup(A1:A; Data!$A$5:$G; match(B1:B; Data!$C$3:$G$3; 0)+2; 0) 
) 

Cela vous donnera l'idée rudimentaire de la façon de construire d'abord la liste de toutes les combinaisons possibles de valeurs de dimension (Code, ID d'adresse dans ce cas), puis remplissez les valeurs dépendantes possibles en utilisant VLOOKUP. Ensuite, vous pouvez utiliser plus de VLOOKUPS pour ajouter plus de colonnes si nécessaire.

+0

Merci pour l'information! Mais atm j'ai une erreur avec cette formule, parce que j'ai trop de données (le résultat du texte de CONCATENATE est plus long que la limite de 50000 caractères) Que puis-je faire pour l'éviter? – Anada

+0

Une chose que vous pouvez faire est de "diviser pour régner", c'est-à-dire faire plusieurs formules qui fonctionnent sur différentes parties de vos données et joindre les résultats. Mais je soupçonne que dans ce cas, cela peut valoir la peine de rechercher des solutions de script. – ttarchala

+0

Je vois. Des indices sur la façon de le faire dans le langage de script? Vous ne voulez pas diviser les données dans plusieurs feuilles de calcul: / – Anada