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

Résolu
mwasikitoko Messages postés 25 Statut Membre -  
mwasikitoko Messages postés 25 Statut Membre -
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

4 réponses

  1. yclik Messages postés 3875 Date d'inscription   Statut Membre Dernière intervention   1 611
     
    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
  2. mwasikitoko Messages postés 25 Statut Membre
     
    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
  3. mwasikitoko Messages postés 25 Statut Membre
     
    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