Mois-décaler anomalie ?

Pygos -  
eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   -
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. Pygos
     
    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
  2. Pygos
     
    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
  3. tontong Messages postés 2575 Date d'inscription   Statut Membre Dernière intervention   1 064
     
    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
  4. Lentzouille Messages postés 728 Statut Membre 64
     
    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. Pygos
       
      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. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      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. Pygos
       
      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. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      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. Pygos
       
      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