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

10 réponses

4 5 6 7 8
Avatar
isabelle
ps/

ne compter pas plus de 30 jours pour les mois complets
sinon compter de la borne inférieur à la borne supérieur en incluant celle-ci

--
isabelle



Le 2012-04-25 10:16, isabelle a écrit :
salut Denis,

c'est parce ce que je compte 28 jours pour le mois de mai,
selon les dernieres explications de Guido !

1 2010-05-04
2 2010-05-05
3 2010-05-06
4 2010-05-07
5 2010-05-08
6 2010-05-09
7 2010-05-10
8 2010-05-11
9 2010-05-12
10 2010-05-13
11 2010-05-14
12 2010-05-15
13 2010-05-16
14 2010-05-17
15 2010-05-18
16 2010-05-19
17 2010-05-20
18 2010-05-21
19 2010-05-22
20 2010-05-23
21 2010-05-24
22 2010-05-25
23 2010-05-26
24 2010-05-27
25 2010-05-28
26 2010-05-29
27 2010-05-30
28 2010-05-31


Avatar
Gloops
MichD a écrit, le 25/04/2012 15:35 :
Bonjour Isabelle,

La dernière formule que j'ai publiée utilise des mois de 30 jours s auf pour le mois de
février.
Selon le demandeur, ce n'est pas ce qu'il désire...

À toi, il énonce le contraire! Les exemples qu'il a fournis ne conc ordent pas avec sa
demande!

Bonne chance dans tes cogitations! ;-))




Bonjour,

Je verrais bien :
1. Analyse
2. Rédaction des spécifications de développement
3. Validation de la demande
4. Développement
5. Recette

Pas par goût de la provoc, mais parce que si le 31ème jour d'un mois
doit être comptabilisé ou non, si on inclut les week-ends, les jours
fériés, c'est dans la phase 1, que ça doit se dire. Pas dans la 5.

On en est à un mois demain avec les meilleurs du newsgroup pour calcule r
un écart de dates. ça doit bien signifier un malaise quelconque dans la
démarche ?

Je ne devrais pas pousser la mauvaise foi si loin, ça fait dix jours qu e
MichD est intervenu. Mais au bout de dix jours, c'est dommage de ne pas
être d'accord sur ce qui doit être fait. Et sortir les formules Excel
avant d'être d'accord sur ce qui doit être fait, à mon humble avis, ce
n'est un service à rendre à personne.

J'ai vu jouer ça en milieu professionnel, non pas qu'on ait dit que le
résultat est faux, mais on a attendu que le produit soit fini pour dire
qu'on avait besoin aussi d'autre chose en plus, et du coup le processus
de validation prend encore du temps. Le commercial m'a dit, ah ben c'est
de ta faute, tu n'as pas fait signer de specs ...
Et de fait, à bien y réfléchir ...

Enfin il faut dire que gagner sa croûte en travaillant par petits bouts ,
comme ça, je n'avais pas vu jouer ailleurs, encore. Pour simplifier je
vais m'abstenir de mêler la politique à ça. Beaucoup de choses ont été
dites, et pas toutes fausses.

Quand on prend un taxi, si on indique une direction un peu vague, le
trajet risque d'être tarabiscoté. Surtout si on dit qu'on ne veut pas
prendre le périph, que finalement si à cet endroit-là il faut bien, et
puis qu'un peu plus loin ah non cet immeuble-là on ne le sent pas ...
Dans ce genre de trajet, il y a un truc que le client n'aime pas, en
général, c'est la note à payer.
Avatar
Gloops
Jacquouille a écrit, le 25/04/2012 16:11 :
Pourquoi, dès lors, vouloir compter ce que l'on appelle les bornes? D ès
lors, on en arrivera, suivant les demandeurs, à avoir 3-1= 1 si je
compte uniquement ce qu'il y a entre les deux bornes, ou bien une
soustraction normale (3-1=2) ou bien, 3-1=3 si je compte les bornes .....



