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

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

  • plb.zip
    5.5 KB · Affichages: 25

Gael

XLDnaute Barbatruc
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

  • Plb_V1.zip
    4.9 KB · Affichages: 23

plb

XLDnaute Nouveau
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 ?
 

Gael

XLDnaute Barbatruc
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

  • Plb_V1_20060503160306.zip
    4.9 KB · Affichages: 36

Monique

Nous a quitté
Repose en paix
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')
 

Discussions similaires

Réponses
46
Affichages
884

Statistiques des forums

Discussions
312 338
Messages
2 087 397
Membres
103 536
dernier inscrit
komivi