[Excel 2016] Calcul date avec condition en fonction de l'unité de temps

Résolu/Fermé
mwasikitoko Messages postés 22 Date d'inscription vendredi 26 août 2016 Statut Membre Dernière intervention 10 mai 2020 - Modifié le 3 mai 2020 à 19:33
mwasikitoko Messages postés 22 Date d'inscription vendredi 26 août 2016 Statut Membre Dernière intervention 10 mai 2020 - 3 mai 2020 à 20:23
Bonjour Tous,
Parfois, ce n'est pas évident de synthétiser son problème en quelques mots dans un titre...ni même de l''expliquer avec plusieurs mots. Je vais essayer
Je joins le fichier https://www.cjoint.com/c/JEdrcdSMxje
sur lequel je voudrais faire un calcul de date de la manière suivante :
Col. A : Date signature Accord (format Date)
Col. B : Durée validité Accord (en mois ou en années) (format texte)
Donc je renseigne dans ma cellule, soit "x ans" soit "y mois", avec x et y des chiffres
Col. D : Durée expiration Accord (format Date)
Col. D = Col. A + Col.B
Comme en col. B, ce n'est pas un format nombre, mais un format texte, j'ai donc triché en insérant la Col.C. : Durée validité Accord (en années) (format nombre)
Donc, si en Bn j'ai "x ans", en Cn j'écris "x"
si en Bn j'ai "y mois", en Cn j'écris "x"
La formule à utiliser serait donc
Col.D = DATE(ANNEE(col.A)+col.C;MOIS(A);JOUR(A))

J'aimerais éviter l'étape col. C en faisant directement le calcul avec les col.A et B.
Je pense avoir trouvé la logique de ma démarche. Il faut poser une condition sur la valeur de la colonne B.
Si je trouve "Ans" en col. B, alors le calcul se fait avec les 2 premiers caractères de la chaîne de caractères, si je trouve "Mois", alors le calcul se fait avec les 2 premiers caractères de la chaîne de caractères divisés par 12
mais je n'arrive pas à la mettre en formule mais j'ai essayé ceci
=SI(TROUVE("ans";$B2;);GAUCHE($B2;2);gauche($B2);2)/12)

Un message d'erreur "vous avez entré un nombre trop important d'argument pour cette fonction"
J'ai fait au mieux pour être la plus claire possible et merci pour votre aide.
Mwasikitoko

Configuration: Windows / Chrome 81.0.4044.129
A voir également:

4 réponses

DjiDji59430 Messages postés 4028 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 18 avril 2024 644
3 mai 2020 à 19:44
Bonjour à tous,

Une proposition :
https://www.cjoint.com/c/JEdrSkorme6

Crdlmt
1
yclik Messages postés 3590 Date d'inscription vendredi 25 juillet 2014 Statut Membre Dernière intervention 19 avril 2024 1 479
3 mai 2020 à 19:53
Bonsoir
A tester en D2
 =DATE(ANNEE($A2)+SI(DROITE(B2;3)="ans";GAUCHE(B2;NBCAR(B2)-4);(GAUCHE(B2;NBCAR(B2)-4))/12);MOIS($A2);JOUR($A2))


GAUCHE(B2;NBCAR(B2)-4) récupère le années
(GAUCHE(B2;NBCAR(B2)-4))/12) récupère les mois
0
mwasikitoko Messages postés 22 Date d'inscription vendredi 26 août 2016 Statut Membre Dernière intervention 10 mai 2020
3 mai 2020 à 20:21
DjiDji59430

Merci....c'est exactement ce que je voulais...
Waoo...j'y ai passé une aprem...
et là en un clin d'oeil...
Trop TOP
CDT
Mwasikitoko
0
mwasikitoko Messages postés 22 Date d'inscription vendredi 26 août 2016 Statut Membre Dernière intervention 10 mai 2020
3 mai 2020 à 20:23
Bonsoir
A tester en D2
=DATE(ANNEE($A2)+SI(DROITE(B2;3)="ans";GAUCHE(B2;NBCAR(B2)-4);(GAUCHE(B2;NBCAR(B2)-4))/12);MOIS($A2);JOUR($A2))

GAUCHE(B2;NBCAR(B2)-4) récupère le années
(GAUCHE(B2;NBCAR(B2)-4))/12) récupère les mois

Cela marche du tonnerre !!!!
J'apprécie en plus la pédagogie qui accompagne la solution...Top des Top
Mille Mercis
Mwasikitoko
0