Casse-tête: dates, durées, échéances

  • Initiateur de la discussion Initiateur de la discussion plb
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

plb

XLDnaute Nouveau
Le but du tableau ci-joint est de dresser la liste des personnes répondant à certains critères et de leur faire parvenir un document personnalisé en fonction des résultats.
Sur base de la date d'entrée en fonction dans une entreprise et en tenant compte de l'âge exact de la personne, il faut calculer si cette personne a été employée plus de 300 mois.
Si oui, le système affiche le nombre de mois réellement prestés et indique 'NON' dans la case 'paiement de primes' car, dans ce cas, aucune prime supplémentaire ne doit être versée.
Si non, le problème se corse. Dans ce cas, si les 300 mois ne sont pas atteints à l'âge de 65 ans, on doit connaître la date exacte à laquelle cette personne aura été employée depuis 300 mois.

Exemple:

A la ligne 22 du tableau, une personne née le 3/1/1945 rejoint l'entreprise le 1/6/1990. Elle la quitte le 1/9/2000. Elle aura 65 ans le 3/1/2010. Le tableau indique qu'à 65 ans, cette personne aurait été employée depuis 235 mois et 2 jours, ce qui implique qu'il faudrait lui payer des primes jusqu'au 7/5/2015 pour atteindre 300 mois.

Effectuons une simulation manuelle.

Date de naissance: 3/1/1945
Entrée en service: 1/6/1990
Départ: 1/9/2000

Soit 10 et 3 mois de travail, soit 123 mois.

La personne aura 65 ans le 3/1/2010 et aura donc cotisé jusqu'à cette date.

Calcul: 3/1/2010-1/6/90= 19 ans 7 mois et 3 jours, soit 235 mois et 3 jours.

Dans 64 mois et 27 jours, il aurait atteint 300 mois de travail. Il faut trouver la date à laquelle il aurait atteint ces 300 mois.

calcul: 3/1/2010+64 mois et 27 jours= 31/5/2015

or le tableau indique le 7/5/2015.

Pourquoi ?

Merci !!! [file name=plb.zip size=5670]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/plb.zip[/file]
 

Pièces jointes

Bonjour Plb, bonjour PierreJean,

Pour moi la difféence de calcul tient à 2 choses:

* Tu n'utilises pas dans ta formule le nombre de jours en I22 tu fais 300-235 soit 65 mois au lieu de 64 mois et 28 jours.

* Lorsque tu ajoutes un nombre de jours à une date, Excel tient compte des mois de 28, 29, 30 ou 31 jours.

Je te propose d'utiliser la fonction Mois.decaler qui ne tiendra compte que du nombre de mois. On calcule le nombre de mois à partir de la formule:

ARRONDI.INF(300-(H22*30+I22)/30;0)qui donnera bien 64 mois

puis on ajoute le nombre de jours qui est le reste de la division par 30 du total de jours:

La formule complète:

=MOIS.DECALER(G22;ARRONDI.INF(300-(H22*30+I22)/30;0))+MOD(300-(H22*30+I22);30)

Voir exemple dans le fichier joint.

@+

Gael

Une petite erreur, dans la fin de formule, il faut écrire:

MOD(300*30-(H22*30+I22);30)

A corriger aussi dans l'exemple

Gael
[file name=Plb_V1.zip size=5022]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Plb_V1.zip[/file]

Message édité par: Gael, à: 03/05/2006 15:09
 

Pièces jointes

Merci Gaël.

Hélas, lorsque je tente de corriger le tableau que tu m'as envoyé en suivant tes instructions, Excel me renvoie un message d'erreur me disant que la formule contient une erreur.

En fait, j'utilise une version anglaise d'Excel. Peut-être est-ce cela qui pose problème ?
 
ReBonjour Plb, Bonjour Pat,

Je t'envoie le fichier avec la correction.

Sinon, Pat a raison, il faut effectivement cocher la case utilitaire d'analyses pour utiliser certaines fonctions.

Pour les 3 fonctions utilisées dans la formule en K22, les traductions anglaises sont les suivantes:

mois.decaler ==> edate
Arrondi.inf ==> Rounddown
Mod ==> Mod

@+

Gael [file name=Plb_V1_20060503160306.zip size=5031]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Plb_V1_20060503160306.zip[/file]
 

Pièces jointes

Bonjour,

Je me demande si j'ai bien compris

La veille du 25ème anniversaire de l'entrée :
=DATE(ANNEE(E22)+25;MOIS(E22);JOUR(E22)-1)
=DATE(YEAR(E22)+25,MONTH(E22),DAY(E22)-1)
ça fait 300 mois complets

Idem :
=DATE(ANNEE(E22);MOIS(E22)+300;JOUR(E22)-1)
=DATE(YEAR(E22),MONTH(E22)+300,DAY(E22)-1)

On peut se passer des colonnes H et I :
=SI(DATEDIF(E22;G22;'m')<300;DATE(ANNEE(E22)+25;MOIS(E22);JOUR(E22)-1);'Non')
=IF(DATEDIF(E22,G22,'m')<300,DATE(YEAR(E22)+25,MONTH(E22),DAY(E22)-1),'Non')

ou bien :
=SI(DATEDIF(E22;G22;'y')<25;DATE(ANNEE(E22)+25;MOIS(E22);JOUR(E22)-1);'Non')
=IF(DATEDIF(E22,G22,'y')<25,DATE(YEAR(E22)+25,MONTH(E22),DAY(E22)-1),'Non')
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Résolu(e)
Microsoft 365 DateDif()
Réponses
5
Affichages
170
  • Résolu(e)
Microsoft 365 DATEDIF
Réponses
11
Affichages
184
Réponses
12
Affichages
1 K
Réponses
0
Affichages
1 K
  • Suggestion Suggestion
Date et heure EcartDate
Réponses
32
Affichages
5 K
Réponses
18
Affichages
4 K
Retour