XL 2016 Calcul nombre année 2 dates

ElodieFo

XLDnaute Junior
Bonjour,

Je reviens vers vous pour une formule qui a priori devrait être OK mais ne me donne pas le retour escompté

=DATEDIF(A39;B39;"y")

1660116396764.png


De 1 à 12 mois on est sur 1 an,
Si 13 à 24 mois on est sur 2 ans,
Si de 25 à 38 mois on est sur 3 ans.

Mais la ... j'ai encore un bug.

Merci pour votre aide :)

Bien à vous
Elodie
 

Pièces jointes

  • Classeur1.xlsx
    8.8 KB · Affichages: 10
Solution
RE
Oui mais ce n'est pas le résultat de la formule
Donc si toute année commencée est à inclure il faut ta formule +1
Ce qui donnerait
=DATEDIF(DATE(ANNEE(G11);MOIS(G11);JOUR(G11));DATE(ANNEE(H11);MOIS(H11);JOUR(H11));"Y") + 1

PascalXLD

XLDnaute Barbatruc
Modérateur
RE
Oui mais ce n'est pas le résultat de la formule
Donc si toute année commencée est à inclure il faut ta formule +1
Ce qui donnerait
=DATEDIF(DATE(ANNEE(G11);MOIS(G11);JOUR(G11));DATE(ANNEE(H11);MOIS(H11);JOUR(H11));"Y") + 1
 

patricktoulon

XLDnaute Barbatruc
re
perso les +1 arbitraires je m'en méfie
sinon @JHA parlais de table de correspondance (très bonne idée)
on peut donc parler de matrice et de ce fait l'inclure dans la formule sans passer par une plage
mon idée
CNUM(DATEDIF(A2;B2;"y")*12)+CNUM(DATEDIF(A2;B2;"ym"))
nous donne le nombre de mois sans les jours restants

ta logique veut
12 mois =1 an
13 a 24 mois=2 ans
25 a 36 mois=3ans
37 a 48 mois=4 ans
et ben là, on a nos deux matrices
matrice 1 ={1;2;3;4} 'pour index
matrice 2 ={12;13;25;37}'pour equiv type inferieur

et ben allons y
la formule complète à étendre a souhait

=INDEX({1;2;3;4};EQUIV(CNUM(DATEDIF(A2;B2;"y")*12)+CNUM(DATEDIF(A2;B2;"ym"));{12;13;25;48};1))&" an(s)"
demo.gif

et si tu veux aller plus loin que 4 ans
exemple pour 5 ans tu ajoute dan la matrice equiv 49 et dans l'index 5
et ainsi de suite jusqu’à ton besoins
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour
Je sais que j'ai eu aussi des problèmes avec cette formule qui ne comprends pas les dates dans les cellules
Essaie
=DATEDIF(DATE(ANNEE(A2);MOIS(A2);JOUR(A2));DATE(ANNEE(B2);MOIS(B2);JOUR(B2));"Y")
Bonne journée
 

ElodieFo

XLDnaute Junior
A tous

Test avec les deux, toujours le meme souci

1660121292072.png


9-10-11-12 = 1 ans OK
13-14 mois = 1 ans alors que c'est 2 ans
25-26 mois = 2 ans alors que c'est 3 ans

=DATEDIF(DATE(ANNEE(G11);MOIS(G11);JOUR(G11));DATE(ANNEE(H11);MOIS(H11);JOUR(H11));"Y")

La formule ne contient pas les mêmes colonnes car fichier différent...
 

Pièces jointes

  • 1660121079252.png
    1660121079252.png
    1.6 KB · Affichages: 25

PascalXLD

XLDnaute Barbatruc
Modérateur
A tous

Test avec les deux, toujours le meme souci

Regarde la pièce jointe 1147060

24 mois = 1 ans
=DATEDIF(DATE(ANNEE(G11);MOIS(G11);JOUR(G11));DATE(ANNEE(H11);MOIS(H11);JOUR(H11));"Y")

La formule ne contient pas les mêmes colonnes car fichier différent...
Hello
Non entre le 14/09/20 et le 02/09/22 il y a 1 an 11 mois et quelques jours mais pas tout à fait 2 ans d'où 1 an en résultat de formule
 

patricktoulon

XLDnaute Barbatruc
Bonjour a tous
perso je pige pas tres bien le raisonnement
si une année commencée doit compter alors celle de la date1 doit l'etre aussi
exemple en ligne 1
il suffit alors de soustraire année date1 a année date2 en abs pour l'ordre

comme ca -->1an et plus de 6 mois = 2 ans
demo ci dessous
avec pour controler ma fonction perso datedif_AMJ4

demo.gif


ou alors j'ai rien compris au schmilblick
 
Dernière édition:

ElodieFo

XLDnaute Junior
Bonjour a tous
perso je pige pas tres bien le raisonnement
si une année commencée doit compter alors celle de la date1 doit l'etre aussi
exemple en ligne 1
il suffit alors de soustraire tnée date1 a année date2 en abs pour l'ordre

Regarde la pièce jointe 1147072
ou alors j'ai rien compris au schmilblick
Bonjour,

En faite, comme indiqué plus haut

Nous pouvons avoir des contrats :
- de 12 mois = contrat sur 1 année
- de 13 à 24 mois = contrat sur 2 années
- de 25 à 36 mois = contrat sur 3 années
et parfois ...
- de 37 à 48 mois = contrat sur 4 années

Ouai c'est... spéciale ! Mais il est normal que pour vous ce ne soit pas claire...

En espérant avoir pu vous éclairer sur ma demande initiale, qui maintenant est résolu ! :)

Bien à vous
 

ElodieFo

XLDnaute Junior
Bonjour a tous
perso je pige pas tres bien le raisonnement
si une année commencée doit compter alors celle de la date1 doit l'etre aussi
exemple en ligne 1
il suffit alors de soustraire année date1 a année date2 en abs pour l'ordre

comme ca -->1an et plus de 6 mois = 2 ans
demo ci dessous
avec pour controler ma fonction perso datedif_AMJ4

Regarde la pièce jointe 1147075

ou alors j'ai rien compris au schmilblick
re Bonjour @ElodieFo
j'ai modifié mon post, regarde le à nouveau ;)
J'ai vu, mais je vous redonne ma réponse, pour voir si vous comprenez

Nous pouvons avoir des contrats :
- de 12 mois = contrat sur 1 année
- de 13 à 24 mois = contrat sur 2 années
- de 25 à 36 mois = contrat sur 3 années
et parfois ...
- de 37 à 48 mois = contrat sur 4 années

Ouai c'est... spéciale car si 1 ans et 3 mois on doit partir sur deux ans, si 2 ans et 6 mois on va sur 3 ans etc.. ! Mais il est normal que pour vous ce ne soit pas claire... c'est une "usine à gaz" je confirme !

En espérant avoir pu vous éclairer sur ma demande initiale, qui maintenant est résolu ! :)

Bien à vous
 

Discussions similaires

Réponses
16
Affichages
751

Statistiques des forums

Discussions
312 413
Messages
2 088 199
Membres
103 764
dernier inscrit
nissassa