DATEDIFF sur Power BI : Calculer un intervalle entre 2 dates

-
4
 m de lecture
-

Sur Power BI, les fonctions DAX permettent d'effectuer de nombreux calculs spécifiques sur les données. Il s'agit d'une vaste collection de formules prêtes à appliquer sur n'importe quels chiffres.

L’une de ces fonctions DAX est DATEDIFF. Elle est utilisée sur Power BI pour calculer les intervalles de temps entre deux dates. Cet intervalle peut être exprimé en secondes, minutes, heures, jours, semaines, mois, trimestres ou années.

Qu'est-ce que Power BI ?

Power BI est une plateforme de Business Intelligence complète développée par Microsoft. Elle regroupe de nombreux outils dédiés à l’informatique décisionnelle, notamment pour la collecte, l’analyse et la visualisation de données.

Cette plateforme est disponible sous forme de logiciel local, mais également en service cloud sur Microsoft Azure et en application mobile sur iOS et Android. Elle s’intègre avec les logiciels de la suite Office 365.

Qu'est-ce que DAX sur Power BI ?

Data Analysis Expressions ou DAX est un langage d’expression de formules explicitement conçu pour la gestion de modèles de données. Les formules DAX incluent des fonctions et opérateurs pouvant être utilisés pour créer des formules et des expressions sur Power BI, Power Pivot sur Excel, et sur le cloud Azure.

Au total, DAX rassemble plus de 200 formules. Elles sont utilisées pour l’analyse de données et la production de rapports.

Qu'est-ce que Power BI DATEDIFF ?

En utilisant Power BI, il est souvent nécessaire de calculer les différences de temps entre deux dates dans un tableau. Cette tâche peut sembler complexe, mais il suffit d’utiliser la formule DAX DATEDIFF.

La seule condition est de savoir quels sont les points de départ et de fin au format de date ou d’heure, et de pouvoir préciser le type d’intervalle souhaité.

La fonction DAX DATEDIFF calcule l’intervalle de temps entre deux dates, et présente le résultat en secondes, minutes, heures, jours, semaines, mois, trimestres ou années.

La syntaxe de Power BI DATEDIFF prend la forme : « DATEDIFF (, , ) ».

Le paramètre « start_date » est une valeur scalaire de date ou d’heure, au même titre que le paramètre « end_date ». Le paramètre « interval » est l’intervalle à utiliser pour comparer les dates, et peut être « SECOND », « MINUTE », « HOUR », « DAY », « WEEK », « MONTH », « QUARTER » ou « YEAR ».

En résultat, la formule DAX DATEDIFF de Power BI retourne un nombre entier. Il s’agit du nombre d’intervalles traversés entre les deux dates.

Comment calculer l'intervalle entre 2 dates avec DATEDIFF ?

Avant de commencer à utiliser DATEDIFF sur Power BI, assurez-vous que la valeur donnée pour le paramètre « INTERVAL » soit une constante et non une ligne. Elle ne doit donc pas être entourée par des doubles guillemets.

La bonne syntaxe sera donc « = DATEDIFF(‘Dates Table'[Sart Date],’Dates Table'[End Date],MONTH) » et non « = DATEDIFF(‘Dates Table'[Sart Date],’Dates Table'[End Date], »MONTH ») ».

Si vous avez un tableau de dates sur Power BI et souhaitez calculer les différences de date entre les colonnes de date de début et date de fin pour chaque ligne, voici la marche à suivre.

Depuis Power BI Desktop, cliquez sur « Data Mode ». À gauche, cliquez sur le tableau pour lequel vous voulez ajouter une nouvelle colonne. Dans l’onglet « outils de tableau », cliquez sur « nouvelle colonne » pour créer une nouvelle colonne en utilisant DAX.

Il vous suffit ensuite d’écrire la formule suivante pour calculer les différences de date entre deux dates en années : « Years between = DATEDIFF(‘Dates Table'[Start Date],’Dates Table'[End Date],YEAR) ».

Pour mesure la différence de date avec un autre type d’intervalle, changez simplement la valeur du paramètre « interval ». Par exemple, pour calculer la différence en mois, entrez la formule : « Months between = DATEDIFF(‘Dates Table'[Start Date],’Dates Table'[End Date],MONTH) ».

Comment utiliser DATEDIFF dans une mesure ?

