Club Power BI

Expand all | Collapse all

Calcul nombre de jours ouvrés entre deux dates

  • 1.  Calcul nombre de jours ouvrés entre deux dates

    Posted 20 days ago
    ​Bonjour,

    dans le cadre de calculs d'indicateurs, je dois ressortir une moyenne de délai entre plusieurs types de date.
    Pour se faire, je dois pouvoir calculer le nombre de jours ouvrés (jours fériés également exclus) entre deux colonnes de dates.
    Je suis déjà allée sur un bon nombre de tutos, et j'ai retenu la solution suivante : importer une base de donnée calendrier qui comporte une colonne calendrier et un seconde colonne notant 1=jours ouvrés & 0=jours chômés ; comme suit :


    Voici ma base de données de dates à calculer :



    Puis appliquer la formule suivante en ajout de colonne : NBJoursOuvrés = CALCULATE(SUM(Dates[JoursOuvres_Code]),DATESBETWEEN(Dates[Date],Devis[DevisQualif_DateReecptEsti],Devis[DevisQualif_Reception]))

    Mais une fois fait, lorsque je crée une nouvelle colonne, je n'arrive pas à croiser les deux bases :


    Qu'est-ce que je fais de mal?

    Merci pour votre aide. Si vous avez une autre solution, je suis preneuse.

    Anne WATREMEZ

    ------------------------------
    Anne Watremez
    0603535123
    ------------------------------


  • 2.  RE: Calcul nombre de jours ouvrés entre deux dates

    Silver Contributor
    Posted 20 days ago
    Bonjour,

    Oui, il vous faut effectivement une table Calendrier dès lors que vous avez des calculs temporels à effectuer.
    Vous avez crée une colonne calculée en DAX afin de calculer votre nombre de jours ouvrés entre deux dates. Les colonnes calculées ne sont pas disponibles dans Power Query (pré-chargement des données) car elles s'exécutent au chargement du modèle de données.

    Que cherchez-vous à faire exactement ? J'imagine que vous souhaitez ventiler le nombre de jours ouvrés moyen par Demandeur, Projets, Date de création, etc.

    Dans ces cas-là, je vous suggère de:
    1. Créer la mesure suivante dans votre table "Dossiers D'architecture":
    Avg Jours Ouvrés = AVERAGE(Dossiers d'Architecture[NB Jours Ouvrés] )
    2. Créer une relation entre la colonne dates de votre table Calendrier et la colonne Date_projet Entrée de votre table Dossiers D'architecture (ou la colonne de date faisant foi pour l'analyse). C'est sur ce type de colonnes dates que vous souhaitez ventiler Avg Jours Ouvrés, pas sur les colonnes "DevisQualif_DateReecptEsti" ou "DevisQualif_Reception", qui elles servent simplement au calcul de délai entre l'estimé et le réel.

    D'autre part, je pense qu'il faudrait légèrement modifier votre colonne calculée "NB Jours Ouvrés" car la DevisQualif_DateReecptEsti est parfois supérieure à DevisQualif_Reception. Or la start date de DatesBetween() doit toujours être la date minimum (et la end date la date maximum).
    Donc:
    NB Jours Ouvrés = VAR Start = Min( Dossiers d'Architecture[DevisQualif_DateReecptEsti] , Dossiers d'Architecture[DevisQualif_Reception])
    VAR End =  Max( Dossiers d'Architecture[DevisQualif_DateReecptEsti] , Dossiers d'Architecture[DevisQualif_Reception]) RETURN
    CALCULATE(SUM(Dates[JoursOuvres_Code]),DATESBETWEEN(Dates[Date], Start ,End) )


    ------------------------------
    Tristan Malherbe
    Microsoft Data Platform MVP
    Consultant at AZEO
    06 09 27 06 97
    ------------------------------