---
title: "EDATE DAX : échéances, fins de mois, EOMONTH, DATEADD"
description: "EDATE en DAX : calculer une échéance, comportement en fin de mois, 12 mois glissants, et différence avec EOMONTH et DATEADD. Exemples commentés."
url: "https://data-slconsulting.com/reference-power-query-dax/edate-dax-power-bi/"
lang: "fr-FR"
---

Référence DAX · 5 min de lecture

# EDATE : ajouter ou retirer des mois à une date en DAX

Calculer une échéance, une fin de contrat ou le début d’une période glissante. Avec le piège des fins de mois qui glissent quand on enchaîne les calculs.

`EDATE` renvoie la date située un nombre donné de mois avant ou après une date de départ, le même jour du mois. Le 15 mars plus deux mois donne le 15 mai. Un nombre négatif remonte dans le temps.

Elle sert à toutes les dates qui se comptent en mois : échéance d’une facture payable à deux mois, date de renouvellement d’un abonnement, fin d’une garantie. En analyse, elle fixe aussi la borne de départ d’un cumul sur douze mois glissants.

Syntaxe

## Une date, un nombre de mois

```
EDATE(<start_date>, <months>)
```

| Paramètre | Rôle |
| --- | --- |
| `start_date` | La date de départ, au format date ou sous forme de texte. Si ce n’est pas une date valide, EDATE renvoie une erreur. |
| `months` | Le nombre de mois à ajouter, négatif pour reculer. **Un nombre décimal est tronqué** : 1,9 compte pour 1. |

La fonction renvoie une date. Quand le jour demandé n’existe pas dans le mois d’arrivée, elle renvoie le dernier jour de ce mois : selon la documentation de l’éditeur, le 29, le 30 et le 31 janvier 2009 plus un mois donnent tous le 28 février 2009. Elle n’est pas prise en charge en mode DirectQuery dans les colonnes calculées et les règles RLS.

Exemples

## Une colonne, une valeur, une mesure

Le modèle relie une table `Ventes` (Date, Montant) à `Produits` et à une table `Calendrier`. La mesure de base est `CA = SUM(Ventes[Montant])`.

### Une date d’échéance à deux mois

```
Échéance = EDATE(Ventes[Date], 2)
```

En colonne calculée dans `Ventes`, chaque vente reçoit sa date d’échéance, le même jour du mois deux mois plus tard. Une vente du 10 avril est due le 10 juin.

### Le comportement en fin de mois

```
EDATE(DATE(2026, 1, 31), 1)
```

Le 31 février n’existe pas : le résultat est le 28 février 2026, dernier jour du mois d’arrivée.

### Le chiffre d’affaires des douze derniers mois

```
CA 12 mois glissants =
VAR Fin = MAX(Calendrier[Date])
VAR Debut = EDATE(Fin, -12) + 1
RETURN
CALCULATE(
[CA],
FILTER(
ALL(Calendrier),
Calendrier[Date] >= Debut && Calendrier[Date] <= Fin
)
)
```

Pour un mois de mars 2026, la fenêtre va du 1er avril 2025 au 31 mars 2026. Le `+ 1` évite de compter deux fois le jour anniversaire, et `ALL(Calendrier)` libère la fenêtre du filtre de mois posé par le visuel.

En pratique

## Les fins de mois qui glissent

Un échéancier mensuel démarre le 31 janvier. Chaque échéance est calculée à partir de la précédente : `EDATE(échéance précédente, 1)`. Février tombe le 28, comme prévu. Mais mars tombe ensuite le 28 aussi, puis avril, puis tous les mois suivants : le calcul part du 28 février, et EDATE garde le même jour.

La parade est double. D’abord, calculer chaque échéance à partir de la date d’origine et non de la précédente : `EDATE(DateDébut, N)`, où N est le numéro de l’échéance. Le 31 janvier plus deux mois donne bien le 31 mars.

Ensuite, si la règle de gestion est « payable en fin de mois », la bonne fonction n’est pas EDATE mais `EOMONTH`, qui renvoie toujours le dernier jour du mois :

```
Échéance fin de mois = EOMONTH(Ventes[Date], 1)
```

Une vente du 10 avril est alors due le 31 mai. Choisir entre les deux, c’est traduire fidèlement les conditions de paiement, pas une question de goût.

Questions fréquentes

## Ce qu’on nous demande sur EDATE

### Quelle différence entre EDATE et EOMONTH ?

EDATE garde le jour du mois de la date de départ : le 10 avril plus un mois donne le 10 mai. EOMONTH renvoie toujours le dernier jour du mois visé : le 10 avril plus un mois donne le 31 mai. Autre nuance, EDATE tronque un nombre de mois décimal alors que EOMONTH l’arrondit.

### Quelle différence entre EDATE et DATEADD ?

EDATE renvoie une seule date, calculée à partir d’une valeur. DATEADD renvoie une table de dates décalées à partir des dates du contexte courant, prises dans une colonne de dates. On utilise DATEADD comme filtre dans CALCULATE pour comparer des périodes, et EDATE pour calculer une date précise.

### EDATE accepte-t-elle une date au format texte ?

Oui, mais le texte est interprété selon les paramètres régionaux de l’ordinateur : 1/8/2009 peut être lu comme le 8 janvier ou le 1er août. Mieux vaut convertir les dates au bon type dès Power Query.

### Comment calculer une date antérieure ?

Avec un nombre de mois négatif. EDATE(Ventes[Date], -3) renvoie la date située trois mois avant, le même jour du mois.

À côté

## Pour aller plus loin

- [`COUNTAX`](https://data-slconsulting.com/reference-power-query-dax/countax-dax-power-bi/)
- [Créer un calendrier dynamique](https://data-slconsulting.com/reference-power-query-dax/creer-un-calendrier-dynamique-power-bi/), indispensable aux calculs sur période.
- [Les fonctions de date de Power Query](https://data-slconsulting.com/dates-power-query/), pour typer les dates en amont.
- [Calculer un cumul en DAX](https://data-slconsulting.com/cumul-dax-power-bi/).
- [La référence complète Power Query et DAX](https://data-slconsulting.com/reference-power-query-dax/).

**Sources.** Documentation officielle de l’éditeur, consultée le 13 octobre 2026 : [EDATE](https://learn.microsoft.com/fr-fr/dax/edate-function-dax), [EOMONTH](https://learn.microsoft.com/fr-fr/dax/eomonth-function-dax), [DATEADD](https://learn.microsoft.com/fr-fr/dax/dateadd-function-dax).

## Vos échéances ne tombent pas à la bonne date ?

Nous reprenons vos calculs de dates pour qu’ils appliquent exactement vos conditions de paiement et de contrat.

[Réserver un appel](https://data-slconsulting.com/contact/) ou 01 83 64 60 25

---

Version Markdown de https://data-slconsulting.com/reference-power-query-dax/edate-dax-power-bi/ (pour les agents IA : en-tête Accept: text/markdown, suffixe .md ou ?mode=agent). Index du site pour les agents : https://data-slconsulting.com/llms.txt. API publique : https://data-slconsulting.com/developers/. Contact : contact@data-slconsulting.com, 01 83 64 60 25.