La fonction DAX DATEDIFF de Power BI peut aussi être utilisée avec des dates constantes dans une mesure, pour calculer la différence deux mois entre deux dates fixes comme 2020,3,1 et 2022,3,31.

Il suffit d’entrer la formule : « Months = DATEDIFF (DATE (2020,3,1), DATE (2022,3,31), MONTH) ». Là encore, l’intervalle « MONTH » peut être remplacé par « SECOND », « MINUTE », « HOUR », « DAY », « WEEK », « MONTH », « QUARTER » ou « YEAR ».

				
					--  DATEDIFF computes the delta between two dates, using different units of measure
--  YEAFRAC returns the delta as a fraction (in years)
EVALUATE
VAR StartDate =  DATE ( 2011, 01, 01 )
VAR EndDate =    DATE ( 2012, 12, 15 )
RETURN
    {
        ( "DATEDIFF Year",     DATEDIFF ( StartDate, EndDate, YEAR ) ),
        ( "DATEDIFF Quarter",  DATEDIFF ( StartDate, EndDate, QUARTER ) ),
        ( "DATEDIFF Month",    DATEDIFF ( StartDate, EndDate, MONTH ) ),
        ( "DATEDIFF Day",      DATEDIFF ( StartDate, EndDate, DAY ) ),
        ( "Subtraction-1",     INT ( EndDate - StartDate ) ),
        ( "Subtraction-2",     CONVERT ( EndDate - StartDate, INTEGER ) ),
        ( "YEARFRAC",          YEARFRAC ( StartDate, EndDate ) )
    }   
				
			

Notons que si le paramètre « start_date » est plus large que le paramètre « end_date », la fonction DATEDIFF retourne une valeur négative. Il s’agit donc d’une erreur de syntaxe à corriger.

Comment calculer la différence entre FIRSTDATE et LASTDATE ?

Il est également possible de créer des mesures utilisant la fonction DAX DATEDIFF pour calculer les mois entre la FIRSTDATE (première date) et la LASTDATE (dernière date) du tableau.

Pour ce faire, il suffit d’entrer la formule : « MonthDurationMeasure = DATEDIFF(FIRSTDATE(‘Table'[Sart Date]), LASTDATE(‘Table'[End Date]), MONTH) ».

Comment calculer la différence de date à partir d'aujourd'hui ?

Enfin, on peut utiliser la fonction DATEDIFF pour calculer les années séparant une date spécifique de la date d’aujourd’hui. La formule à écrire est « Years between End date and today = DATEDIFF(2020,4,1 ,TODAY(),YEAR) ».

De même, une formule permet de calculer les années entre une date de colonne et aujourd’hui : « Years between date and today = DATEDIFF(‘Table'[End Date],Today(),Year) ».

Comment apprendre à maîtriser Power BI ?

La fonction DATEDIFF est très utile pour calculer la différence de temps entre deux dates sur Power BI. Toutefois, il ne s’agit que de l’une des nombreuses formules DAX disponibles.

Afin d’apprendre à manier Power BI et toutes ses fonctionnalités les plus subtiles, vous pouvez choisir DataScientest. Notre formation s’effectue intégralement à distance, en 2 à 5 jours.

Vous pouvez choisir entre le programme débutant sur trois jours, ou le programme avancé sur deux jours. La formation « maîtrise complète » regroupe les deux programmes et dure 38 heures réparties sur cinq jours.

La première partie du cursus permet d’apprendre à utiliser les différents outils Power BI comme le langage DAX ou le moteur de requête Power Query. Vous apprendrez aussi à analyser les données avec la plateforme et à créer des tableaux de bord pour la prise de décision.

La seconde partie permet d’approfondir le maniement de l’outil. Vous apprendrez à utiliser chaque service de façon plus avancée, et découvrirez les notions plus complexes de DataFlows et Incremental Refresh.

Tous nos professeurs ont le statut Microsoft Certified Trainer, et la formation inclut le passage de l’examen de certification Microsoft PL-300 Power BI Data Analyst Associate.

Pour le financement, notre organisme reconnu par l’État est éligible au Compte Personnel de Formation. Découvrez DataScientest dès maintenant pour maîtriser Power BI !

Vous savez tout sur la formule DATEDIFF de Power BI. Pour plus d’informations sur le même sujet, découvrez notre dossier complet sur Power BI Calendar et notre dossier sur DAX.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?