Optimiser une formule de calcul de la différence de mois entre deux dates
Le
Norvi
Bonjour,
J'ai une formule qui me permet de calculer le nombre de mois entre deux
dates, par exemple entre le 1er février 2006 et le 15 mars 2006, il y
a 1,48387097 mois (mars ayant 31 jours, la moitié du mois se situe
entre le 15 et le 16).
La formule étant utilisé dans plusieurs milliers de cellule, elle est
super longue a calculer. Est-ce qu'il y aurait un moyen de la
simplifier :
=SI(MOIS(Q40)=MOIS(Q41);(JOUR(Q41)-JOUR(Q40)+1)/(JOUR(DATE(ANNEE(Q40);M=
OIS(Q40)+1;0))-JOUR(Q40)+1);SI((JOUR(DATE(ANNEE(Q40);MOIS(Q40)+1;0))-JOUR(Q=
40)+1)/JOUR(DATE(ANNEE(Q40);MOIS(Q40)+1;0))+JOUR(Q41)/JOUR(DATE(ANNEE(Q41);=
MOIS(Q41)+1;0))<=1;DATEDIF(Q40;Q41;"m")+(JOUR(DATE(ANNEE(Q40);MOIS(Q40)+1=
;0))-JOUR(Q40)+1)/JOUR(DATE(ANNEE(Q40);MOIS(Q40)+1;0))+JOUR(Q41)/JOUR(DATE(=
ANNEE(Q41);MOIS(Q41)+1;0));SI(DATEDIF(Q40;Q41;"m")<=1;(JOUR(DATE(ANNEE(Q4=
0);MOIS(Q40)+1;0))-JOUR(Q40)+1)/JOUR(DATE(ANNEE(Q40);MOIS(Q40)+1;0))+JOUR(Q=
41)/JOUR(DATE(ANNEE(Q41);MOIS(Q41)+1;0));DATEDIF(Q40;Q41;"m")+(JOUR(DATE(AN=
NEE(Q40);MOIS(Q40)+1;0))-JOUR(Q40)+1)/JOUR(DATE(ANNEE(Q40);MOIS(Q40)+1;0))+=
JOUR(Q41)/JOUR(DATE(ANNEE(Q41);MOIS(Q41)+1;0))-1)))
Merci pour votre aide.
N.
J'ai une formule qui me permet de calculer le nombre de mois entre deux
dates, par exemple entre le 1er février 2006 et le 15 mars 2006, il y
a 1,48387097 mois (mars ayant 31 jours, la moitié du mois se situe
entre le 15 et le 16).
La formule étant utilisé dans plusieurs milliers de cellule, elle est
super longue a calculer. Est-ce qu'il y aurait un moyen de la
simplifier :
=SI(MOIS(Q40)=MOIS(Q41);(JOUR(Q41)-JOUR(Q40)+1)/(JOUR(DATE(ANNEE(Q40);M=
OIS(Q40)+1;0))-JOUR(Q40)+1);SI((JOUR(DATE(ANNEE(Q40);MOIS(Q40)+1;0))-JOUR(Q=
40)+1)/JOUR(DATE(ANNEE(Q40);MOIS(Q40)+1;0))+JOUR(Q41)/JOUR(DATE(ANNEE(Q41);=
MOIS(Q41)+1;0))<=1;DATEDIF(Q40;Q41;"m")+(JOUR(DATE(ANNEE(Q40);MOIS(Q40)+1=
;0))-JOUR(Q40)+1)/JOUR(DATE(ANNEE(Q40);MOIS(Q40)+1;0))+JOUR(Q41)/JOUR(DATE(=
ANNEE(Q41);MOIS(Q41)+1;0));SI(DATEDIF(Q40;Q41;"m")<=1;(JOUR(DATE(ANNEE(Q4=
0);MOIS(Q40)+1;0))-JOUR(Q40)+1)/JOUR(DATE(ANNEE(Q40);MOIS(Q40)+1;0))+JOUR(Q=
41)/JOUR(DATE(ANNEE(Q41);MOIS(Q41)+1;0));DATEDIF(Q40;Q41;"m")+(JOUR(DATE(AN=
NEE(Q40);MOIS(Q40)+1;0))-JOUR(Q40)+1)/JOUR(DATE(ANNEE(Q40);MOIS(Q40)+1;0))+=
JOUR(Q41)/JOUR(DATE(ANNEE(Q41);MOIS(Q41)+1;0))-1)))
Merci pour votre aide.
N.

Poser une question


