Calcul Age

dkcedric

XLDnaute Junior
Bonjour,

Je souhaiterais obtenir l'âge des enfants de mes adhérents, en faisant le calcul avec la date complete il ne me trouve pas le bon chiffre, pareil si je ne met que l'année. Je souhaiterais qu'il calcul l'age avec la date complète. Un peu plus bas j'aurais souhaité comptabiliser le nombre d'enfant par tranche d'âge impossible de retrouver le document avec la formule que j'avais faite.

Cordialement
 

Pièces jointes

  • Famille avec enfant.xls
    20 KB · Affichages: 107
  • Famille avec enfant.xls
    20 KB · Affichages: 113
  • Famille avec enfant.xls
    20 KB · Affichages: 114
G

Guest

Guest
Re : Calcul Age

Bonjour,

Pour l'âge tu peux faire (cellule au format nombre)
Pour les années entière (âge révolu):
Code:
=ENT(SOMME(D4-C4)/365,25)

ou pour les années et le nombre de jours passés depuis de dernier anniversairs.
Code:
SOMME(D4-C4)/365,25

pour le reste, pas suffisament de données dans le fichier.

[Edit] je ne sais pas pourquoi j'ai gardé ta fonction somme qui n'as pas d'utilité ici. (D4-C4)/365,25 suffit.
A+
 
Dernière modification par un modérateur:

dkcedric

XLDnaute Junior
Re : Calcul Age

Merci pour la formule mais je devrais avoir 2 enfants de - de 6ans alors qu'il me met 0 et pareil je trouve pas le bon compte de 6 à 12 ans ???
 

Pièces jointes

  • Famille avec enfant.xls
    27.5 KB · Affichages: 90
  • Famille avec enfant.xls
    27.5 KB · Affichages: 102
  • Famille avec enfant.xls
    27.5 KB · Affichages: 100
Dernière édition:
G

Guest

Guest
Re : Calcul Age

Bonjour,

Il faut faire attention > est différent de >=

La formule pour les moins de 6 ans (6 and non compris):
Code:
=NB.SI(E4:E28;"<6")
De 6 à 12 (6 ET 12 compris):
Code:
=SOMMEPROD((E4:E28<=12)*(E4:E28>=6))
Formule pour entre 12 et 18 (12 non compris)
Code:
=SOMMEPROD((E4:E30<=18)*(E4:E30>12))
equivalente à
Code:
=SOMMEPROD((E4:E30<=18)*(E4:E30>=13))

A+
 

C@thy

XLDnaute Barbatruc
Re : Calcul Age

Bravo à tous, pour compléter la formule de Bruce68,
je dirais même que pour éviter les 0 mois ou 0 jours ou 0 ans ou 1 ans, on peut encore sophistiquer la chose :
=SI(ET(DATEDIF(C4;$E$1;"y")=0;DATEDIF(C4;$E$1;"ym")=0;DATEDIF(C4;$E$1;"md")=0);0&" jour";SI(DATEDIF(C4;$E$1;"y")<>0;DATEDIF(C4;$E$1;"y")&SI(DATEDIF(C4;$E$1;"y")>1;" ans ";" an ");"")&SI(DATEDIF(C4;$E$1;"ym")<>0;DATEDIF(C4;$E$1;"ym")&" mois ";"")&SI(DATEDIF(C4;$E$1;"md")<>0;DATEDIF(C4;$E$1;"md")&SI(DATEDIF(C4;$E$1;"md")>1;" jours";" jour");""))

Bonne soirée

C@thy
 
Dernière édition:

C@thy

XLDnaute Barbatruc
Re : Calcul Age

ou encore une fonction :
Function StrDifDate$(ByVal Date1, ByVal Date2)
Dim DD1 As Date, DD2 As Date
Dim An&, Mois&, Jour&, Res$
On Error GoTo erreur
DD1 = Date1
DD2 = Date2
If Date1 <= Date2 Then
Date1 = DD1
Date2 = DD2
Else
Date1 = DD2
Date2 = DD1
End If
If Year(Date2) > Year(Date1) Then
An = (Year(Date2) - Year(Date1)) - IIf(Month(Date2) < Month(Date1), 1, _
IIf((Month(Date2) = Month(Date1)) And (Day(Date2) < Day(Date1)), 1, 0))
End If
Mois = Month(Date2) - Month(Date1) + 12 * (Year(Date2) - Year(Date1)) - _
IIf(Day(Date2) < Day(Date1), 1, 0) - (12 * An)
If Day(Date2) >= Day(Date1) Then
Jour = Day(Date2) - Day(Date1)
Else
Jour = DateSerial(Year(Date1), Month(Date1) + 1, 1) - Date1
Jour = Jour + Date2 - DateSerial(Year(Date2), Month(Date2), 1)
End If
If An > 0 Then Res = An & " an"
If An > 1 Then Res = Res & "s"
If Mois > 0 Then Res = Res & " " & Mois & " mois"
If Jour > 0 Then Res = Res & " " & Jour & " jour"
If Jour > 1 Then Res = Res & "s"
Res = Trim(Res)
If Res = "" Then Res = "0 jour"
StrDifDate = Res
Exit Function
erreur:
StrDifDate = ""
On Error GoTo 0
End Function
 

Discussions similaires

Réponses
16
Affichages
683

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 182
dernier inscrit
moutassim.amine