Besoin d'aide formule datedif et si

helenevtt -  
PapyLuc51 Messages postés 4568 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je fais appel à vous car malgré plusieures tentatives je n’arrive pas à trouver la solution…
J’ai un tableau comme ceci :

A1(Date d’entrée) B1 (Date de mise en veille) C1 (Date de sortie) Les 3 ne sont pas forcément remplis.

En D1 j’aimerais avoir la différence en mois entre soit :

la date d’entrée et la date de sortie,
la date d’entrée et la date de mise en veille
la date d’entrée et la date du jour.

J’arrive à avoir les 2 premières mais pour la 3ème excel me met une erreur.

Si quelqu’un a une formule magique ???
Je vous en serais tres reconnaissante.

Merci à celles et ceux qui prendront le temps de me répondre.

6 réponses

  1. Raymond PENTIER Messages postés 58211 Date d'inscription   Statut Contributeur Dernière intervention   17 480
     
    Bonjour.

    Comme on n'a ni ton fichier Excel, ni même les formules que tu essaies, il nous est impossible de te répondre !
    0
  2. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Pour compléter mon ami Raymond que je salue au passage, fournis un exemple de ton fichier avec la formule utilisée qui occasionne l'erreur en le postant sur cjoint.com, en faisant créer un lien que tu copies et reviens coller ici dans ton prochain message

    Cdlmnt
    Via
    0
  3. PapyLuc51 Messages postés 4568 Date d'inscription   Statut Membre Dernière intervention   1 511
     
    Salutations!

    Une tentative avec ce que j'ai compris.

    La formule tient compte de la présence ou non d'une date en B1 lorsque C1 en comporte une

    =SI(A1<>"";SI(ET(B1<>"";C1="");DATEDIF(A1;B1;"m");SI(ET(OU(B1<>"";B1="");C1<>"");DATEDIF(A1;C1;"m");DATEDIF(A1;AUJOURDHUI();"m")));"")


    Cordialement
    0
  4. helenevtt
     
    Voici la formule que j'ai essayé
    =SI([@[Date de sortie]]="";DATEDIF([@[Date d''entrée]];[@[Date de mise en veille]];"m")+[@[Date de mise en veille]];DATEDIF([@[Date d''entrée]];[@[Date de sortie]];"m")+OU(DATEDIF([@[Date d''entrée]];AF1;"m")))

    AF1 étant une cellule avec la date du jour

    Je voudrais que la formule prenne en compte

    Soit j'ai une date de sortie et je veux la différence en mois entre la date d'entrée et la date de sortie

    Soit je n'ai pas de date de sortie mais une date de mise en veille, dans ce cas je veux la différence en mois entre la date d'entrée et la date de mise en veille

    Soit je n'ai ni la date de sortie ni de mise en veille et dans ce cas il me faut la différence en mois entre la date d'entrée et la date du jour

    J'ai le cerveau en Compote....
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Raymond PENTIER Messages postés 58211 Date d'inscription   Statut Contributeur Dernière intervention   17 480
     


    Hélène, quelques informations, s'il te plait :
    • 1) Que signifient les deux opérateurs
      +
      dans ta formule ?
    • 2) Et à quoi sert la fonction
      OU
      en fin de formule ?
    • 3) Enfin que faut-il afficher comme résultat lorsqu'il y a une date de sortie mais pas de date de mise en veille ?

    De ce que j'ai cru comprendre, la formule en D1 serait :
    =SI(C1="";SI(B1="";DATEDIF(A1;AF1;"m");DATEDIF(A1;B1;"m"));DATEDIF(A1;C1;"m"))
    0
  7. PapyLuc51 Messages postés 4568 Date d'inscription   Statut Membre Dernière intervention   1 511
     
    Bonjour,

    Des erreurs de syntaxe dans cette formule.
    La voici remaniée avec ajout d'une condition, celle de la date d'entrée obligatoirement présente pour laisser le résultat vide s'il n'y aucune date visible mais qui en réalité est la date 0 d'Excel :

    =SI([@[Date d''entrée]]<>"";SI([@[Date de mise en veille]]<>"";DATEDIF([@[Date d''entrée]];[@[Date de mise en veille]];"m");SI([@[date de sortie]]<>"";DATEDIF([@[Date d''entrée]];[@[date de sortie]];"m");DATEDIF([@[Date d''entrée]];$AF$1;"m")));"")

    avec AF1 bloquée par $ si la formule doit s'incrémenter sinon mettre AUJOURDHUI() à la place.

    cordialement
    0