Power automate – GroupBy depuis un arrays variable

  • Power automate – GroupBy depuis un arrays variable

    Posté par Jmarc sur 4 juin 2025 at 11h52

    Hello les amis…
    J’ai besoin d’un peu d’aide , je filtre sur un Excel certaines colonnes que je recupere dans une variable de type Arrays .
    J’aimerais ensuite sur cet variable regrouper certaines valeurs par type de magasin .
    donc cela reviendrais a regrouper / magasin … J’ai essayais bcp de chose mais rien de concluant pour afficher ces valeurs en groupé. 👿

    Jmarc a répondu 11 months, 2 weeks ago 2 Membres · 4 Réponses
  • 4 Réponses
  • Julien

    Member
    4 juin 2025 at 14h38

    Bonjour Jmarc,

    Ce n’est effectivement pas un sujet trivial quand on commence, d’autant plus qu’il y a plusieurs façon de faire selon le contexte.

    [digression: pour ma part, je ne fais plus ça directement dans Power Automate : j’utilise ExcelScript qui fait tout le boulot d’aggrégation et de calcul. Power Automate ne fait qu’appeler le script en une seule action. Si tu es un peu geek pour programmer un peu, je trouve que ça vaut le coup de s’y mettre. N’hésites pas à ouvrir un nouveau poste dans le forum concerner pour qu’on voit ça. Enfin ici, c’est Power automate, alors allons-y

    Avant d’aller plus loin, il est impératif d’avoir la bonne manière de filtrer un tableau, or on voit sur la capture que ce n’est pas un acquis, travaillons d’abord à cela 😉

    Filtrer un tableau

    Pour filtrer un tableau (ou une table Excel) Il ne faut pas faire ForEach -> condition -> If.

    Il faut utiliser l’action Filtrer un tableau

    La différence : le nombre d’actions consommées. Une boucle ForEach qui fait 3 actions, consomme donc un nombre d’actions égale à 3x le nombre de lignes de la Table qu’elle parcourt. Si 500 lignes -> 1500 Action, et on n’a pas encore commencer à travailler !

    C’est très important ici car pour grouper les lignes, il va falloire filtrer la table plusieurs fois.

    Grouper Par

    Il y a plusieurs façon de faire, et je vais commencer à en developper une qui inclut quelsques astuces.

    Le principe général :

    1) récupérer les valeurs uniques de la colonne avec laquelle grouper (Magasin ici).

    2) pour chacune de ces valeurs uniques (une odeur de boucle For) : filtrer la table de base avec la valeur unique courante.

    Pour le 1er point, une astuce et d’utiliser l’action Selectionner pour ne conserver que la colonne Magasin. Puis ensuite, d’utiliser la fonction union() pour ne garder un seul exemplaire de chaque valeur.

    Pour le 2nd point, il ne reste qu’à parcourir ces valeurs uniques et s’en servir pour filtrer la table Excel de base :

    Je te laisse voir, faire des recherches sur ces fonctions, et essayer, et à dispo pour la suite

    Bon courage ! 💪

  • Jmarc

    Member
    4 juin 2025 at 15h59

    Merci Julien de ton aide ,

    J’ai compris la démarche , par contre je dois récupérer que les lignes dont la colonnes quantité est = 0
    dois je le faire avant le regroupement ou parés avoir regroupé ?
    Dans mon cas j’ai mis la condition avant est ce correct ?

  • Julien

    Member
    4 juin 2025 at 17h23

    Filtrer avant le regroupement oui c’est parfait si tu souhaites totalement exclure les Magasins qui n’ont que des lignes dont la colonne quantité est différente de zéro.

    Dans ce cas, une autre astuce : ça peut etre fait directement dans l’action Lister les lignes présentes dans un tableau :

    Dans les options avancées, il y a un tas de filtres disponibles parmi lesquelles Filter query. Ca ne fonctionne pas pour les comparaisons numériques (si tu voulais > 5 par exemple), mais ton filtre revient à: colonne quantité = ‘0’ (qui se traduit par quantite eq ‘0’)

  • Jmarc

    Member
    5 juin 2025 at 12h26

    👍je vais tester ça

Connectez-vous pour répondre.