Compter le nbr d'enregistrements identiques, et intégrer ce nbr dans une table

  • Compter le nbr d'enregistrements identiques, et intégrer ce nbr dans une table

    Posté par Stephanie sur 2 avril 2025 à 15h51

    Bonjour à tous,

    Pourriez vous m’aider sur un sujet pour lequel je bloque depuis pas mal de temps ?

    Ma source de données étant une liste Sharepoint, je souhaiterai Compter le nombre de ligne ayant la même valeur dans la colonne “Mois_demande”, en l’occurrence le nom du mois, et en faire une somme, un peu comme un GroupBy, mais qui pourrait être stockée dans une variable, pour être injectée dans une table comme ci-dessous (mon approche est peu être mauvais):

    L’idée est d’avoir un tableau de ce type :

    Depuis ma liste qui ressemble à ça :

    Pour obtenir au final ceci (je l’ai obtenu en écrivant les valeurs manuellement dans ma collection):

    Mais j’avou que je ne sais pas vraiment comment m’y prendre.

    J’ai commencé par définir une collection dans laquelle je rentre mes 12 Mois “manuellement”, et j’aurai souhaité parcourir ma colonne “Date_Demande” et faire une somme par mois. Et la même chose pour “Date_Delai”. Et pour chaque ligne, saisir la valeur obtenue.

    Je ne sais pas si ma méthode est la bonne… Je sais qu’il est possible de faire un GroupBy, mais dans mon cas de figure ça ne marche pas car si je groupe sur la colonne “Date_Demande”, je vais perdre mes informations sur ma somme de “Date_Delai”.

    Avez vous des idée sur la manière de procéder?

    Merci d’avance pour votre aide !

    Fany

    • Cette discussion a été modifiée Il y a 2 jours par  Stephanie.
    Stephanie a répondu Il y a 7 heures, 34 minutes 3 Membres · 3 Réponses
  • 3 Réponses
  • Wangboho Lassina

    Membre
    2 avril 2025 à 16h37

    Bonjour Stephanie,

    Je pense qu’avec un forall tu peux y arriver. Je m’explique.

    Dans un premier temps tu crées une table vide qui sera ta table finale :

    ClearCollect(
    RésuméParMois,
    Table(
    { Mois: “Janvier”, NbRendu: 0, NbDelai: 0 },
    { Mois: “Février”, NbRendu: 0, NbDelai: 0 },
    { Mois: “Mars”, NbRendu: 0, NbDelai: 0 },
    { Mois: “Avril”, NbRendu: 0, NbDelai: 0 },
    { Mois: “Mai”, NbRendu: 0, NbDelai: 0 },
    { Mois: “Juin”, NbRendu: 0, NbDelai: 0 },
    { Mois: “Juillet”, NbRendu: 0, NbDelai: 0 },
    { Mois: “Août”, NbRendu: 0, NbDelai: 0 },
    { Mois: “Septembre”, NbRendu: 0, NbDelai: 0 },
    { Mois: “Octobre”, NbRendu: 0, NbDelai: 0 },
    { Mois: “Novembre”, NbRendu: 0, NbDelai: 0 },
    { Mois: “Décembre”, NbRendu: 0, NbDelai: 0 }
    )
    )

    Ensuite avec un forall, tu parcours l’ensemble de ta table ci-dessus et tu insères le résultat du décompte que tu feras :

    ForAll(
    RésuméParMois,
    Collect(
    RésuméParMois,
    Patch(
    RésuméParMois,
    LookUp(RésuméParMois, Mois = ThisRecord.Mois),
    {
    NbRendu: CountRows(Filter(SharePointList, Text(Mois_rendu) = ThisRecord.Mois)),
    NbDelai: CountRows(Filter(SharePointList, Text(Mois_delai) = ThisRecord.Mois))
    }
    )
    )
    )

    Je ne sais pas si cela répond à ton problème mais si c’est le cas, un retour me ferait plaisir.

    Cordialement,

    SORO LASSINA

  • DavidZed

    Membre
    4 avril 2025 à 7h21

    Si c’est pour de l’affichage uniquement, tu peux utiliser une galerie avec en source la liste des mois (1 à 12) :

    Sequence(12)

    Dans cette galerie, tu pourrais disposer 3 TextLabel :

    • NomDuMois : Text(Date(2025; ThisItem.Value; 1); “dddd”)
    • NbrDemande : CountIf(MaCollection; Month(Date_Demande) = ThisItem.Value)
    • NbrRendu : CountIf(MaCollection; Month(Date_Delai) = ThisItem.Value)

    Attention, à utiliser avec une collection filtrée sur l’année uniquement et un jeu de données pas trop volumineux

  • Stephanie

    Membre
    4 avril 2025 à 9h07

    Bonjour,

    Et merci à vous deux pour vos réponses. Je n’ai malheureusement pas encore eu le temps de tester vos solutions, (ni de répondre plus tot) mais cela semble correspondre à ce que je recherche. Dans tous les cas, je vous ferai un retour pour vous dire si les solutions ont fonctionné.

    Il s’agit effectivement d’affichage, car je souhaite uniquement utiliser ces données pour informations, et comme source de donnée pour un graphique par exemple (pourcenatge, etc).

    Merci encore à vous, je reviens vers vous dès que possible pour vous faire un retour.

Connectez-vous pour répondre.