nbre de de jours par mois entre 2 dates

  • nbre de de jours par mois entre 2 dates

    Posted by DSC Communities on December 29, 2021 at 7:52 pm

    nbre de de jours par mois entre 2 datesFollow
    LAURENT SANCHEZ
    LAURENT SANCHEZDec 29, 2021 07:47 AM
    Bonjour, j’ai un tableau dans lequel j’ai indiquĆ© la date d’entrĆ©e et de sortie de chaque salariĆ©, et …
    1. nbre de de jours par mois entre 2 dates

    LAURENT SANCHEZ
    Posted Dec 29, 2021 07:47 AM
    Bonjour,
    j’ai un tableau dans lequel j’ai indiquĆ© la date d’entrĆ©e et de sortie de chaque salariĆ©, et j’aimerais obtenir une mesure me permettant de compter le nombre de jours pour chaque salariĆ© et PAR MOIS
    (pour compter le nombre de jours au total je connais DATEDIFF, mals j’ai besoin de connaitre le nb par mois) :

    Nom Date dƩbut Date fin
    Pierre 10/10/2021 25/12/2021
    Marc 10/12/2021 25/12/2021
    Yves 01/09/2021 31/12/2021
    Auriez vous une idƩe ?

    Merci

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

    2. RE: nbre de de jours par mois entre 2 dates

    Silver Contributor
    Olivier Aillery
    Posted Dec 30, 2021 04:53 AM
    Bonjour Laurent,

    La mƩthode Ơ suivre est la suivante :
    1/ Avoir une table de dates et dans cette table une colonne avec des 1 et 0 selon que le jour est ouvrƩ ou non
    2/ Faire la somme de cette colonne avec un CALCULATE et un DATESBETWEEN ou DATESINPERIOD pour sƩlectionner entre les deux dates.

    Si vous avez dƩjƠ une table de dates, ci dessous quelques formules DAX pour crƩer les colonnes manquantes :
    1/ Calcul des jours fƩriƩs mobiles, Ơ crƩer dans la table de dates
    LUNDI DE PAQUES
    Date Lun Paques = DATE(1900,1,1)+(ROUND(DATE(MonCalendrier[Annee],4,MOD(234-11*MOD(MonCalendrier[Annee],19),30))/7,0)*7-6)-1
    DIMANCHE & LUNDI DE PENTECOTE
    Date Dim Pentecote = MonCalendrier[Date Lun Paques]+48
    Date Lundi Pentecote = MonCalendrier[Date Lun Paques]+49
    JEUDI DE L’ASCENSION
    Date Jeu Ascension = MonCalendrier[Date Lun Paques]+38

    2/ Test pour crƩer colonne avec 0 et 1 selon que je jour est travaillƩ ou non :

    JoursOuvres = SWITCH (FORMAT (MonCalendrier[DateRef], “dd/mm”), “01/01”,0, //Jour de lan
    “01/05”,0, //Fete du travail
    “08/05”,0, //Armistice 39-45
    “14/07”,0, //Fete nationale
    “15/08”,0, //Assomption
    “01/11”,0, //Toussaint
    “11/11”,0, //Armistice 14-18
    “25/12”,0, //Noel
    SWITCH(VALUE(MonCalendrier[DateRef]), VALUE(MonCalendrier[Date Lun Paques]),0, //Lundi de paques
    VALUE(MonCalendrier[Date Jeu Ascension]),0, //Jeudi de l’Ascension
    VALUE(MonCalendrier[Date Dim Pentecote]),0, //Dimanche de Pentecote
    VALUE(MonCalendrier[Date Lundi Pentecote]),0, //Lundi de Pentecote
    SWITCH(MonCalendrier[JourSemaineNom], //Test du WE (sam dim)
    “samedi”,0, “dimanche”,0,1))) //Jour Ferie=0, Non Ferie=1

    ​Et si jamais vous n’avez pas de table de dates, voici un lien pour en crĆ©er une :
    CrƩation table de dates

    Bon calcul !

    ——————————
    Olivier
    ——————————

     

    3. RE: nbre de de jours par mois entre 2 dates

    LAURENT SANCHEZ
    Posted Jan 03, 2022 05:20 AM
    Bonjour Olivier,
    je viens de rentrer de congĆ©s šŸ˜‰ et je vous remercie pour votre rĆ©ponse dĆ©taillĆ©e, mais je souhaitais compter le nombre de jours entre 2 dates, en DAX, sans ajout de tables, et par mois (les jours fĆ©riĆ©s m’importent peu)

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

     

    4. RE: nbre de de jours par mois entre 2 dates

    Silver Contributor
    Olivier Aillery
    Posted Jan 03, 2022 06:39 AM
    Bonjour Laurent,

    S’il s’agit juste du nombre de jours la fonction DATEDIFF devrait suffire, s’il faut par contre retirer les WE je te conseille l’utilisation d’une table de dates. Avec Power BI difficile de jouer sur les dates sans un calendrier (table de dates).
    A ma connaissance il n’existe pas l’Ć©quivalent Excel de NetWorkingDays en PBI d’où la table de dates qui de toute faƧon est aussi utile (voire indispensable) avec la plupart des fonctions de Time Intelligence.
    C’est trĆØs rapide comme crĆ©ation de table, avec une fonction CALENDARAUTO ou avec le code que je t’ai proposĆ©.

    Bon calcul et bonne reprise

    ——————————
    Olivier
    ——————————

     

    5. RE: nbre de de jours par mois entre 2 dates

    Silver Contributor
    Olivier Aillery
    Posted Jan 03, 2022 04:52 AM
    Bonjour Laurent,

    Est-ce que cela fonctionne, ou avez-vous besoin de plus d’informations ?

    Bonne journƩe

    ——————————
    Olivier
    ——————————

     

    6. RE: nbre de de jours par mois entre 2 dates

    LAURENT SANCHEZ
    Posted Jan 03, 2022 06:48 AM
    Bonjour Olivier,
    comment implƩmenter la fonction DATEDIFF dans une mesure ?

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

     

    7. RE: nbre de de jours par mois entre 2 dates

    Silver Contributor
    Olivier Aillery
    Posted Jan 03, 2022 07:03 AM
    Edited by Olivier Aillery Jan 03, 2022 07:05 AM
    Bonjour Laurent,

    Dans une mesure il va falloir “l’aider” Ć  sĆ©lectionner la valeur Ć  utiliser.
    Une fonction SELECTEDVALUE, LASTDATE, MIN devrait pouvoir aider Ơ sƩlectionner cette valeur.
    Cela dĆ©pend du tableau dans lequel tu souhaites l’utiliser, et aussi bien sur du modĆØle s’il y en a un.
    Par exemple dans un tableau avec des factures comme niveau de dĆ©tail, j’utilise cette mesure pour calculer l’Ć©cart entre date facture et date Ć©chĆ©ance.
    Sans la fonction SELECTEDVALUE j’obtiens une erreur car PBI ne “sait” pas quelle dates il doit prendre en compte parmi toutes celles de la colonne.
    Mesu Nb Jours OuvrƩs entre DateFact et EchƩance = CALCULATE(
    SUM(MonCalendrier[JoursOuvres]),//Somme de la colonne avec des 0 et des 1
    DATESBETWEEN(MonCalendrier[DateRef],//RƩfƩrence Ơ la table de dates
    SELECTEDVALUE(Factures[Date Facture]),//Date de dƩbut= Date facture
    SELECTEDVALUE(Factures[Date Echeance Fact])))//Date de Fin de pƩriode= date ƩchƩance

    Donc dans ton cas, il te faudra un SELECTEDVALUE sur DATEDEBUT et un autre sur DATE de FIN, dans ta fonction DATEDIFF.
    J’espĆØre que cela t’aidera.

    ——————————
    Olivier
    ——————————

     

    8. RE: nbre de de jours par mois entre 2 dates

    Silver Contributor
    Olivier Aillery
    Posted Jan 05, 2022 10:39 AM
    Bonjour,

    Ca fonctionne ? Si oui n’hĆ©sites pas Ć  partager la formule finale pour les autres membres.

    Bonne journƩe

    ——————————
    Olivier
    ——————————

     

    9. RE: nbre de de jours par mois entre 2 dates

    Philippe CULOT
    Posted Jan 06, 2022 02:51 AM | view attached
    Bonjour Laurent
    le rĆ©sultat comme demandĆ© dans le post . Il faut passer par quelques Ć©tapes Power Query largement inspirĆ©es par ce post Power Query – Calculer Nb Jours entre deux Date en Mois et AnnĆ©e – YouTube

     

    ——————————
    Philippe CULOT
    Data Analyst
    ——————————

    Attachment(s)

    pbixEmployƩs.pbix

    10. RE: nbre de de jours par mois entre 2 dates

    LAURENT SANCHEZ
    Posted Jan 11, 2022 06:12 AM
    Bonjour Ć  tous,
    j’ai trouvĆ© une mĆ©thode qui me permet de crĆ©er une mesure en DAX sans avoir besoin de prĆ©parer mes donnĆ©es avec PowerQuery.

    Je me suis basĆ© sur le pattern Events in Progress qui m’avait Ć©tĆ© proposĆ© par Bertand d’arbonneau
    https://www.daxpatterns.com/events-in-progress/

    Et je l’ai adaptĆ© pour compter le nb de jours d’absence, par mois, pour les employĆ©s :

    Si vous avez mieux ou plus concis, je prends šŸ˜‰

    Nb Jours =
    VAR MinDate = MIN ( ‘Calendar'[Date] )
    VAR MaxDate = MAX ( ‘Calendar'[Date] )
    VAR Result =
    CALCULATE (
    SUMX (Absences,
    IF(DATEDIFF(MAX(MinDate,Absences[Date DƩbut]),MIN(MaxDate,Absences[Date Fin]),DAY)+1<0,0,
    DATEDIFF(MAX(MinDate,Absences[Date DĆ©but]),MIN(MaxDate,Absences[Date Fin]+1),DAY)+1)),ALL(‘Calendar’)
    )
    RETURN
    Result

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

     

    11. RE: nbre de de jours par mois entre 2 dates

    Bronze Contributor
    Bertrand d’Arbonneau
    Posted Jan 11, 2022 10:38 AM
    Edited by Bertrand d’Arbonneau Jan 11, 2022 03:46 PM
    Une autre approche consiste Ć  itĆ©rer les dates dans le contexte d’Ć©valuation, compter le nombre d’absences pour chaque journĆ©e, puis faire la somme. Hors exception Ć  investiguer, le code suivant donne les mĆŖmes rĆ©sultats que la formule Ć  base de DATEDIFF, mais privilĆ©gie l’utilsation du Storage Engine.

    Nbr Jours Absence =
    SUMX (
    VALUES ( Calendar[Date] ),
    VAR _day = Calendar[Date]
    RETURN
    CALCULATE (
    COUNTROWS ( Absences ),
    Absences[Date dƩbut] <= _day,
    Absences[Date fin] >= _day,
    ALL ( Calendar )
    )
    )

    ——————————
    Bertrand d’Arbonneau
    ——————————

     

    12. RE: nbre de de jours par mois entre 2 dates

    LAURENT SANCHEZ
    Posted Jun 23, 2022 01:44 AM
    Bonjour Bertrand,
    vous m’aviez donnĆ© cette technique il y a quelque mois qui fonctionne bien pour connaitre le nombre de jours entre 2 dates par mois.

    J’aurais aimĆ© obtenir le mĆŖme comptage mais par MOIS (toujours entre 2 dates)

    Avez vous une idƩe ?

    br Jours Absence =
    SUMX (
    VALUES ( Calendar[Date] ),
    VAR _day = Calendar[Date]
    RETURN
    CALCULATE (
    COUNTROWS ( Absences ),
    Absences[Date dƩbut] <= _day,
    Absences[Date fin] >= _day,
    ALL ( Calendar )
    )
    )​

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

    replied 3 years, 4 months ago 1 Member · 0 Replies
  • 0 Replies

Sorry, there were no replies found.

The discussion ‘nbre de de jours par mois entre 2 dates’ is closed to new replies.

Start of Discussion
0 of 0 replies June 2018
Now

Welcome to our new site!

Here you will find a wealth of information created for peopleĀ  that are on a mission to redefine business models with cloud techinologies, AI, automation, low code / no code applications, data, security & more to compete in the Acceleration Economy!