Libre office si

Signaler
Messages postés
1
Date d'inscription
mardi 6 juillet 2021
Statut
Membre
Dernière intervention
6 juillet 2021
-
Messages postés
17419
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
29 juillet 2021
-
Bonjour
Dans la cellule A1 j'ai la date de naissance
Dans la cellule B1 J'ai l'âge avec la formule suivante :
=DATEDIF(a1;AUJOURDHUI();"y")&" , "&DATEDIF(a1;AUJOURDHUI();"Ym")
Dans la cellule C1 je voudrais trouver la formule a la réponse suivante :
Si dans B1 > à 16 ans alors 30 heures, sinon 25 heures
Merci beaucoup d"avance car j'ai déjà fait une multitude d'essais et cela ne fonctionne pas

3 réponses

Messages postés
54317
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
31 juillet 2021
16 303
Bonjour.

Tu ne risques pas de trouver grand chose !
Supposons que A1 contienne la date de naissance 20/05/1960
=DATEDIF(A1;AUJOURDHUI();"y") est une formule qui donne comme résultat le nombre 61
=DATEDIF(A1;AUJOURDHUI();"Ym") est une formule qui donne comme résultat le nombre 1
=DATEDIF(a1;AUJOURDHUI();"y")&" , "&DATEDIF(a1;AUJOURDHUI();"Ym") est une formule qui colle 3 textes séparés par & ; le résultat est aussi un texte "61°,°1" (mes ° représentent des espaces) ; ce texte ne peut en aucune manière te servir à faire des comparaisons avec le nombre 16 !
Messages postés
3350
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
30 juillet 2021
948
Bonjour,

Comme le dit Raymond (salutations) le résultat de ta formule donne un texte.

Tu as le choix ; soit transformer ce texte en nombre avec CNUM() et en supprimant les espaces avant et après la "," ; et là tu pourras utiliser la cellule B1 ;

=CNUM(DATEDIF(A1;AUJOURDHUI();"y")&","&DATEDIF(A1;AUJOURDHUI();"Ym"))


pour utiliser le résultat pour ton calcul de la cellule C1 ;

=SI(B1<>"";SI(B1>16;30;25);"")


où d'utiliser le nombre de mois en A1 pour faire directement le calcul pour C1

=SI(A1<>"";SI(DATEDIF(A1;AUJOURDHUI();"m")>192;30;25);"")


192 correspond à 16 x 12.

Cordialement
Messages postés
17419
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
29 juillet 2021
4 672
Bonjour le fil,

ou encore comme cela
=SI(A1="";"";SI(DATEDIF(A1;AUJOURDHUI();"y")>=16;30;25)) 


en B1 une conditionnelle en tête pour éviter un affichage erroné dans le cas de cellule vide
=SI(A1="";"";DATEDIF(A1;AUJOURDHUI();"y")&" , "&DATEDIF(A1;AUJOURDHUI();"Ym"))

ou plus technique avec la gestions du singulier et pluriel
=SI(A1="";"";SI(DATEDIF(A1;AUJOURDHUI();"y")>0;DATEDIF(A1;AUJOURDHUI();"y")&SI(DATEDIF(A1;AUJOURDHUI();"y")>1;" ans ";" an ");"")&SI(DATEDIF(A1;AUJOURDHUI();"ym")>0;DATEDIF(A1;AUJOURDHUI();"ym")&" mois "))