Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

La fameuse fonction DATEDIF !

PWC

XLDnaute Nouveau
Bonjour à toutes et à tous,

J'ai un nouveau problème à vous soumettre

Je souhaite que ma formule me dise combien de jours, de mois et d'années il y a entre les cellules B2 et D2.

Je souhaite également que :
- la syntaxe soit du type "x years, y months and z days"
- que si il n'y a qu'une seule année, qu'un seul mois ou qu'un seul jour, ce soit "1 year", "1 month" ou "1 day"
- que si il y a x années et y mois, la syntaxe soit "x year(s) and y month(s)"
- que si il y a x années et z jours, la syntaxe soit "x year(s) and z day(s)"
- que si il y a y mois et z jours, la syntaxe soit "y month(s) and z day(s)"

J'ai pas mal bossé dessus mais ça ne marche pas ! Pourriez-vous m'aider §

Ma formule ressemble à ça pour le moment. Je vous mets également le fichier excel. Merci d'avance !!

=SI(DATEDIF(B2;D2;"y")>1;SI(DATEDIF(B2;D2;"y")=0;"";(DATEDIF(B2;D2;"y")))&SI(DATEDIF(B2;D2;"y")>1;" years,";" year,")&SI(DATEDIF(B2;D2;"ym")=0;"";DATEDIF(B2;D2;"ym")&SI(DATEDIF(B2;D2;"ym")>1;" months, ";" month, ")&SI(DATEDIF(B2;D2;"md")=0;"";(DATEDIF(B2;D2;"md")))&SI(DATEDIF(B2;D2;"md")>1;" days";" day"));SI(ET(DATEDIF(B2;D2;"d")<=365;DATEDIF(B2;D2;"d")>30);SI(DATEDIF(B2;D2;"ym")=0;"";DATEDIF(B2;D2;"ym")&SI(DATEDIF(B2;D2;"ym")>1;" months, ";" month, ")&SI(DATEDIF(B2;D2;"md")=0;"";(DATEDIF(B2;D2;"md")))&SI(DATEDIF(B2;D2;"md")>1;" days";" day"))))
 

Pièces jointes

  • Datedif.xls
    13.5 KB · Affichages: 275
  • Datedif.xls
    13.5 KB · Affichages: 286
  • Datedif.xls
    13.5 KB · Affichages: 291

AtWork

XLDnaute Nouveau
Re : La fameuse fonction DATEDIF !

Salut!

Le modèle ci-dessous devrait marcher en remplaçant les "if" par des "si"

=IF(DATEDIF(A1,B1,"y")=0,"",DATEDIF(A1,B1,"y")&" years ")&IF(DATEDIF(A1,B1,"ym")=0,"",
DATEDIF(A1,B1,"ym")&" months ")&DATEDIF(A1,B1,"md")&" days"

Good luck!
 

Tibo

XLDnaute Barbatruc
Re : La fameuse fonction DATEDIF !

Bonjour le fil,

Je te laisse tester avec cette formule, équivalente de celle de Atwork, mais avec gestion des accords, comme souhaité :

Code:
=SUPPRESPACE(SI(DATEDIF(B2;D2;"y")>0;DATEDIF(B2;D2;"y")&" year"&SI(DATEDIF(B2;
D2;"y")=1;"";"s");"")&" "&SI(DATEDIF(B2;D2;"ym")>0;DATEDIF(B2;D2;"ym")&" month"&
SI(DATEDIF(B2;D2;"ym")=1;"";"s");"")&" "&SI(DATEDIF(B2;D2;"md")>0;DATEDIF(B2;D2;
"md")&" day"&SI(DATEDIF(B2;D2;"md")=1;"";"s");""))

@+
 

CyberNeo99

XLDnaute Occasionnel
Re : La fameuse fonction DATEDIF !

Bonjour à tous,

Cette fonction bn'existe pas sous Excel 2003 que sous Excel 2007 et + si je ne me trompes....

Je ne la vois pas dans ma liste sous 2003 en tout cas et si je l'écris, Excel ne la reconnait pas.....


Neo
 

ROGER2327

XLDnaute Barbatruc
Re : La fameuse fonction DATEDIF !

Bonjour à tous.

Re...
Bonjour à tous,

Cette fonction bn'existe pas sous Excel 2003 que sous Excel 2007 et + si je ne me trompes....

Je ne la vois pas dans ma liste sous 2003 en tout cas et si je l'écris, Excel ne la reconnait pas.....


Neo
Bizarre...
Intrigué par votre remarque, je viens de faire l'essai avec Excel2003 et... ...ça fonctionne !

J'en profite pour donner une version en Français, puisque nous sommes sur un site francophone. On constate que le formule est un peu plus simple...
Code:
[COLOR="DarkSlateGray"][B]=SUPPRESPACE(SI(DATEDIF(B2;D2;"y")>0;DATEDIF(B2;D2;"y")&" année"&SI(DATEDIF(B2;D2;"y")=1;"";"s");"")&" "&SI(DATEDIF(B2;D2;"ym")>0;DATEDIF(B2;D2;"ym")&" mois";"")&" "&SI(DATEDIF(B2;D2;"md")>0;DATEDIF(B2;D2;"md")&" jour"&SI(DATEDIF(B2;D2;"md")=1;"";"s");""))[/B][/COLOR]
ROGER2327
#4333


Vendredi 13 Haha 138 (Saint et Sainte Fenouillard, Sainte famille, SQ)
27 Vendémiaire An CCXIX
2010-W42-1T14:18:16Z
 

Discussions similaires

Réponses
55
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…