Comptage de points avec CountIF

Étiquetté : ,

  • Comptage de points avec CountIF

    Posté par Aurélien sur 20 janvier 2025 à 16h36

    Bonjour à tous,

    Je vous sollicite pour avoir votre aide sur une fonction Count ou CountIf. J’ai créé une application avec des questions style grille d’audit. Je compte les points en fonction de la réponse donnée.

    Réponse A = 1 point

    Réponse B = 2 points

    Aucune réponse = 0 points

    Je souhaiterais pourvoir avoir en bas de page avoir un comptage en fonction du point affecté. Par exemple : 10x – 1 points / 5x – 2 points etc… Ces points seront ensuite à enregistrer dans une colonne d’une SharepointListe.

    Je pensais utiliser comme dans Excel utilisé une fonction de comptage mais cela ne fonctionne pas.

    Auriez vous une astuces ou une méthode que je pourrais utilisé ?

    Je vous remercie par avance.

    Aurélien

    Steve a répondu Il y a 2 semaines, 3 jours 2 Membres · 3 Réponses
  • 3 Réponses
  • Steve

    Membre
    20 janvier 2025 à 18h09

    Bonjour Aurélien,

    Le CountIf est la bonne solution pour cette problématique.

    N’hésites pas à détailler ton exemple pour voir où se situe ton anomalie.

    Peux tu essayer le cas suivant :

    Crée une gallerie (Gallery1) avec dans items

    [
    {
    question: “Question 1”;
    point: 2;
    valide: true
    };
    {
    question: “Question 2”;
    point: 2;
    valide: true
    };
    {
    question: “Question 3”;
    point: 1;
    valide: true
    };
    {
    question: “Question ‘”;
    point: 2;
    valide: false
    }
    ]

    Met ensuite dans un label de l’écran la formule suivante :

    CountIf(Gallery1.AllItems;valide=true && point=2)

    Tu verras que le retour de cette formule sera de 2, soit 2 questions à 2 points répondu favorablement

    Bon courage

    <div> </div>

    • Cette réponse a été modifiée Il y a 2 semaines, 4 jours par  Steve.
    • Cette réponse a été modifiée Il y a 2 semaines, 4 jours par  Steve.
  • Aurélien

    Membre
    21 janvier 2025 à 9h21

    Bonjour Steve,

    Merci pour tes éléments de réponses. Je vais tenter d’expliquer plus en détails car je n’arrive pas à mettre en application ce que tu m’as indiquer ci-dessus.

    J’ai une liste Sharepoint qui compile les données. Mon application est composé de 7 écran.

    Sur ces 7 écrans j’ai des questions qui sont répartis par thème (Charge suspendu, etc…) ce qui permets à l’utilisateur de pouvoir renseigner seulement une ou plusieurs question(s) via l’utilisation d’un Toogle (Photo ci-dessous).

    La réponse se fait avec une liste déroulante (SharepointListe) via un edit form (Voir photo ci-dessous). La zone de texte en dessous permet le cas échéant de renseigner un commentaire (COM).

    J’ai à la fin du formulaire un bouton avec un Patch qui me sauvegarde toutes les données des edits forms des 7 écrans.

    Pour en revenir à mon problème, c’est comment pouvoir avoir le comptage par point affecté à chaque questions sur l’écran, puis les enregistrer dans une colonne de ma SharepointListe.

    Du coup par rapport à ta solution, pour mettre en place la gallerie c’est compliqué car je veux pouvoir cliquer sur “enregistrer” qu’une fois à la fin du questionnaire et sauvegarder les données à ce moment là.

    J’espère avoir été plus clair 😅

    En tout cas merci pour le temps que tu m’accordes à m’aide

    Aurélien

  • Steve

    Membre
    21 janvier 2025 à 11h45

    Hello Aurélien,

    Merci pour les précisions 🙂

    Au final tout dépend de ta structure de liste

    Je pense que tu as une liste globale Sharepoint avec toutes les questions et avec une rubrique pour les séparés dans ton application.

    De ce que je comprend tu as ensuite 7 écrans, un écran par rubrique.

    Si on laisse en l’état, tu peux faire un truc du genre :

    CountIf(laListeSharepoint, point = 5 && ID in (Filter(Gallery1.AllItems;Toggle_1.Value = true)))

    Ici la première source de données est ta liste Sharepoint auquel on filtre par rapport au nombre de point

    On regarde ensuite si la question est présente dans la Gallery1 (on suppose que c’est l’écran 1) et si le toggle est actif.

    Dans la bonne pratique, si tes 7 écrans sont similaires, je te conseil de tout regrouper dans un seul et même écran, voici quelques idées :

    • Tu crée une collection avec les 7 rubriques et une position de 1 à 7
    • Tu met toutes tes questions de ta liste Sharepoint dans une collection
    • Tu commence avec une variable position à 1 qui affiche la première rubrique
    • Tu affiche les éléments de la collection de question dans une gallery
    • A chaque onchange de toggle, tu patch l’item de la gallery (ça enregitrera dans la collection uniquement et pas dans la liste Sharepoint)
    • tu met un bouton suivant qui affiche la rubrique suivante (position +1)
    • tu met un bouton précédent qui affiche la rubrique précédente
    • Si position = nb rubrique, tu affiche un bouton sauvegarder qui parcours la collection et l’enregistre sur Sharepoint

    Si tu fais cette solution, tu pourras facilement utiliser les CountIf

    Pour plus de fluidité, tu peux améliorer le point 4. En effet si on laisse tel quel, a chaque mouvement de toggle, PowerApps va rafraichir la gallery car on met à jour la collection, l’idée serait d’afficher plutôt la liste Sharepoint en items et de laisser le patch sur la collection dans le onChange du toggle

    Si c’est pas clair n’hésites pas

    Bon courage

Connectez-vous pour répondre.