Ah, oui les problèmes d'intervalles ... ça ne nous rajeunit pas, ça , pas
vrai ? ça nous ramène ... eh bien à la primaire, comme tu le remarq ues,
en même temps que les problèmes de robinets (avec lesquels sont
brouillés les gens qui ont fait l'école buissonnière, ce jour-là) , qui
ressemblent bien aux questions sur l'heure où deux trains vont se
rencontrer ...

Quand je pense au nombre de gens qui maugréent sur les problèmes de
robinets, je me demande si à l'école on ne devrait pas en faire un pe u
plus, qui à ne répéter que quatre ou cinq fois les grandes inventio ns
(mais ça ... ça a dû évoluer).
Avatar
Gloops
Gloops a écrit, le 25/04/2012 16:49 :
qui à ne répéter que quatre ou cinq fois les grandes inventions ( mais ça
... ça a dû évoluer).



Oups, quelquefois il reste une lettre, dans les fils.
Mais là, trois d'un coup, dites donc.

Alors je voulais dire "quitte à ne répéter" ...
Avatar
MichD
| ne compter pas plus de 30 jours pour les mois complets
| sinon compter de la borne inférieur à la borne supérieur en incluant celle-ci

.... Et c'est sans compter que si la date de départ est le 31 d'un mois de 31 jours,
on doit compter 1 pour ce jour qui devrait avoir 30 jours...

M'enfin, c'est ce que je pense avoir compris...!
Avatar
isabelle
salut Denis,

pour ce cas j'avais compris que c'est un mois incomplet donc
du 31 au 31 si on compte les 2 bornes ça donne 2
mais je comprend en sous entendu qu'on ne compte pas de doublon.
j'en conclue que sans une bonne description d'un problème tout le monde y va avec sa compréhension.
c'est malheureux pour le demandeur si toute fois celui-ci désirait vraiment avoir une solution,
pour ma part je me suis bien amusé ;-)

--
isabelle



Le 2012-04-25 11:09, MichD a écrit :


| ne compter pas plus de 30 jours pour les mois complets
| sinon compter de la borne inférieur à la borne supérieur en incluant celle-ci

.... Et c'est sans compter que si la date de départ est le 31 d'un mois de 31 jours,
on doit compter 1 pour ce jour qui devrait avoir 30 jours...

M'enfin, c'est ce que je pense avoir compris...!

Avatar
MichD
| si toute fois celui-ci désirait vraiment avoir une solution,
| pour ma part je me suis bien amusé ;-)

Bien, si la dernière description est la bonne, il a une solution, la dernière fonction que
j'ai publiée (pas celle du fichier, mais celle qui a suivi puisque dans le fichier,
j'avais fait une erreur de transcription. Il ne lui reste plus qu'à la traduire en
français.

Et je me suis également bien amusé!
;-))

MichD
---------------------------------------------------------------
Avatar
Guido
Bonsoir à vous tous,

Quitte à me répéter, je suis profondément désolé que ma questio n provoque un aussi grand sujet de discussion.

Effectivement, dès le début, je me suis mal exprimé et j'ai essayé de rectifier le tir avec mes messages dont celui du 19 avril en ayant int égré le tableau en retour avec les modifications et explications (qui e ncore une fois, n'ont pas été à la hauteur). J'y avais tenté de r éexpliquer la méthode de calcul.

Je vous prie donc, d'excuser ce manque de clairvoyance dans ma tentative d' explication d'une manière mathématique peu conventionelle (où les jo urs fériés n'entrent pas en matière très cher Jacquouille).

Denis, la dernière formule, je l'ai traduite et testé dans le dernier t ableau qu'Isabelle à mis en ligne. Je ne pense pas qu'insérer la traduc tion de la formule ici soit pertinente, mais je me retrouve toujours avec l es minis écarts (voici des exemples).
29.12.2011 - 29.01.2012 = ce décompte donne 32 (résultat de ta formul e = 31)
29.12.2011 - 29.02.2012 = ce décompte donne 62 (résultat de ta formul e = 60)
04.12.2011 - 03.01.2012 = ce décompte donne 31 (résultat de ta formul e = 30)
04.05.2010 - 02.08.2010 = ce décompte donne 90 (résultat de ta formul e = 89)


