Graphique des présents par mois

Accueil – Le CFO masqué Forums Power BI Graphique des présents par mois

  • Ce sujet contient 3 réponses, 3 participants et a été mis à jour pour la dernière fois par j.brochard, le il y a 10 mois et 1 semaine.
4 sujets de 1 à 4 (sur un total de 4)
  • Auteur
    Articles
  • #132103
    j.brochard
    Participant

    Bonjour,

    J’ai une liste de collaborateurs avec une date de début et une date de fin de présence
    Prénom Date début Date fin
    Fred 01/01/2020 01/05/2023
    Tonio 01/04/2021 01/03/2024
    Miranda 01/12/2020 01/12/2023

    , et je souhaiterais obtenir un graphique mensuel du nombre de présents.

    Est-ce possible ?

    Je vous remercie par avance.

    #132154
    Daniel
    Participant

    Bonjour j.brochard, le Forum,

    Pour pouvoir compter le nombre d’employés présents entre les dates de début et les dates de fin, je procéderais de la façon suivante :
    1 – Création d’une fonction en langage M (power query). Celle-ci va créer une date (début du mois) pour chaque mois contenu entre la date de début et la date de fin.
    Nom de la fonction : fxRépartitionDateDébutMoisEntreDeuxDates
    let
    Source = (DateDebut as date, DateFin as date) =>

    let
    NoOfIntervals = (Date.Year(DateFin)*12+Date.Month(DateFin))-(Date.Year(DateDebut)*12+Date.Month(DateDebut)),
    Result = List.Transform({0..NoOfIntervals}, each Date.AddMonths(From, _))
    in Result
    in
    Source
    2 – Ensuite dans ma table contenant les données, on va créer une nouvelle colonne dans laquelle on indiquera le nom de la fonction avec deux paramètres date de début et date de fin
    = Table.AddColumn(tabData_Table, “Date Présence”, each fxRépartitionDateDébutMoisEntreDeuxDates([Date début],[Date fin]))
    3 – Dans Power BI, il pourrait être utile de travailler avec une table Calendrier, dans ce cas, il faudra créer une relation sur la date de la table Calendrier et la date de présence à l’effectif. Ensuite dans un visuel, on indiquera le champ de la table Calendrier MoisAnnée sous la forme (Janvier 2021 par exemple) et une mesure NbEmployes (“calculate(count(tabData[Prénom]))”).
    Avec un slicer (segment) sur les années et un graphique en barres, cela devrait faire l’affaire.
    Cordialement
    Daniel

    #132161
    Xavier Allart
    Participant

    Bonjour
    En partant de la réponse donnée par Daniel, juste pour le plaisir, je vous propose cette variante :
    La liste des dates (mois année) est crée dans une table qui servira de calendrier. Cette table aura comme bornes la date d’arrivée la plus ancienne et la date de départ la plus récente.

    **Étape 1 : Importer vos données**
    Charger les données, j’ai nommé cette table « Collaborateurs »
    Prénom | Date début | Date fin
    ———–|————|————
    Fred | 01/01/2020 | 01/05/2023
    Tonio | 01/04/2021 | 01/03/2024
    Miranda | 01/12/2020 | 01/12/2023

    **Étape 2 : Créer une table de dates personnalisées**

    Dans l’éditeur Power Query,
    Créer une nouvelle requête vide en sélectionnant “Nouvelle source” > “Requête vide”.
    Renommer là “Dates”
    Passer en éditeur avancé “Accueil” > “Editeur avancé”.
    Copier/Coller le code suivant :
    let
    DateDebut = List.Min(Collaborateurs[Date début]),
    DateFin = List.Max(Collaborateurs[Date fin]),
    NoOfIntervals = (Date.Year(DateFin)*12+Date.Month(DateFin))-(Date.Year(DateDebut)*12+Date.Month(DateDebut)),
    DatesMensuelles = List.Transform({0..NoOfIntervals}, each Date.AddMonths(DateDebut, _)),
    #”Converti en table” = Table.FromList(DatesMensuelles, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #”Type modifié” = Table.TransformColumnTypes(#”Converti en table”,{{“Column1″, type date}}),
    #”Colonnes renommées” = Table.RenameColumns(#”Type modifié”,{{“Column1”, “Date”}})
    in
    #”Colonnes renommées”

    **Étape 3 : Relation entre les tables**
    Dans Power BI Desktop,
    Appliquer les modifications.
    Aller dans l’onglet “Vue de Modèle”.
    S’il existe une relation entre les deux tables, supprimer là.

    **Étape 4 : Créer des mesures DAX**
    Dans Power BI Desktop, aller dans l’onglet “Affichage du rapport”.
    Sélectionner la table ” Collaborateurs ”
    Cliquez sur “Nouvelle mesure” pour créer une mesure DAX qui comptera le nombre de présents pour chaque mois en fonction des dates de début et de fin de vos collaborateurs.
    Copier/Coller le code suivant à la place de “Mesure = ”
    Nombre de Présents =
    COUNTROWS(FILTER(Collaborateurs, [Date début] <= MAX(Dates[Date]) && [Date fin] >= MIN(Dates[Date])))

    **Étape 5 : Créer un graphique**
    Créer un graphique (par exemple, un graphique en colonnes empilées) dans votre rapport.
    Utiliser la mesure “Nombre de Présents” comme valeur de votre axe Y (valeurs) et la colonne “Dates[Dates]” de la table de dates personnalisées comme valeur de votre axe X (catégories).
    En suivant ces étapes, vous devriez être en mesure de créer un graphique mensuel du nombre de présents en fonction des dates de début et de fin de vos collaborateurs en utilisant Power Query et Power BI.

    Attachments:
    You must be logged in to view attached files.
    #132171
    j.brochard
    Participant

    Bonjour Messieurs,

    Merci à tous les deux, je vais tester vos deux approches en application à mes données.

    Je vous remercie pour le temps que vous avez passé sur vos réponses.
    J’étais clairement loin de la réponse (quelle qu’elle soit :)).

    Cordialement

    Johnny

4 sujets de 1 à 4 (sur un total de 4)
  • Vous devez être connecté pour répondre à ce sujet.