Accéder au contenu principal

Week-end DAX : Identifier les week-ends et les limites de semaine dans Power BI

Améliorez vos tableaux de bord Power BI grâce aux formules DAX pour les week-ends et les limites hebdomadaires.
Actualisé 13 nov. 2025  · 12 min lire

Si vous avez déjà travaillé avec DAX, vous savez déjà que les dates peuvent rapidement devenir complexes. Vous n'aurez probablement aucun problème jusqu'à ce que quelqu'un vous dise : « Notre semaine de reporting commence le samedi » ou « Pourrions-nous mettre en évidence les week-ends différemment dans le tableau de bord ? » Puis, soudainement, vous vous retrouvez plongé dans les types de retour d'WEEKDAY(), la logique de décalage, et vous essayez d'expliquer pourquoi Power BI considère que le vendredi est la fin de la semaine alors que votre entreprise affirme le contraire.

La plupart d'entre nous ont déjà rencontré ce problème : vous devez marquer les week-ends, calculer les jours ouvrés ou définir des limites de semaine personnalisées qui ne correspondent pas au calendrier standard. Il est possible que votre entrepôt fonctionne du dimanche au jeudi, ou que votre équipe financière souhaite compter les jours ouvrables en excluant les week-ends.

Dans sa configuration initiale, DAX ne gère pas cela de manière optimale, mais il fournit les éléments nécessaires pour y remédier. Dans cet article, nous examinerons comment marquer les week-ends à l'aide de l'expression « WEEKDAY() », définir les limites de la semaine (par exemple, du samedi au vendredi), calculer les jours ouvrables à l'aide de l'expression « NETWORKDAYS() » ou d'une logique conditionnelle, et utiliser ces calculs pour générer des indicateurs pertinents dans Power BI.

Comprendre les week-ends dans DAX

Commençons par les bases, en déterminant quels jours sont des week-ends dans votre ensemble de données. DAX vous offre la fonction d'WEEKDAY(), qui s'avère remarquablement flexible une fois que vous comprenez le fonctionnement du système de numérotation. Par défaut, la fonction ` WEEKDAY() ` renvoie un nombre compris entre 1 et 7 qui représente le jour de la semaine pour une date donnée. Le deuxième argument contrôle la manière dont ces nombres sont mappés. La version la plus couramment utilisée par les développeurs est WEEKDAY(date, 2), qui renvoie 1 pour le lundi à 7 pour le dimanche, conformément à la norme ISO utilisée par la plupart des calendriers professionnels.

Voici un exemple rapide :

Date

JOUR DE LA SEMAINE(Date, 2)

Jour

2025-10-13

1

Lundi

2025-10-14

2

mardi

2025-10-18

6

Samedi

2025-10-19

7

dimanche

Maintenant, mettons cela à profit. Vous pouvez ajouter une colonne calculée dans votre tableau Date pour signaler les week-ends :

IsWeekend =
VAR DayNum = WEEKDAY('Date'[Date], 2)
RETURN IF(DayNum > 5, TRUE(), FALSE())

Voici ce qui se passe :

  • WEEKDAY('Date'[Date], 2) vous donne le numéro du jour (1 = lundi, …, 7 = dimanche).

  • DayNum > 5 identifie le samedi (6) et le dimanche (7).

  • La colonne renvoie TRUE pour les week-ends et FALSE pour les jours ouvrables.

Si votre semaine ne suit pas le modèle standard du lundi au vendredi, par exemple si votre entreprise considère le vendredi et le samedi comme des jours de week-end, vous pouvez facilement ajuster la logique :

IsWeekend_Custom =
VAR DayNum = WEEKDAY('Date'[Date], 2)
RETURN IF(DayNum IN {5, 6}, TRUE(), FALSE())

Cette modification d'une ligne permet à votre modèle de fonctionner avec des calendriers opérationnels personnalisés. Après avoir créé cette colonne, veuillez la glisser dans un tableau simple dans Power BI avec le champ « Date » (Jour de la semaine) et vérifiez si vos jours de week-end s'alignent correctement.

Comment définir des limites de semaine personnalisées