Ta meilleure formule (que j'utilise actuellement) et celle-ci (formule nomm ée MichD_4) :
=SI(MOIS(A7)=MOIS(B7);DATEDIF(A7;B7;"d")+1;(ABS(MOIS(B7)-MOIS(A7)-1)*30 +(30-MIN(SI(JOUR(A7)>0;30;JOUR(A7)-1);30))+MIN(SI(JOUR(B7)>29;30;JOUR(B 7)+1);30)))

Elle me calcule juste les différents écarts de dates ci-dessous.

(Règle 1.)
Pour le calcul d'un mois complet (31 jours) : (si un mois est complet = 3 0 jours, sauf pour le mois de février)
01.01.2011 au 31.01.2011 = ce décompte donne 30 jours
01.04.2011 au 30.04.2011 = ce décompte donne 30 jours

(Règle 1bis.)
pour le calcul d'un mois complet (février): (calcul le nombre de jours ex act)
01.02.2011 au 28.02.2011 = ce décompte donne 28 jours
01.02.2012 au 29.02.2012 = ce décompte donne 29 jours

(Règle 2.)
pour les décomptes de plusieurs mois complets (30 jours) : (si un mois es t complet = 30 jours, sauf pour février)
01.03.2011 au 30.04.2011 = ce décompte donne 60 jours
01.07.2011 au 31.08.2011 = ce décompte donne 60 jours

des exemples supplémentaires ci-dessous sont des tests de faisabilité p our la formule.

(Règle 3.)
Elle me donne également le bon résultat :
04.05.2010 - 31.05.2010 = ce décompte donne 28
01.02.2010 - 27.02.2010 = ce décompte donne 27
04.05.2010 - 02.08.2010 = ce décompte donne 90
31.03.2010 - 05.04.2010 = ce décompte donne 6

Le soucis, est arrivé lors de la tentative d'intégration d'un calcul d' écart entre une année et l'année+1.

Comme par exemple :
01.12.2011 - 01.01.2012 = ce décompte donne 31

Les différentes formules m'ont donné les résultats erronés suivants pour ce calcul :
392 392 32 30


C'est là, qu'Isabelle a sorti une formule Excellente qui calcule sur l'an née en cours et également sur l'écart que pourrait produire Année+A nnée+1 (ex: 2011-2012).

Le seul soucis pour que je puisse utiliser la formule au boulot, qui marche également à merveille, c'est qu'elle n'utilise pas la Règle 1, soit calculer un écart d'un mois complet (tout seul ou mois isolé = 01.01. 2011-31.01.2011) uniquement sur 30 jours.

La formule initialement posée (voir mon message no 1) calculait correctem ent selon toutes les règles, sauf la règle 1bis (février = 28/29 jo urs max.). Elle me calcule le mois de février sur 30 jours. Ce qui m'obli geait à calculer différemment les écarts de périodes où le mois d e février était compris.

A ce jour, la formule MichD_4 est utilisée au boulot et je splitte les ca lculs qui seraient à faire d'une année à une autre (2011-2012).

A vous tous chers MVP, qui avez tenté de me donner un coup de main, je vo us remercie et comprendrai aisément qu'une solution ne puisse être trou vée.

Bonne soirée

Guido
Avatar
MichD
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
Gloops
isabelle a écrit, le 25/04/2012 17:41 :
j'en conclue que sans une bonne description d'un problème tout le mon de
y va avec sa compréhension.



Tu comprends pourquoi, quand j'ai vu débarquer des formules, j'ai
abandonné :)

Ah, l'analyse, la sémantique, c'est lourd, c'est rarement marrant (à
moins d'avoir du talent pour, j'imagine). Mais, ça met tout le monde au
diapason sur ce qu'on cherche à faire.

Tu as déjà entendu une chorale avec six personnes en la, deux en la
dièse, trois en la bémol, une ou deux en sol, et une ou deux en si ?
Chacun sur son octave, parce que là-dessus quand même ne charrions pa s.
4 5 6 7 8