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

Résolu
mwasikitoko Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   -  
mwasikitoko Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   -
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 4253 Date d'inscription   Statut Membre Dernière intervention   700
 
Bonjour à tous,

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

Crdlmt
1
yclik Messages postés 3874 Date d'inscription   Statut Membre Dernière intervention   1 563
 
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 24 Date d'inscription   Statut Membre Dernière intervention  
 
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 24 Date d'inscription   Statut Membre Dernière intervention  
 
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