La plupart des modèles Power BI se basent sur un calendrier du lundi au dimanche, mais dans la réalité, les rapports suivent rarement cette structure. Les tableaux de bord de vente au détail, par exemple, clôturent souvent le vendredi ; certaines organisations préfèrent suivre les cycles du samedi au vendredi. Dans DAX, vous pouvez définir des limites de semaine personnalisées qui correspondent à votre calendrier professionnel. Examinons comment procéder de manière claire, étape par étape.

Définir une semaine se terminant le vendredi

Si votre semaine de travail se termine le vendredi, vous pouvez attribuer à chaque date une date correspondante du week-end. Le principe est simple : prenez chaque date, déterminez le numéro du jour de la semaine correspondant, puis avancez jusqu'à atteindre le vendredi.

Voici la formule de la colonne calculée :

WeekEnd_Friday =
VAR WeekdayIndex = WEEKDAY('Date'[Date], 2)        // Monday = 1, Sunday = 7
VAR DaysToFriday = 5 - WeekdayIndex                // 5 represents Friday
RETURN
'Date'[Date] + IF(DaysToFriday < 0, DaysToFriday + 7, DaysToFriday)

Voici comment cela fonctionne :

  • WEEKDAY('Date'[Date], 2) vous fournit l'index des jours de la semaine (Monday = 1).

  • Veuillez calculer la distance entre cette date et vendredi.

  • Si le jour est déjà passé vendredi (par exemple, samedi ou dimanche), il passe au vendredi suivant en ajoutant 7 jours.

Cette approche regroupe toutes les dates comprises entre samedi et vendredi dans la même semaine, qui se termine le vendredi.

Pour vérifier cela :

  • Veuillez ajouter cette colonne à votre tableau Date.

  • Veuillez créer un tableau visuel dans Power BI à l'aide des liens suivants : Date et WeekEnd_Friday.

  • Vous constaterez que chaque séquence samedi-vendredi correspond à la même date du week-end.

Définir une semaine commençant le samedi

Si votre semaine de reporting commence le samedi, vous pouvez associer la formule précédente à une colonne de début de semaine. Vous pouvez procéder de la même manière, mais en inversant le processus, afin de déterminer le samedi le plus récent par rapport à chaque date.

Voici la colonne DAX correspondante :

WeekStart_Saturday =
VAR WeekdayIndex = WEEKDAY('Date'[Date], 2)       // Monday = 1, Sunday = 7
VAR DaysSinceSaturday = WeekdayIndex - 6          // 6 represents Saturday
RETURN
'Date'[Date] - IF(DaysSinceSaturday < 0, DaysSinceSaturday + 7, DaysSinceSaturday)

Cette expression fonctionne de manière presque identique à la précédente, mais effectue un décalage vers le samedi précédent.

Vous pouvez également trouver des exemples de code plus anciens utilisant la fonction EARLIER() pour capturer le contexte de la ligne actuelle dans une colonne calculée. Par exemple :

WeekStart_Saturday =
VAR CurrentDate = EARLIER('Date'[Date])
VAR WeekdayIndex = WEEKDAY(CurrentDate, 2)
VAR DaysSinceSaturday = WeekdayIndex - 6
RETURN
CurrentDate - IF(DaysSinceSaturday < 0, DaysSinceSaturday + 7, DaysSinceSaturday)

Dans ce scénario, le DAX moderne ne nécessite pas d' EARLIER(), car les colonnes calculées sont déjà évaluées ligne par ligne. Cependant, il est toujours utile de comprendre ce concept pour les modèles hérités ou lors de l'imbrication de contextes de lignes dans des itérateurs.

Une fois les deux colonnes ajoutées, veuillez essayer de créer un graphique pour WeekStart_Saturday et WeekEnd_Friday dans un tableau visuel avec votre colonne Date. Vous observerez des délimitations hebdomadaires claires qui suivent le rythme de votre entreprise, et non le calendrier par défaut.

Ensuite, vous pouvez utiliser ces dates de début et de fin de semaine comme clés de regroupement dans les visuels ou comme ancrages dans les mesures, ce qui est idéal pour calculer les totaux par semaine ouvrée, comparer les performances d'une semaine à l'autre ou s'aligner sur des calendriers fiscaux non standard.

