Sum & GroupBy

Étiquetté : 

  • Sum & GroupBy

    Posté par Vince sur 24 février 2022 à 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 Il y a 2 mois, 3 semaines 1 Membre · 10 Réponses
  • 10 Réponses
  • R3dKap

    Membre
    24 février 2022 à 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

      Membre
      24 février 2022 à 14h46

      Voici un exemple de données.

      Merci Manu

      SubCommentID=o0UUx150ASfxTRo, CommentID=idDnoQ48kyRU5Gv, PostID=LlIQdn63N0mXx2W

  • R3dKap

    Membre
    24 février 2022 à 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

      Membre
      24 février 2022 à 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

      Membre
      25 février 2022 à 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

      Membre
      25 février 2022 à 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

      Membre
      1 mars 2022 à 12h11

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

      SubCommentID=T6NPLBJw6or6n5s, CommentID=YyJ8UeZHBGhJJsp, PostID=LlIQdn63N0mXx2W

    • Vince

      Membre
      1 mars 2022 à 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

      Membre
      2 mars 2022 à 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

      Membre
      2 mars 2022 à 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.