Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Calcul d'un écart de date (Correctif de formule SVP)

74 réponses
Avatar
Guido
Bonjour =E0 vous tous,

un petit soucis de formule de d=E9compte de dates. Qui peut m'apporter une =
solution.

=3DSI(JOUR(A1)=3D1;30;FIN.MOIS(A1;0)-A1+1)+SI(FIN.MOIS(B1;0)=3DB1;30;JOUR(B=
1))+JOURS360(FIN.MOIS(A1;0);FIN.MOIS(B1;0))-30

Cette formule devrait me donner les r=E9sultats suivants en fonction d'une =
simple r=E8gle commerciale de 30 jours, mais qui devrait calculer le mois d=
e f=E9vrier selon son nombre exacte de jours (soit 28 jours, soit 29 jours)=
.

01.01.2010 27.01.2010 27 jours
01.02.2010 27.02.2010 27 jours
01.02.2010 28.02.2010 28 jours
01.02.2012 29.02.2012 29 jours
04.05.2010 31.05.2010 28 jours
01.06.2010 30.06.2010 30 jours
01.07.2010 31.08.2010 60 jours
01.09.2010 30.09.2010 30 jours
04.05.2010 02.08.2010 90 jours
15.05.2010 19.11.2010 186 jours


j'ai par exemple un soucis avec le 2=E8me exemple. Il ne compte que 25 jour=
s sur le mois de f=E9vrier. Sinon tout le reste semble correspondre.

Qui saurait m'aider, dans la mise au point de cette formules pseudo commerc=
iale ??

Guido

4 réponses

4 5 6 7 8
Avatar
Gloops
Ah ben tu vois, je suis formé à la vieille école, où on commence par
former les gens à l'environnement de l'entreprise, à ses rouages
internes, à quelques notions de psychologie même si ça c'est un vas te
domaine, puis à des méthodes d'analyse pour savoir poser les bonnes
questions, avant de s'intéresser, pour avoir un exemple de mise en
Âœuvre, à quelques langages de programmation. Même si on se doute bi en
que les langages qu'on apprend pendant la formation, ça serait un sacré
hasard que ça soit ceux qu'on mettra en pratique pendant sa carrière.

Ce n'est pas à rigoler que tout ça me prépare le mieux, mais parfoi s, ça
m'aide à savoir où je vais quand il s'agit d'automatiser un traitemen t.
C'est mieux de prendre un peu de temps pour une parenthèse artistique,
parfois. Sur un newsgroup Excel, il se peut que je tarde à déceler le s
sujets qui s'y prêtent.

Voilà un peu le genre de considérations qui mène à penser que les bons
sites web (pour prendre un exemple), c'est à deux qu'ils se montent : u n
technicien pas trop fermé au côté artistique, et un artiste pas tro p
fermé au côté technique. Une fine alchimie pas toujours évidente.

C'est l'exemple qui m'est venu à l'esprit car je suis plongé (oh, en
fait, en cours d'immersion) là-dedans, mais je suis sûr qu'on peut en
trouver plein d'autres.
En matière de fichier Excel, il doit y avoir moyen de faire des jolies
choses, après il faut voir si c'est vers ce genre d'outil que se
tournent en priorité les gens dont c'est le premier but.
Avatar
Guido
Bonsoir Denis

tout d'abord merci pour ta formule.
Je te joins un fichier retour (modèle précédent d'Isabelle) ou les ca lculs sont effectués pour tester la formule.

La formule compte bien les périodes comprenant des situations avec févr ier, ou des débuts de décomptes commençant par un jour de fin de mois .

Par contre, je me trouve avec genre d'erreur de calcul :
le calcul intervenant durant la période de février et de mars (avant et après) me compte une différence de 2 jours.

Voici le tableau: http://cjoint.com/?BDDwOIEhj19

A bientôt

Guido


Le jeudi 26 avril 2012 15:04:36 UTC+2, MichD a écrit :
Une petite dernière pour la route :

Validation matricielle : Maj + Ctrl + Enter

Elle doit être près de ce que tu cherches ! ;-))
'-----------------------------
=IF(AND(YEAR(A3)=YEAR(B3);MONTH(A3)=MONTH(B3));MIN(30;DATEDIF(A3;B3 ;"d")+1);
DATEDIF(A3;B3;"M")*30+(IF(MIN(30-DAY(A3)+1;30)+MIN(DAY(B3);30)-30<=0;0; -30))
+MIN(IF(DAY(A3)ÚY(EOMONTH(A3;0));1;DAY(EOMONTH(A3;0))-DAY(A3)+1);30)
+IF(DAY(B3)ÚY(EOMONTH(B3;0));30;DAY(B3))
-((ROUND(((SUM(IF(DAY(EOMONTH(ROW(INDIRECT(A3&":"&B3));0))(;1))/28)*2 )
+((SUM(IF(DAY(EOMONTH(ROW(INDIRECT(A3&":"&B3));0)));1))/29)*1);0))))
'-----------------------------