Choisir entre les colonnes et les mesures

Maintenant que vous avez défini vos limites hebdomadaires personnalisées, il convient de déterminer comment les utiliser dans votre modèle, sous forme de colonnes calculées ou de mesures. Les deux ont leur utilité, et savoir quand utiliser l'un ou l'autre permet de garantir l'efficacité et la prévisibilité de votre modèle Power BI.

Considérez les colonnes calculées comme des attributs statiques que vous souhaitez découper ou filtrer. Par exemple, vos colonnes IsWeekend, WeekStart_Saturday ou WeekEnd_Friday décrivent chaque date. Ils ne dépendent pas des interactions ou des filtres des utilisateurs ; ils définissent simplement ce qu'est chaque jour est. Cela les rend particulièrement adaptés pour regrouper des éléments visuels, établir des relations ou créer des hiérarchies.

En revanche, les mesures sont des calculs dynamiques qui réagissent aux filtres, aux segments et au contexte. Si vous résumez ou comparez des mesures, par exemple en comptant les jours ouvrables dans une plage sélectionnée ou en calculant le chiffre d'affaires moyen par semaine, vous aurez besoin d'une mesure.

Voici une comparaison rapide à retenir:

Cas d'utilisation

Type

Exemple

Identifier les week-ends ou les limites de la semaine

Colonne calculée

IsWeekend = IF(WEEKDAY('Date'[Date],2)>5,TRUE(),FALSE())

Tranchez les visuels par plages hebdomadaires personnalisées

Colonne calculée

WeekStart_Saturday, WeekEnd_Friday

Compter les jours ouvrables dans le filtre actuel

Mesure

WorkingDays = COUNTROWS(FILTER('Date', 'Date'[IsWeekend] = FALSE()))

Veuillez comparer le total des ventes entre les semaines personnalisées.

Mesure

TotalSalesByWeek = SUM(Sales[Amount]) regroupés par WeekStart_Saturday

Enrésumé :

  • Si vous avez besoin du résultat soit stocké avec chaque ligne (et utilisable dans les segments ou les filtres), optez pour une colonne.
  • Si vous avez besoin d'un calcul qui se met à jour en fonction des interactions de l'utilisateur, optez pour une mesure.

Calcul des jours ouvrables avec NETWORKDAYS()

Une fois que les limites de vos week-ends et semaines sont définies, l'étape logique suivante consiste à calculer les jours ouvrables, c'est-à-dire le nombre de jours ouvrables entre deux dates, en excluant éventuellement les jours fériés. Power BI et DAX simplifient cette opération grâce à la fonction « NETWORKDAYS() », introduite dans les versions récentes de DAX.

Dans sa forme la plus simple, la syntaxe se présente comme suit :

NETWORKDAYS(<start_date>, <end_date>[, <weekend>[, <holidays>]])

Voici comment chaque paramètre fonctionne :

  • et définissez votre gamme.

  • est facultatif et vous permet de spécifier quels jours sont considérés comme des week-ends.

  • est également facultatif : vous pouvez indiquer une colonne ou un tableau contenant les dates de jours fériés afin de les exclure du décompte.

Comprendre les codes du week-end

L'argument de l ' e utilise des codes numériques pour définir quels jours sont considérés comme des week-ends. Voici quelques options standard que vous êtes susceptible d'utiliser :

Code

Journées de fin de semaine

Description

1

Samedi, dimanche

Par défaut (semaine de travail occidentale)

7

Vendredi, samedi

Courant dans les calendriers du Moyen-Orient

11

Uniquement le dimanche

Pour les fermetures le dimanche uniquement

12

Uniquement le lundi

Pour les jours chômés uniquement le lundi

Par exemple, si votre semaine de travail s'étend du dimanche au jeudi, vous utiliseriez le code 7 pour les week-ends du vendredi au samedi.

Voici comment calculer les jours ouvrables entre deux colonnes dans votre modèle :

WorkingDays_Default =
NETWORKDAYS('Sales'[StartDate], 'Sales'[EndDate])

Cette formule suppose que le samedi et le dimanche sont des jours de week-end. Si votre entreprise observe un week-end vendredi-samedi, vous pouvez l'ajuster comme suit :

