Club Power BI

Please login or click SIGN UP FOR FREE to create your PowerBIUG account to join this user group.
 View Only
  • 1.  Choix du calendrier pour Compter effectif avec une date d'entrée et une date de sortie

    Posted Dec 15, 2022 04:20 PM
    Bonjour à tous,
    j'ai une table avec une liste de salariés avec leur date d'entrée et de sortie

    J'ai relié ma table Calendar à ma date d'entrée (je pense que le problème vient de la)

    J'arrive à compter le nombre d'entrées et le nombre de sorties par mois, mais mon compte est faux quand je veux calculer l'effectif : 

    Nbre Emp =
        CALCULATE (
            COUNTROWS( Effective),
            Effective[DateE] <=  MAX ( 'Calendar'[Date] ),
            Effective[DateS] >= MIN ( 'Calendar'[Date] ),
            ALL('Calendar')
        )

    Exemple du tableau résultat :



    Mon "solde" n'est pas correct, comment puis je régler cela ?
    Est ce à cause de ma relation entre ma date d'entrée et le calendrier ?

    Merci pour votre aide.


    ------------------------------
    LAURENT SANCHEZ
    Formateur Consultant
    laurent@sanchezconsultant.com
    LE HAVRE
    662527022
    ------------------------------


  • 2.  RE: Choix du calendrier pour Compter effectif avec une date d'entrée et une date de sortie

    Posted Dec 16, 2022 04:14 AM
    Bonjour,

    Pour lier ta table de date à ta table des employés, tu peux aussi établir une relation entre Calendar'[Date] et Effective[DateS]. Quand il y a plusieurs relations entre deux tables, seule une peut être active dans la vue modèle mais tu peux solliciter les relations inactives dans une mesure en utilisant la fonction USERELATIONSHIP, donc tu peux désactiver les deux relations et recourir à cette fonction quand c'est nécessaire.

    Pour calculer l'effectif, tu peux tout d'abord faire une mesure "Nombre d'entrées" et une mesure "nombre de sorties"

    Nbre d'entrées =
        CALCULATE (
             COUNTROWS( Effective),
             'Effective'[DateE],
             USERELATIONSHIP ( 'Calendar'[Date], ' Effective'[DateE] )
       )

    Nbre de sorties =
        CALCULATE (
             COUNTROWS( Effective),
            'Effective'[DateS],
             USERELATIONSHIP ( 'Calendar'[Date], ' Effective'[DateS] )
       )

    Puis tu utilises les deux mesures pour calculer ton effectif à date :

    Effectif à date =
    VAR MaxDate =
        MAX ( 'Calendar'[Date] )
    RETURN
        CALCULATE ( [Nombre d'entrées] - [Nombre de sorties], 'Calendar'[Date] <= MxDate )

    Je suis loin d'être un expert,  mais j'espère que ça peut t'aider.


    ------------------------------
    Alexis Astier
    Auditeur
    ------------------------------



  • 3.  RE: Choix du calendrier pour Compter effectif avec une date d'entrée et une date de sortie

    Posted Dec 16, 2022 06:08 AM
    Bonjour,
    tout d'abord merci pour ce retour intéressant, qui fonctionne bien pour compter les entrées et les sorties, mais qui ne permet pas de "reconstituer" l'effectif.

    C'est à dire que j'ai des dates d'entrée depuis 1960, et des dates de sortie au 31/12/2999 quand le salarié n'est pas sorti.

    Cela me donne :
    (Mon calendrier commence en 1984 :






    ------------------------------
    LAURENT SANCHEZ
    Formateur Consultant
    laurent@sanchezconsultant.com
    LE HAVRE
    662527022
    ------------------------------



  • 4.  RE: Choix du calendrier pour Compter effectif avec une date d'entrée et une date de sortie

    Posted Dec 16, 2022 06:34 AM
    Le calendrier c'est une table de date créée avec la fonction CALENDAR  ? si oui il faut revoir la plage de la table de date car elle devrait débuter en 1960 du coup,

    Sinon pour les dates de sorties au 31/12/2999, le plus simple c'est de remplacer la valeur 31/12/2999 par "null" (vide) dans l'éditeur Power Query (transformer les données), ça devrait régler ce problème.

    ------------------------------
    Alexis Astier
    Auditeur
    ------------------------------



  • 5.  RE: Choix du calendrier pour Compter effectif avec une date d'entrée et une date de sortie

    Posted Dec 16, 2022 12:24 PM
    Bonsoir Alexis,
    oui j'ai bien une table Calendar reliée à la date d'entrée en actif.

    La fonction est "presque" bonne pour obtenir mon effectif, mais j'ai un écart concernant les sorites

    Voici la fonction qui pose problème, si qqn a une idée pour la corriger :

    Nbre Emp =
        CALCULATE (
            COUNTROWS( Effective),
            Effective[DateE] <=  MAX ( 'Calendar'[Date] ),
            Effective[DateS] >= MIN ( 'Calendar'[Date] ),
              ALL('Calendar')
        )


    ------------------------------
    LAURENT SANCHEZ
    Formateur Consultant
    laurent@sanchezconsultant.com
    LE HAVRE
    662527022
    ------------------------------



  • 6.  RE: Choix du calendrier pour Compter effectif avec une date d'entrée et une date de sortie

    Posted Dec 19, 2022 03:58 PM
    Et bien j'ai trouvé tout seul, (sans l'aide de T. Malherbe que je ne remercierai jamais assez.....  ;),

    Mais grâce surtout à cet excellent article :

    Events in progress – DAX Patterns

        et voici ce qu'il fallait ajouter pour les utilisateurs qui seraient intéressés :

    C'était la dernière fonction LASTDATE qui causait ce décalage et voici le code complet :

    Nbre Emp (Classique) =
    VAR MinDate = MIN('Calendar'[Date])
    VAR MaxDate = MAX( 'Calendar'[Date])
    VAR NbEmp=
        CALCULATE (
            COUNTROWS( Effective),
            Effective[DateE] <= MaxDate,
            Effective[DateS] >= MinDate || ISBLANK(Effective[DateS]),
               REMOVEFILTERS('Calendar')
        )
    RETURN
    CALCULATE (
       NbEmp,
        LASTDATE ('Calendar'[Date] )
    )


    ------------------------------
    LAURENT SANCHEZ
    Formateur Consultant
    laurent@sanchezconsultant.com
    LE HAVRE
    662527022
    ------------------------------