Mois-décaler anomalie ?

Bonjour,

excel 2013

Je suis confronté à un problème avec cette fonction, mon exemple,

=SI(K7>0;MOIS.DECALER(K7;6)-1;0)

Si j'indique en K7 , 04/03/2013 cela fonctionne et le résultat est 03/09/2013

Si j'indique en K7 , 31/03/2013 cela ne fonctionne pas, car le résultat est 29/09/2013 au lieu de 30/03/2013 ( date souhaitée)

Merci d'avance de m'aider à résoudre ce mystère...

Cordialement,

4 réponses

  1. Je précise que l'anomalie est certainement lié au fait que juillet et août ont 31 jours, je ne rencontre pas le problème pour le 31/01 d'une année....
    0
    1. Bon j'ai indiqué dans deux cellules cachés les dates posant problème (31/03/2013, 31/05/2013) et résultat différent si = à ces deux dates........
      0
      1. Bonjour,
        Anomalie, non, mais la façon de compter adoptée par Excel demande une bonne compréhension pour obtenir le résultat recherché.
        =MOIS.DECALER(K7;6) décale de 6 mois la valeur K7 mais si K7 = 31/03/13 on devrait trouver le 31 septembre qui n'existe pas, Excel a choisi de renvoyer le dernier jour du mois donc le 30/09/13.

        MOIS.DECALER("30/03/13";6)=MOIS.DECALER("31/03/13";6)=30/09/13
        Pour le 31/01/13 plus 6 mois >> pas de problème puisque le 31 juillet existe.
        Pour votre application regardez si
        =SI(K7>0;MOIS.DECALER(K7-1;6);0) convient mieux.
        Vous pouvez aussi essayer de composer avec
        Date( Annee();Mois();Jour()).
        0
        1. Bonjour,

          C'est incompréhensible ta formule,
          Avec 04/03/2013 tu veux bien décaler de 6 mois
          Par contre avec 31/03/2013 tu veux juste décaler de 1 jour,

          Que veux tu faire au final ?!
          0
          1. Oui je veux décaler de 6 mois, en prenant le dernier jour du mois en réponse...

            Un autre problème, si j'indique en 1ère date le 01/03/2014 il m'indique 28/08/2014 au lieu de 31/08/2014....Merci !
            0
          2. Contributeur
            Bonjour
            essayez peut être:

            =FIN.MOIS(MOIS.DECALER(A1;6);0)

            pour être à la fin du 6° mois complet suivant la date en A1

            =FIN.MOIS(MOIS.DECALER(A1;5);0) s'il faut inclure le mois de la date dans les 6
            crdlmnt
            0
          3. Bonjour,

            Merci encore une fois pour ta contribution !

            Je vais essayer d'être plus clair dans ma question...

            Si j'indique le 02/03/2014, j'attends comme réponse le 01/09/2014
            Si j'indique le 01/03/2014, j'attends comme réponse le 31/08/2014
            Souhait >Calcul 6 mois de date à date

            Mais le problème, c'est que le mois de février ne contient dans mon exemple que 28 jours en 2014, que les 2 mois d'été(juillet et août ont 31 jours), et donc que j'essaye d'adapter la fonction décaler....

            =SI(K7>0;MOIS.DECALER(K7-1;6);0)

            Merci d'avance !
            0
          4. Contributeur
            Je ne vois pas les problèmes signalés

            le fait que le système affiche 29/9 quand vous entrez 31/3 est normal, puisque Excel va chercher un jour avant la fin du mois correspondant.
            par contre on comprend mal votre premier message, je vous cites:

            "31/03/2013 cela ne fonctionne pas, car le résultat est 29/09/2013 au lieu de 30/03/2013 ( date souhaitée) "
            vous voulez décaler de 6 mois et retrouver la date un jour avant celle de départ????

            Et enfin si vous voulez décaler de 6 mois moins un jour, essayez avec:

            =DATE(ANNEE(K7);MOIS(K7)+6;JOUR(K7)-1)

            ce sera sans doute plus juste en fonction de vos attentes.

            crdlmnt
            0
          5. Oui en effet, ma question initiale était effectuée avec des erreurs....Merci pour tout !

            C'est une solution qui prend en compte aussi les jours, c'est ce que je souhaitais !!

            Merci à tous !
            0