WorkingDays_FriSat =
NETWORKDAYS('Sales'[StartDate], 'Sales'[EndDate], 7)

Hors jours fériés

Vous pouvez aller plus loin en excluant les jours fériés officiels enregistrés dans une table dédiée Holiday. Supposons que vous disposiez d'un tableau contenant une colonne intitulée « Holiday[Date] ». Voici comment l'inclure :

WorkingDays_WithHolidays =
NETWORKDAYS(
    'Sales'[StartDate],
    'Sales'[EndDate],
    1,
    'Holiday'[Date]
)

Cette configuration garantit que les week-ends et les jours fériés définis par votre organisation ne sont pas pris en compte dans le décompte. Il s'agit d'un petit ajout qui rend vos rapports beaucoup plus précis, en particulier pour la planification des effectifs, la surveillance des accords de niveau de service (SLA) ou les tableaux de bord opérationnels.

Exemple de cas d'utilisation

Veuillez imaginer que votre entreprise effectue le suivi des échéances de projet dans Power BI. Chaque enregistrement dispose d'un identifiant unique ( StartDate ) et d'un identifiant de session ( EndDate). En ajoutant la mesure d'WorkingDays_WithHolidays, vous pouvez rapidement visualiser :

  • Combien de jours ouvrables chaque projet a-t-il nécessité ?
  • Quels projets se sont déroulés pendant les week-ends ou les jours fériés ?
  • Durée moyenne de travail par département ou type de projet.

Pour l'observer en action, veuillez ajouter cette mesure à un tableau visuel avec Project Name, StartDate et EndDate. Vous obtiendrez immédiatement une image plus précise des délais en fonction des jours ouvrables réels, et non pas uniquement des différences de dates brutes.

Applications pratiques dans les tableaux de bord d'entreprise

Maintenant que vous avez défini les jours ouvrables, les indicateurs de week-end et les limites de semaine personnalisées, examinons comment ceux-ci s'intègrent dans les tableaux de bord Power BI réels. La possibilité de redéfinir les week-ends ou les semaines fiscales n'est pas seulement une astuce technique intéressante ; elle a un impact direct sur la manière dont les indicateurs sont calculés, visualisés et compris dans tous les services.

Dates limites pour la paie et les feuilles de temps

De nombreuses organisations traitent la paie selon un cycle fixe du samedi au vendredi ou du dimanche au samedi. En définissant les limites hebdomadaires dans DAX, vous pouvez aligner les périodes salariales, les calculs d'heures supplémentaires et les saisies dans les feuilles de temps sur la semaine de travail exacte utilisée par votre système RH. Par exemple, vous pouvez calculer le nombre total d'heures travaillées ou de quarts effectués par semaine personnalisée, en veillant à ce que les rapports de paie correspondent parfaitement aux horaires internes plutôt qu'au calendrier par défaut du lundi au dimanche.

Indicateurs clés de performance opérationnels et surveillance des services

Les équipes opérationnelles et logistiques mesurent souvent les indicateurs clés de performance (KPI) tels que les délais de livraison ou la résolution des incidents en utilisant uniquement les jours ouvrables. L'utilisation d' NETWORKDAYS() s garantit que ces indicateurs reflètent la capacité réelle de l'entreprise, et non celle des week-ends où l'activité est réduite.

En associant vos calculs de jours ouvrables à vos colonnes « WeekStart_Saturday » (Jours ouvrables) ou « WeekEnd_Friday » (Jours ouvrables), vous pouvez regrouper les données par semaine opérationnelle exacte que la direction suit lors des réunions et dans les rapports.

Performance commerciale et de vente

Les détaillants suivent rarement les semaines calendaires. Beaucoup préfèrent le samedi au vendredi afin de couvrir l'ensemble de la période de vente du week-end dans un seul bloc de rapports cohérent. En modélisant votre tableau de dates en fonction de ce calendrier, les tendances des ventes du week-end restent intactes au sein d'une même semaine, ce qui rend les comparaisons entre les week-ends pertinentes. Ce petit ajustement peut éviter les distorsions dans les graphiques hebdomadaires et fournir des moyennes mobiles plus précises.

Semaines fiscales personnalisées et prévisions

