Nombre de jours mois par mois entre deux dates

Bonjour à tous.

Je possède deux dates : une date de début (case B1) et une date de fin (case C1). Je souhaite connaître le nombre de jours mensuels entre ces deux dates (de janvier à décembre), sachant que les jours de début et de fin sont inclus.

Je cherche donc à créer des formules pour les cases C2 à N2, correspondant aux mois de janvier à décembre.

Voici le résultat espéré :

2026 06 03 165425

La difficulté consiste à trouver des formules qui puissent aussi bien s'appliquer à des dates de la même année (ex : 28/02/2025 et 29/11/2025) qu'à des dates avec une année différente (ex : 28/02/2024 et 29/11/2025).

Idéalement, il faudrait aussi tenir compte des années bissextiles pour le mois de février (ex : 29/02/2024)

Bref, ça peut sembler simple sur le papier, mais c'est un casse-tête.

Une IA m'a proposé des formules, mais dès que je change l'année dans une des deux dates, cela ne fonctionne plus du tout :

2026 06 03 165507

Si cela peut vous servir, les voici malgré tout.

Janvier :

=MAX(0;MIN(B2;DATE(ANNEE(B2);2;1)-1)-MAX(A2;DATE(ANNEE(A2);1;1))+1)+SI(ANNEE(A2)<ANNEE(B2);MAX(0;MIN(B2;DATE(ANNEE(B2);1;31))-MAX(A2;DATE(ANNEE(A2)+1;1;1))+1);0)

Février :

=MAX(0;MIN(B2;DATE(ANNEE(B2);3;1)-1)-MAX(A2;DATE(ANNEE(A2);2;1))+1)+SI(ANNEE(A2)<ANNEE(B2);MAX(0;MIN(B2;DATE(ANNEE(B2);2;29))-MAX(A2;DATE(ANNEE(A2)+1;2;1))+1);0)

Mars :

=MAX(0;MIN(B2;DATE(ANNEE(B2);4;1)-1)-MAX(A2;DATE(ANNEE(A2);3;1))+1)+SI(ANNEE(A2)<ANNEE(B2);MAX(0;MIN(B2;DATE(ANNEE(B2);3;31))-MAX(A2;DATE(ANNEE(A2)+1;3;1))+1);0)

Avril :

=MAX(0;MIN(B2;DATE(ANNEE(B2);5;1)-1)-MAX(A2;DATE(ANNEE(A2);4;1))+1)+SI(ANNEE(A2)<ANNEE(B2);MAX(0;MIN(B2;DATE(ANNEE(B2);4;30))-MAX(A2;DATE(ANNEE(A2)+1;4;1))+1);0)

etc...

7ecart.xlsx (9.54 Ko)

Merci d'avance pour votre aide.

Bonjour à tous !

Et....

Une proposition, type formule unique dynamique, liée à ma compréhension du besoin !

En C2 :

=BYCOL($C$1:$N$1;LAMBDA(x;SOMME(--(MOIS(SEQUENCE(B2-A2+1;;A2))=x))))

Cette formule retourne ceci :

image

Remarque : Pour le cas 2; la proposition cumule les jours mensuels.

image

Bonjour à tous,

Une proposition en C2 et à recopier :

=SOMME(N(MOIS(SEQUENCE($B2-$A2+1;;$A2;1))=C$1))

@JFL et @BeGood : je vous remercie pour vos propositions de formules qui fonctionnent quand les deux dates sont dans la même année N. Bravo à vous !

Toutefois, dans les deux, et comme l'a fait remarquer JFL, les totaux N-1 et N se cumulent à partir de mars.

=> en mars, on a 62 jours, alors que j'aimerais n'avoir que 31 jours.
en avril, on a 60 jours, alors que j'aimerais n'avoir que 30 jours.

En gros, avec ce fichier Excel, je ne cherche à savoir que ce qui se passe durant l'année N.

Voici le résultat espéré avec une date de début inférieure à N (dans notre exemple, l'année N est 2025, et l'année N-1 est 2024)

capture d ecran 2026 06 04 081512

Et en suivant la même logique, ce qui se passe durant l'année N+1 (soit 2026 dans notre exemple) ne doit pas apparaître non plus :

capture d ecran 2026 06 04 081908

Donc, pour parvenir à ces résultats, il faudrait faire comprendre d'une manière ou d'une autre à Excel quelle est l'année N, pour qu'il sache ce qu'il doit faire apparaître ou non chaque mois.

Pour ma remarque concernant l'année bissextile, vous pouvez l'oublier, j'adapterai moi-même la formule en 2028, 2032, etc...

Merci encore pour le temps que vous consacrerez à ce cas particulier.

Bonjour à tous !

Je vous propose de tester cette version amendée qui intègre une année de référence (en C2) :

@JFL : cela marche en effet, et c'est exactement le résultat que je recherche.

Toutefois, si cela marche dans le fichier, je ne vois pas les formules, mais un simple LET( qui englobe les 12 cases mensuelles, et je ne peux donc pas copier/coller des formules telles quelles dans un autre fichier.

Or, je vais concrètement utiliser ces formules dans un fichier Excel qui contient des dizaines de milliers de lignes, comportant chacune une date de début et une date de fin. L'objectif et de me faire gagner du temps et d'avoir le nombre de jours mensuels pour chaque ligne.

Pensez-vous que cela est techniquement possible ?

Bonjour à tous de nouveau !

@JFL : cela marche en effet, et c'est exactement le résultat que je recherche.

Toutefois, si cela marche dans le fichier, je ne vois pas les formules, mais un simple LET( qui englobe les 12 cases mensuelles, et je ne peux donc pas copier/coller des formules telles quelles dans un autre fichier.

Il vous suffit d'agrandir la barre de formule.
Vous prendrez ainsi connaissance du détail de la formule.

image

A charge pour vous d'adapter les références des cellules à votre fichier réel.

Merci pour cette précision ô combien utile.

Je viens de faire un test et cela marche parfaitement. Vous n'imaginez pas le temps que vous allez me faire gagner.

Un immense merci à vous pour cette formule.

Bonjour

voici une autre approche sans SEQUENCE avec MAX, MIN et DATE

image

en C5 : =MAX(MIN($B5;DATE($C$2;C$4+1;0))-MAX($A5;DATE($C$2;C$4;1))+1;0)

à recopier sur toutes les lignes et toutes les colonnes

sinon en matricielle sur chaque ligne

=BYCOL($C$4:$N$4;LAMBDA(x;MAX(MIN($B5;DATE($C$2;x+1;0))-MAX($A5;DATE($C$2;x;1))+1;0)))

Stéphane

@raccourcix : je vous remercie pour ces deux alternatives qui fonctionnent elles aussi très bien.

Rechercher des sujets similaires à "nombre jours mois entre deux dates"