Empiler les valeurs de plusieurs colonnes à nombre de ligne variable
Bonjour à la communauté, je m'arrache les cheveux sur le problème suivant (qui fonctionne si je mets des plages de données exactes, mais pas dans le cas où je peux avoir un nombre de lignes variable...)
Pour des raisons de facilité de remplissage et de besoin de protection de certaines cellules selon une donnée oui/non, j'ai une feuille qui, dans un premier groupe de colonnes a des valeurs de quantités, prix, nom de fournisseur, etc, et dans un autre groupe de colonnes, a aussi des valeurs de ce type, les noms de colonnes étant soit identiques soit différents selon le groupe. Pour en faire la synthèse via un TCD, je cherche un moyen de regrouper les informations semblables des 2 groupes de colonnes, et c'est là que je coince. En effet si il y a un fournisseur commun dans le premier groupe et dans le deuxième, je veux que cela se consolide dans le TCD. Mais vu que l'info est dans 2 colonnes différentes (et cela doit être ainsi), ça ne marche pas.
J'ai dégrossi en faisant une nouvelle feuille avec une fonction query qui me ramène uniquement les colonnes qui m'intéressent (c'est-à-dire qui ont "oui" dans 'commande nécessaire' ou "oui" dans 'commande nécessaire OUI/NON') .
Voici à quoi ressembleront mes données issues de Query ;
| Code article | Descriptif | Commande nécessaire | Fournisseur prioritaire | Qté retenue | Coût HT retenu | Commande nécessaire OUI/NON | Qté retenue | Fournisseur retenu | Coût HT retenu |
| TEN-AL-H | groupe de sécurité xxx | OUI | tartempion | 12 | 144,00 € | 0,00 € | |||
| MAS-SI-E | liaison frigo fff | OUI | machin | 90 | 1 260,00 € | 0,00 € | |||
| code 1 | descriptif 1 | OUI | tartempion | 40 | 800,00 € | 0,00 € | |||
| code 2 | descriptif 2 | OUI | machin | 23 | 161,00 € | 0,00 € | |||
| code 3 | descriptif 3 | #N/A | #N/A | OUI | 5 | trucmachin | 40,00 € | ||
| code 4 | descriptif 4 | #N/A | #N/A | OUI | 5 | trucmachin | 65,00 € |
Je veux ensuite empiler les colonnes de mon choix si je puis dire, c'est à dire regrouper dans le premier groupe (ou dans une autre feuille, peu importe) toutes les données et ainsi avoir une seule colonne "fournisseur", une seule colonne "coût", une seule colonne "quantité", etc... Et là, rien de plus simple pour faire le TCD. Et pas grave si des lignes vides sont déplacées (les 4 premières de la partie de droite si vous voyez ce que je veux dire), le TCD fera le ménage, c'est juste la synthèse qui m'intéresse.
Et je veux que cela fonctionne quel que soit le nombre de lignes de mon tableau initial, car son nombre de lignes peut varier d'une semaine sur l'autre.
J'ai essayé avec les accolades mais ça ne marche pas, il semble que Sheets ait un souci avec sa limitation de nombre de lignes (même si mon tableau ne fait que quelques lignes ; mais je me trompe peut-être).
D'avance merci de votre aide !
Bonjour,
As-tu essayé avec la fonction VSTACK ?
https://atelier-informatique.com/2024/comment-empiler-les-tables-verticalement-avec-vstack/
Cordialement,
Fil.
Bonjour @Filoche,
Excellente suggestion, merci. Je viens d'essayer de faire la chose suivante :
- faire 2 sets de données avec Query (car vu comme sont fichues mes données, sinon je perds la référence code article en empilant les colonnes telles qu'elles sont. J'obtiens alors 2 sets de données qui sont prêts à être empilés.
- les transformer en tableau pour que VSTACK puisse prendre en compte le fait que j'aurai des listes à nombre de lignes variable d'un jour à l'autre
Mais là problème, car transformer les données en tableau et avoir des données issues de la fonction Query ne semble pas possible...
Une idée pour avancer sur ce point ?
update : j'ai résolu le souci en ajoutant une ligne d'en-tête au-dessus. C'est "moche" mais ça marche, je peux alors mettre les données au format tableau. et utiliser VSTACK pour empiler les 2 tableaux .Mais je me retrouve confronté au même problème qu'initialement : si je définis une plage de données précise pour en faire un tableau, si à l'update d'après j'ai des lignes en plus ramenées par la fonction Query, elles se retrouvent en-dessous du tableau, pas dans le tableau. Et si je crée le tableau en indiquant juste les colonnes que je veux y mettre, mais le tableau a une longeur infinie (enfin égale au nombre de lignes du document). Et il m'est alors impossible d'utiliser VSTACK car ça me dit qu'il manque des lignes. En effet ça prend en compte les lignes vides, donc si mon premier tableau fait 1000 lignes car ma feuille a 1000 lignes, et que le deuxième fait aussi 1000 lignes, VSTACK me demande d'ajouter 1000 lignes. Mais ça rallonge alors d'autant les tableaux, et le problème est insoluble...
Une idée ?
Si tu peux poster une copie de ta feuille google sheets, car là ce n'est pas simple de répondre sans faire des tests... 😉
Bonjour à tous,
D'accord avec Filoche, une copie de travail du fichier en accès libre serait très pratique.
A mon avis vous ne travaillez pas avec les bons outils, vous devriez Utiliser des tableaux dans Google Sheets - Aide Éditeurs Google Docs, afin de ne travailler qu'avec les lignes utiles de votre feuille.