Sum & GroupBy

Tagged: 

  • Sum & GroupBy

    Posté par Vince sur 24 février 2022 at 13h05

    Bonjour à tous

    J’essaie de sorti des statistiques d’une liste, et une fois que ça se complexifie un peu je galère.

    Depuis ce matin je cherche à créer une collection dans laquelle je veux regrouper :
    – des destinataires
    – Les Items qui les concernes
    – La somme des points obtenus par items
    J’en suis arrivé à ceci:
    Je crée ma collection ;
    ClearCollect(Collection1;{Dest:””;Item:””;Note:””});;
    Je boucle sur ma liste des destinataires :
    ForAll(LesDest;
    Pour chaque destinataire trouvé
    ForAll(GroupBy(Filter(T_Liste_Aprob_Labo;Destinataire = Result);
    “Item”;”GpItems”).Item;
    Patch(Collection1;Defaults(Collection1);
    {
    Dest:Result;
    Item:Item;
    Note:Sum(Filter(T_Liste_Aprob_Labo;
    Destinataire=Result;
    Item=Item
    );Cotation)
    }
    )
    )
    )

    J’obtiens ceci:

    Mais pas de somme dans la colonne ‘Note’ … 😰 😬

    Que n’ai-je pas fait ou pas bien fait ???

    PostID=LlIQdn63N0mXx2W

    R3dKap a répondu 1 year, 4 months ago 1 Membre · 10 Réponses
  • 10 Réponses
  • R3dKap

    Member
    24 février 2022 at 14h22

    @Vince je crois que le mieux, pour que je puisse t’aider, c’est si tu pouvais me proposer une liste de quelques valeurs de tes listes LesDest et T_Liste_Aprob_Labo (en me précisant les formats des colonnes) et de me dire, en fonction de ces valeurs, ce que tu attends comme résultat dans Collection1.

    Dans un p’tit fichier Excel ça serait parfait… 😉

    CommentID=idDnoQ48kyRU5Gv, PostID=LlIQdn63N0mXx2W

    • Vince

      Member
      24 février 2022 at 14h46

      Voici un exemple de données.

      Merci Manu

      SubCommentID=o0UUx150ASfxTRo, CommentID=idDnoQ48kyRU5Gv, PostID=LlIQdn63N0mXx2W

  • R3dKap

    Member
    24 février 2022 at 16h51

    Nickel…

    Alors voilà la formule :

    SortByColumns(n    AddColumns(n        GroupBy(n            <Ta liste>; n            "Destinataire"; n            "Item"; n            "Group"n        ); n        "Somme";n        Sum(Group; Cotation)n    );n    "Destinataire";n    Ascending;n    "Item";n    Ascendingn)

    En fait tu peux pas faire la somme via le GroupBy(). Faut la rajouter après… 😉

    CommentID=YyJ8UeZHBGhJJsp, PostID=LlIQdn63N0mXx2W

    • Vince

      Member
      24 février 2022 at 17h02

      Super Manu,
      … Que dire ? Merci d’abord, et c’est parfait(comme d’habitude)👍

      Bonne soirée 😉

      SubCommentID=AeKvRmsr3XkrVUY, CommentID=YyJ8UeZHBGhJJsp, PostID=LlIQdn63N0mXx2W

    • Vince

      Member
      25 février 2022 at 6h40

      Hello Manu,
      J’ai encore une question.
      J’ai essayé d’ajouter un comptage des Item, mais (bien-sur) je m’y prends mal…

      Vince

      SubCommentID=jfdOKV0E38fX8x7, CommentID=YyJ8UeZHBGhJJsp, PostID=LlIQdn63N0mXx2W

    • R3dKap

      Member
      25 février 2022 at 9h34

      Effectivement. La fonction Count() n’existe pas. Utilise CountRows() à la place :

      CountRows(Group)

      T’as la liste de toutes les fonctions ici si tu veux :

      SubCommentID=NHoYXTD8GIkpFNB, CommentID=YyJ8UeZHBGhJJsp, PostID=LlIQdn63N0mXx2W

    • Vince

      Member
      1 mars 2022 at 12h11

      Je pense que j’avais essayé CountRows()
      J’ai toujours une erreur

      SubCommentID=T6NPLBJw6or6n5s, CommentID=YyJ8UeZHBGhJJsp, PostID=LlIQdn63N0mXx2W

    • Vince

      Member
      1 mars 2022 at 12h40

      Je pense avoir trouvé

      “Somme”;Sum(Group; Cotation);

      “Compte”;Sum(Group;1)*5 (5 = la cote maximum de l’évaluation ex 3/5)

      Je dois faire des tests avec plusieurs évaluations pour vérifier

      SubCommentID=Opvd1KAkzUTUaoT, CommentID=YyJ8UeZHBGhJJsp, PostID=LlIQdn63N0mXx2W

    • R3dKap

      Member
      2 mars 2022 at 10h05

      Pour ta capture où on voit l’erreur “Nombre d’arguments non valide” c’est parce-qu’il manquait le “t” à tes 2 fonctions CountRows()… 😉

      Mais tu l’as sûrement vu depuis…

      SubCommentID=aO8HbrKy6IgUniK, CommentID=YyJ8UeZHBGhJJsp, PostID=LlIQdn63N0mXx2W

    • R3dKap

      Member
      2 mars 2022 at 10h06

      Mais attention, CountRows() ne prend qu’un seul paramètre. Et après, ça dépend de ce que tu veux faire… Compter ou faire la somme ?

      SubCommentID=pS427WK9urOvnfo, CommentID=YyJ8UeZHBGhJJsp, PostID=LlIQdn63N0mXx2W

Connectez-vous pour répondre.