Certaines équipes financières travaillent avec des semaines fiscales qui commencent en milieu de semaine ou suivent un modèle comptable 4-4-5. Vos limites hebdomadaires personnalisées peuvent être facilement intégrées à cela.Une fois que votre tableau de dates comprend les colonnes WeekStart et WeekEnd, les mesures telles que la comptabilisation des revenus, le suivi des dépenses ou les prévisions peuvent être agrégées de manière cohérente, quelle que soit la nature non conventionnelle de votre calendrier fiscal.

Moyennes mobiles basées sur les jours ouvrables

Lors du calcul des moyennes mobiles, en particulier pour les indicateurs clés de performance tels que les ventes quotidiennes ou les taux de production, il est préférable de baser le calcul sur les jours ouvrables plutôt que sur les jours calendaires.

Par exemple, si les week-ends sont exclus à l'aide de votre indicateur d' IsWeekend, une moyenne mobile sur 7 jours refléterait véritablement une semaine d'activité, sans fluctuations exagérées ou trompeuses les jours non ouvrés.

En résumé, les définitions personnalisées des semaines et la logique des jours ouvrables permettent à vos tableaux de bord Power BI de mieux refléter le fonctionnement réelde votre entreprise . Que vous suiviez les dates limites de paie, les délais de livraison ou les pics de ventes le week-end, ces modèles DAX rendent vos informations plus claires, plus justes et beaucoup plus exploitables.

Points importants à retenir

Avant de conclure, résumons les principaux points à retenir afin que vous puissiez appliquer efficacement ces techniques DAX dans vos projets Power BI.

  • Veuillez utiliser des colonnes calculées pour l' de classification par ligne: Lorsque vous avez besoin d'étiqueter chaque date, par exemple pour marquer les week-ends, définir les limites des semaines ou classer les jours ouvrables, les colonnes calculées constituent la meilleure solution. Ils fournissent des attributs statiques qui s'intègrent parfaitement aux segments, filtres et relations dans l'ensemble de votre modèle.

  • Veuillez utiliser WEEKDAY() avec précaution et en choisissant le type de retour approprié : Veuillez noter que WEEKDAY(date, 2) commence le lundi (1) et se termine le dimanche (7). Le réglage de ce paramètre vous permet d'aligner vos calculs sur les normes régionales ou organisationnelles relatives à la semaine de travail. Veuillez toujours vérifier attentivement votre type de retour. Il s'agit de l'une des sources les plus courantes d'erreurs « off-by-one » dans la logique temporelle DAX.

  • NETWORKDAYS() est votre solution pour exclure les week-ends et les jours fériés: Cette fonction simplifie le calcul des jours ouvrables, vous évitant ainsi d'avoir recours à des filtres de date complexes ou à des boucles manuelles. Combinez-le avec le code week-end de votre entreprise et un tableau des jours fériés pour obtenir des chiffres précis qui reflètent les jours ouvrables réels, et non pas seulement les écarts calendaires.

En maîtrisant ces principes fondamentaux, les structures de semaine personnalisées, la logique rigoureuse des jours de la semaine et le comptage précis des jours ouvrables, vous apporterez plus de précision et de flexibilité à chaque tableau de bord Power BI que vous créerez. La prochaine fois que vous configurerez un modèle de date ou alignerez des rapports avec des calendriers commerciaux, ces modèles DAX devraient figurer en tête de votre boîte à outils. 

Erreurs courantes à éviter

Même les développeurs Power BI expérimentés peuvent rencontrer des difficultés subtiles lorsqu'ils travaillent avec la logique des dates et des semaines dans DAX. Voici quelques points à surveiller :

Mélanger les citations dans les comparaisons de textes