MichD
---------------------------------------------------------------
Avatar
MichD
Bonjour,

Le fichier contient une formule pour tous les cas de figure que tu as énoncés.
http://cjoint.com/?BEbeR45UPHO

J'espère que le fichier contenait tous les cas possibles, car je n'ai pas l'intention
d'y consacrer plus de temps...! Je suis déjà à court actuellement !!!

La formule :
'-----------------------------------------
=IF(AND(YEAR(A7)=YEAR(B7);MONTH(A7)=MONTH(B7));MIN(30;DATEDIF(A7;B7;"d")+1);
DATEDIF(A7;B7;"M")*30+(IF(MIN(30-DAY(A7)+1;30)+MIN(DAY(B7);30)-30<=0;0;-30)+
IF(AND(MONTH(A7)=2;DAY(EOMONTH(A7;0))();2;0)+
IF(AND(MONTH(A7)=2;DAY(EOMONTH(A7;0))));1;0))+
IF(DAY(EOMONTH(A7;0)));IF(DAY(A7)>DAY(B7);-1;1);0)+
MIN(IF(DAY(A7)ÚY(EOMONTH(A7;0));1;DAY(EOMONTH(A7;0))-DAY(A7)+1);30)+
IF(DAY(B7)ÚY(EOMONTH(B7;0));30;DAY(B7))-
ROUND((((((SUM(IF(DAY(EOMONTH(ROW(INDIRECT(A7&":"&B7));0))(;1))/28)*2)+
((SUM(IF(DAY(EOMONTH(ROW(INDIRECT(A7&":"&B7));0)));1))/29)*1))));0))
'-----------------------------------------


MichD
---------------------------------------------------------------
Avatar
Guido
Bonsoir Denis

je te remercie pour ce travail.

Cela mérite bien une Bi...re ou une Fée Verte de bien de chez nous.

Encore merci et à bientôt

Guido


Le mardi 1 mai 2012 04:47:45 UTC+2, MichD a écrit :
Bonjour,

Le fichier contient une formule pour tous les cas de figure que tu as é noncés.
http://cjoint.com/?BEbeR45UPHO

J'espère que le fichier contenait tous les cas possibles, car je n'ai p as l'intention
d'y consacrer plus de temps...! Je suis déjà à court actuellement ! !!

La formule :
'-----------------------------------------
=IF(AND(YEAR(A7)=YEAR(B7);MONTH(A7)=MONTH(B7));MIN(30;DATEDIF(A7;B7 ;"d")+1);
DATEDIF(A7;B7;"M")*30+(IF(MIN(30-DAY(A7)+1;30)+MIN(DAY(B7);30)-30<=0;0; -30)+
IF(AND(MONTH(A7)=2;DAY(EOMONTH(A7;0))();2;0)+
IF(AND(MONTH(A7)=2;DAY(EOMONTH(A7;0))));1;0))+
IF(DAY(EOMONTH(A7;0)));IF(DAY(A7)>DAY(B7);-1;1);0)+
MIN(IF(DAY(A7)ÚY(EOMONTH(A7;0));1;DAY(EOMONTH(A7;0))-DAY(A7)+1);30)+
IF(DAY(B7)ÚY(EOMONTH(B7;0));30;DAY(B7))-
ROUND((((((SUM(IF(DAY(EOMONTH(ROW(INDIRECT(A7&":"&B7));0))(;1))/28)*2 )+
((SUM(IF(DAY(EOMONTH(ROW(INDIRECT(A7&":"&B7));0)));1))/29)*1))));0))
'-----------------------------------------


MichD
---------------------------------------------------------------
4 5 6 7 8