outre la possible existence d'une formule plus directe, pour répondre à ta
question, indépendemment de son contenu tel qu'explicite,
Insertion Nom Définir un nom
maformule
réfère à : =SI(MOIS(Q40)=MOIS(Q41);(JOUR(Q41)-JOUR(....
patatipatata....)))
ensuite
=maformule
Cordialement.
lSteph
"Norvi"
Bonjour,
J'ai une formule qui me permet de calculer le nombre de mois entre deux
dates, par exemple entre le 1er février 2006 et le 15 mars 2006, il y
a 1,48387097 mois (mars ayant 31 jours, la moitié du mois se situe
entre le 15 et le 16).
La formule étant utilisé dans plusieurs milliers de cellule, elle est
super longue a calculer. Est-ce qu'il y aurait un moyen de la
simplifier :
=SI(MOIS(Q40)=MOIS(Q41);(JOUR(Q41)-JOUR(Q40)+1)/(JOUR(DATE(ANNEE(Q40);MOIS(Q40)+1;0))-JOUR(Q40)+1);SI((JOUR(DATE(ANNEE(Q40);MOIS(Q40)+1;0))-JOUR(Q40)+1)/JOUR(DATE(ANNEE(Q40);MOIS(Q40)+1;0))+JOUR(Q41)/JOUR(DATE(ANNEE(Q41);MOIS(Q41)+1;0))<=1;DATEDIF(Q40;Q41;"m")+(JOUR(DATE(ANNEE(Q40);MOIS(Q40)+1;0))-JOUR(Q40)+1)/JOUR(DATE(ANNEE(Q40);MOIS(Q40)+1;0))+JOUR(Q41)/JOUR(DATE(ANNEE(Q41);MOIS(Q41)+1;0));SI(DATEDIF(Q40;Q41;"m")<=1;(JOUR(DATE(ANNEE(Q40);MOIS(Q40)+1;0))-JOUR(Q40)+1)/JOUR(DATE(ANNEE(Q40);MOIS(Q40)+1;0))+JOUR(Q41)/JOUR(DATE(ANNEE(Q41);MOIS(Q41)+1;0));DATEDIF(Q40;Q41;"m")+(JOUR(DATE(ANNEE(Q40);MOIS(Q40)+1;0))-JOUR(Q40)+1)/JOUR(DATE(ANNEE(Q40);MOIS(Q40)+1;0))+JOUR(Q41)/JOUR(DATE(ANNEE(Q41);MOIS(Q41)+1;0))-1)))
Merci pour votre aide.
N.
Tu intégres les 2 bornes dans tes calculs. Est-ce vraiment logique ??
Soit.
Selon à quoi sert le résultat, il me semble que l'on peut arriver à une
approximation "raisonnable" avec une formule plus courte
ÚTEDIF(début;fin+1;"m")+DATEDIF(début;fin+1;"md")/30.43
Curieux quand même tout ça.
AV
Le problème est qu'il me faut le résultat le plus précis possible,
avec au moins 4 décimales.
Dans ton exemple AV, si on prend par exemple le "nombre de mois" entre
le 1 et le 15 février, on trouve 0.4929 alors qu'en réalité, c'est
0.5357, ce qui fait tout de même une différence de 8%. Et même s'il
n'y a que des différence de 0,5%, ca peut faire mal sur des montants
importants.
(par contre je viens de me rendre compte que ma formule ne marche pas
s'il y a entre 12 et 13 mois de différence !)
N.
Ca ça s'appele un postulat .... qui n'engage que toi-même !
Entre aujourd'hui et demain, combien de jours ? etc....
Dans ce type de calcul, il me parait indispensable de préciser si les bornes
sont incluses ou pas.
Il n'y a pas d'évidence en ce domaine, comme tu le laisses supposer
En ce qui concerne ta question et les réponses attendues, une formule :
ÚTEDIF(début;fin+1;"m")+DATEDIF(début;fin+1;"md")/(32-JOUR(fin-JOUR(fin)+32))
PS : Il reste des zones d'ombre par rapport aux résultats renvoyés par ta
formule...
Exemple : début 15/09/06 >> fin : 16/09/06
Ta formule renvoie 0.125..
Quelle est la logique ?
AV
Effectivement, ce n'est qu'un postulat....
Et re-effectivement, il n'y a pas de logique, puisque le résultat est
faux....
par contre, ta formule beaucoup plus courte (faut que je me penche
dessus pour la comprendre !!!) a l'air de fonctionner nettement mieux.
Merci beaucoup.
N.