DAX fait la distinction entre les guillemets simples (') et doubles ("), et l'utilisation du mauvais type de guillemets peut perturber votre logique, en particulier lorsque vous comparez des valeurs textuelles telles que des noms de jours ou des drapeaux. Par exemple :

IsWeekend = IF(WEEKDAY('Date'[Date], 2) > 5, "Weekend", "Weekday")

Veuillez toujours utiliser des guillemets doubles pour les chaînes de texte à l'intérieur des fonctions. 

Les guillemets simples sont réservés aux références de tables et de colonnes, comme 'Date'[Date].

Oublier le contexte de ligne 

Il s'agit de l'une des erreurs conceptuelles les plus courantes. Les colonnes calculées évaluent chaque ligne indépendamment, tandis que les mesures dépendent du filtre et du contexte d'évaluation. Si vous faites référence à une colonne sans agrégation dans une mesure, celle-ci ne se comportera pas comme prévu, car il n'y a pas de contexte de ligne. Par exemple, IF(WEEKDAY('Date'[Date], 2) > 5, TRUE(), FALSE()) fonctionne comme une colonne calculée, mais si vous avez besoin qu'elle réponde dynamiquement aux filtres, vous devrez l'intégrer dans un itérateur tel que SUMX() ou l'utiliser dans une mesure qui compte ou filtre les lignes.

Ignorer les fuseaux horaires ou l'alignement des calendriers 

Lorsque vous utilisez des données importées avec des horodatages, les fonctions de date DAX s'appliquent à la partie date de votre colonne. Si vos données traversent plusieurs fuseaux horaires ou utilisent des ajustements UTC, ces indicateurs de week-end peuvent changer de manière inattendue. Veuillez toujours nettoyer et normaliser vos champs de date/heure dans Power Query avant d'appliquer la logique DAX.

Codage en dur de la logique du week-end 

Veuillez éviter d'intégrer une logique fixe telle que « samedi et dimanche » directement dans plusieurs formules. Veuillez plutôt définir une variable réutilisable ou un tableau déconnecté répertoriant les jours de week-end de votre organisation. Cela facilite la maintenance lorsque les calendriers commerciaux changent.

Détecter ces petits problèmes à un stade précoce peut vous éviter de nombreuses heures de débogage par la suite. En cas de doute, veuillez utiliser la vue Données dans Power BI pour examiner les résultats des colonnes calculées ligne par ligne. Il s'agit de l'un des moyens les plus rapides de vérifier que votre logique DAX se comporte comme prévu avant de l'intégrer dans des visuels ou des mesures.

Conclusion

Travailler avec les week-ends et les limites de semaine personnalisées dans DAX ne se résume pas à des calculs de dates, il s'agit de faire en sorte que vos modèles Power BI reflètent le fonctionnement réel devotre entreprise . Que vous marquiez les samedis et dimanches comme jours non ouvrés, que vous aligniez votre semaine fiscale du samedi au vendredi ou que vous calculiez les jours ouvrés en excluant les jours fériés, l'objectif est le même : précision et contexte dans chaque calcul.

Vous avez observé comment des fonctions telles que WEEKDAY() et NETWORKDAYS() contribuent à définir une logique de date flexible et comment les colonnes calculées et les mesures jouent chacune leur rôle : l'une pour la structure et l'autre pour l'analyse dynamique. Au cours de notre exploration, nous avons examiné des cas d'utilisation concrets, allant des délais de paie aux calendriers de vente au détail, et avons appris à éviter les pièges courants de DAX, tels que les guillemets mal utilisés ou la perte de contexte des lignes.

La prochaine fois que vous créerez un tableau de bord Power BI traitant des dates, envisagez d'autres options que le calendrier par défaut. Personnalisez votre semaine, mettez en évidence les week-ends et considérez les jours ouvrables comme les indicateurs de premier ordre qu'ils méritent d'être. Grâce à ces modèles DAX dans votre boîte à outils, vos rapports ne se contenteront pas d'afficher l'heure, ils présenteront égalementl' e temporelletelle que votre organisation la vit.

Devenez un analyste de données Power BI

Maîtrisez l'outil de veille stratégique le plus populaire au monde.

Commencez à apprendre gratuitement

Oluseye Jeremiah's photo
Author
Oluseye Jeremiah
LinkedIn

Rédacteur technique spécialisé dans l'IA, la ML et la science des données, rendant les idées complexes claires et accessibles.

Sujets

Apprenez avec DataCamp

Cours

Introduction à DAX dans Power BI

3 h
152.1K
Boostez Power BI en maîtrisant les expressions d’analyse de données (DAX) : colonnes calculées, tableaux et mesures clés.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow