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 1 année et 4 mois.
-
AuteurMessages
-
7 septembre 2023 à 5 h 42 min #132103j.brochardParticipant
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.
8 septembre 2023 à 15 h 16 min #132154DanielParticipantBonjour 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
Daniel9 septembre 2023 à 2 h 08 min #132161Xavier AllartParticipantBonjour
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.11 septembre 2023 à 2 h 37 min #132171j.brochardParticipantBonjour 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
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.