Excel: Calcule de date arrondi au jeudi.

Résolu
Bonjour,

J'ai un fichier Excel qui me renvoie une date en cellule A2. En cellule B2 je souhaite effectuer un teste : si la date n'est pas un jeudi arrondir la date au jeudi suivant sinon reprendre la date.

Je ne suis pas super calé en calcul de dates et là je sèche complètement alors je remercie par avance celui ou celle qui saura m'aider à trouver une solution.

Merci à vous.
Configuration: Windows XP Internet Explorer 6.0 Excel 2003

17 réponses

Résumé de la discussion

On cherche à arrondir une date en A2 au jeudi suivant si elle n'est pas un jeudi, sinon reprendre la même date pour automatiser les échéances. Parmi les propositions, on peut utiliser =SI(JOURSEM(A2;2)=4;A2;A2+SI(JOURSEM(A2;2)>4;11-JOURSEM(A2;2);(4-JOURSEM(A2;2)))) pour tester et ajuster automatiquement la date, ou préférer =A2+CHOISIR(JOURSEM(A2;2);3;2;1;0;6;5;4) qui donne le même résultat et convient à Excel 2003. Des variantes exploitent JOURSEM avec le calcul du jour pour ramener la date au jeudi ou au jeudi suivant, tout en offrant des alternatives selon l'environnement Excel. En cas de souci d'alignement selon les paramètres régionaux, des variantes recourent à JOURSEM et FIN.MOIS pour des arrondis basés sur le jour de la semaine, compatibles avec Excel 2003 sur Windows XP.

Bobot (l’IA à votre service)
  1. Contributeur
    bonjour

    si la date n'est pas un jeudi arrondir la date au jeudi suivant sinon reprendre la date.

    Une de ces formules devrait te résoudre ton souci :

    =SI(JOURSEM(A2;2)=4;A2;A2+SI(JOURSEM(A2;2)>4;11-JOURSEM(A2;2);(4-JOURSEM(A2;2))))
    ou plus simple
    =A2+CHOISIR(JOURSEM(A2;2);3;2;1;0;6;5;4)

    2
    1. Merci pour ta solution gbinforme elle répond parfaitement à mon problème (qui du coup n'en est plus un).

      Merci également à ceux qui ont pris le temps de chercher une solution.

      Meilleurs messages,

      Jamais203
      0
  2. Contributeur
    Bonjour
    une formule toute simple poiur une date en A1 en attendant mieux:
    =SI(JOURSEM(A1)=1;A1+4;SI(JOURSEM(A1)=2;A1+3;SI(JOURSEM(A1)=3;A1+2;SI(JOURSEM(A1)=4;A1+1;A1))))
    Crdlmnt
    0
    1. Contributeur
      Re
      en fait, je crois que le plus simple est ici, du moins à mon avis:
      =SI(JOURSEM(A1)<5;A1+5-JOURSEM(A1);A1)

      Crdlmnt
      0
      1. Contributeur
        Errata
        seules les formules de gbinform (bonjour) conviennent (comme d'hab!). Mes deux propositions ne traitent que les jours avant jeudi, mais affichent les vendredi et samedi
        Elles pourraient être corrigées, mais il est inutile d'en rajouter sur les bonnes solutions proposées.
        Je retourne à mes jouets.
        Crdlmnt
        0
        1. Salut,

          Je viens avec mes gros sabots et ma petite formule, date en A1 et mettre la cellule qui contient la formule en format date

          =SI(JOURSEM(A1)=5;A1;A1+12-JOURSEM(A1))

          je ne connais personne de super calé, si on veut il est possible d'apprendre tous les jours, c'est mon cas et que ça dure

          A+
          Mike-31

          Un problème sans solution est un problème mal posé  (Einstein)
          0
          1. Contributeur
            bonjour à tous,

            Désolé Mike mais ce n'est pas toujours le bon jeudi qui est choisi : du dimanche au mercredi tu sautes une semaine, soit l'inverse (fin de semaine) de Vaucluse que je salue.

            <humour>Faut-il être Einstei­n pour donner une solution correcte à un problème bien posé ?</humour>

            Bien cordialement à tous.
            0
        2. Contributeur
          Rebonjour et salut Mike.

          Décidément,jamais 203 (marrant) à lancer le débat, c'est la mode.
          Excuse moi mais je crois qu'il manque un item à ta formule, le cas ou JOURSEM est plus petit que 5..C 'est pour cela que je n'avais pas insisté!
          en fait, si le jour est un lundi, tu vas rajouter 10 jour à la date alors qu'il n'en faut que trois.
          (Si, je ne m'abuse comme disait mon copain le faucon qui n'en était pas un vrai)
          Il faudrait je crois, rajouter par la dedans:
          SI(JOURSEM(A1)<5;A1+5-JOUR(SEM(A1);.......
          Ce qui fait que la formule de Gb reste à mon avis la meilleure.
          Amicalement
          0
          1. Contributeur
            bonjour

            Bien vu Vaucluse et j'aime bien ton humour qui rejoint celui d'un grand comédien dont j'ai oublié le nom qui disait :

            "Ce n'est pas le magnifique essor des faucons qui m'inquiète mais l'ascension vertigineuse des vrais".
            0
        3. Et vlan, je crois que je vais ignorer (Einstein)

          Trop de précipitation, effectivement ma formule ne prenait en compte qu’une partie des possibilités
          Bien vu Vaucluse 1 point, mais pour Jamais203 tu aurais pu la formule, ½ cacahuète en moins

          =SI(JOURSEM(A2)<5;A2+5-JOURSEM(A2);SI(JOURSEM(A2)>5;12-JOURSEM(A2)+A2;A2))

          A+
          Mike-31

          S'il il n'y a pas de solution, c'est qu'il n'y a pas de problème
          0
          1. Contributeur
            bonjour Mike

            J'aime bien ta citation et j'ai seulement voulu faire un peu d'humour avec, car tu avoueras que c'était tentant ?

            J'espère que tu ne m'en veux pas et gardes ta citation qui est judicieuse.
            0
            1. Salut Gbinforme,

              Aucun mal, et je te comprends, c’était tentant. Il est bon pour notre image de se remettre en cause. J’aurai dû contrôler ma formule en l’incrémentant avec la date, elle était simple pourtant, quelques essais concluants, mais voila le hic

              Je te remercie de l’avoir fait avec panache. Je reviendrai à (Einstein) plus tard, sa citation me plait

              Il y a quelques jours, je t'ai envoyé un Message privé, l'as tu reçu !

              Bonne fin de journée
              0
              1. gbinforme 6 nov. 2009 à 09:42 
                bonjour  
                
                si la date n'est pas un jeudi arrondir la date au jeudi suivant sinon reprendre la date.  
                
                Une de ces formules devrait te résoudre ton souci :  
                
                =SI(JOURSEM(A2;2)=4;A2;A2+SI(JOURSEM(A2;2)>4;11-JOURSEM(A2;2);(4-JOURSEM(A2;2)))) 
                ou plus simple 
                =A2+CHOISIR(JOURSEM(A2;2);3;2;1;0;6;5;4) 
                

                *************************************************

                Bonjour, vieux topic, mais je n'arrive pas a changer le jour, par ex.: mardi.........

                Quelle est la "clef" ou "formule" pour choisir un des jours de la semaine?

                Je remercie par avance celui ou celle qui saura m'aider.....

                Merci
                0
                1. Contributeur
                  Bonjour jmst1,

                  Pour le Mardi :

                  =A2+CHOISIR(JOURSEM(A2;2);1;0;6;5;4;3;2)

                  Il suffit de positionner le zéro sur le jour choisi : position 2 pour mardi ou 4 pour jeudi et refaire la série en conséquence.
                  0
              2. gbinforme- 7 juin 2012 à 20:40 
                Bonjour jmst1, 
                
                Pour le Mardi : 
                
                
                =A2+CHOISIR(JOURSEM(A2;2);1;0;6;5;4;3;2)
                Il suffit de positionner le zéro sur le jour choisi : position 2 pour mardi ou 4 pour jeudi et refaire la série en conséquence.
                


                ///////////

                Merci.......et............. a+
                0
                1. Bonjour,

                  je désire faire presque la même chose, mais sur un jour (par exemple le 1er) du mois, reprendre la date, sinon la date du mois suivant

                  Merci

                  J'ai cette formule, longue !

                  =SI(AUJOURDHUI()=DATE(ANNEE(AUJOURDHUI());MOIS(AUJOURDHUI())+0;1);AUJOURDHUI();DATE(ANNEE(AUJOURDHUI());MOIS(AUJOURDHUI())+1;1))
                  0
                  1. Contributeur
                    Bonjour,

                    Une formule un peu plus courte mais AUJOURDHUI plus long que TODAY;-)
                    =SI(JOUR(AUJOURDHUI())=1;AUJOURDHUI();MOIS.DECALER(AUJOURDHUI();1)-JOUR(AUJOURDHUI())+1)

                    et en anglais
                    =IF(DAY(TODAY())=1,TODAY(),EDATE(TODAY(),1)-DAY(TODAY())+1)
                    0
                  2. @gbinformeMerci gbinforme
                    0
                2. Bonjour,

                  je désire faire presque la même chose, mais sur le premier dimanche du mois, reprendre la date, sinon la date du mois suivant

                  et le mieux modifiable pour un autre dimanche

                  Merci

                  Configuration: Windows 7 / Chrome 48.0.2564.116
                  0
                  1. Bonjour
                    Un essai

                    =SI(JOUR(AUJOURDHUI())=1;AUJOURDHUI();MOIS.DECALER(AUJOURDHUI();1)-JOUR(AUJOURDHUI())+6)
                    Cordialement
                    0
                    1. Bonjour jc80 merci pour l'essai.
                      Malheureusement elle ne fonctionne pas correctement

                      Je l'ai modifiée ainsi pour la tester

                      =SI(JOUR(A1)=1;A1;MOIS.DECALER(A1;1)-JOUR(A1)+6)

                      en A1 une date autre qu' aujourd'hui()
                      0
                  2. Le premier dimanche du mois, reprendre la date, sinon la date du mois suivant

                    Une formule un peu longue, mais elle fonctionne

                    =SI(AUJOURDHUI()<=AUJOURDHUI()-JOUR(AUJOURDHUI())+8-JOURSEM(AUJOURDHUI()-JOUR(AUJOURDHUI())-7);AUJOURDHUI()-JOUR(AUJOURDHUI())+8-JOURSEM(AUJOURDHUI()-JOUR(AUJOURDHUI())-7);DATE(ANNEE(AUJOURDHUI());MOIS(AUJOURDHUI())+1;0)+1-JOUR(DATE(ANNEE(AUJOURDHUI());MOIS(AUJOURDHUI())+1;0)+1)+8-JOURSEM(DATE(ANNEE(AUJOURDHUI());MOIS(AUJOURDHUI())+1;0)+1-JOUR(DATE(ANNEE(AUJOURDHUI());MOIS(AUJOURDHUI())+1;0)+1)-7))
                    0
                    1. Bonjour,

                      si la date n'est pas le 1er dimanche du mois, arrondir la date au 1er dimanche du mois suivant sinon reprendre la date.

                      Merci à tous. j'ai pris deux cellules et j'arrive à 177 caractères

                      =SI($A$7<=$A$7-JOUR($A$7)+8-JOURSEM($A$7-JOUR($A$7)-7);$A$7-JOUR($A$7)+8-JOURSEM($A$7-JOUR($A$7)-7);DATE(ANNEE($A$7);MOIS($A$7)+1;1)+6-MOD(DATE(ANNEE($A$7);MOIS($A$7)+1;1)+5;7))

                      Si quelqu'un fait plus court, je suis preneur, le but est de remplacer $A$7 par AUJOURDHUI() pour quelle soit autonome

                      Bonne recherche
                      0
                      1. Bonjour,
                        Si j'ai bien compris la question de jmst1 et sous réserve de vérifications:
                        =SI(JOURSEM(AUJOURDHUI())=7;AUJOURDHUI();FIN.MOIS(AUJOURDHUI();0)-JOURSEM(FIN.MOIS(AUJOURDHUI();0))+8)
                        0
                        1. Bonjour tontong, malheureusement elle n'est pas adaptée à ma requête
                          voici la progression que j'aimerais

                          06.02.2016 -> dim 07 février 2016
                          07.02.2016 -> dim 07 février 2016
                          08.02.2016 -> dim 06 mars 2016
                          09.02.2016 -> dim 06 mars 2016
                          05.03.2016 -> dim 06 mars 2016
                          06.03.2016 -> dim 06 mars 2016
                          07.03.2016 -> dim 03 avril 2016
                          0
                        2. Contributeur
                          Bonjour à vous 2,

                          En partant de la formule de totong, je te propose ceci, un peu plus long qui donne tes résultats sauf pour le début février bissextile
                          =SI(JOURSEM(AUJOURDHUI();2)=7;AUJOURDHUI();SI(JOUR(AUJOURDHUI())<JOURSEM(AUJOURDHUI();2);FIN.MOIS(AUJOURDHUI();-1)-JOURSEM(FIN.MOIS(AUJOURDHUI();-1);2);FIN.MOIS(AUJOURDHUI();0)-JOURSEM(FIN.MOIS(AUJOURDHUI();0);2))+7)
                          0
                        3. @jmst1Bonjour,
                          =FIN.MOIS(A7;-1+(A7>FIN.MOIS(A7;-1)+8-JOURSEM(FIN.MOIS(A7;-1)))*1)+8-JOURSEM(FIN.MOIS(A7;-1+(A7>FIN.MOIS(A7;-1)+8-JOURSEM(FIN.MOIS(A7;-1)))*1))
                          143 caractères, on gagne peu et la formule perd en lisibilité.
                          0
                        4. @gbinformeMerci gbinforme , mais non, elle est identique à celle-ci

                          si la date n'est pas un jeudi arrondir la date au jeudi suivant sinon reprendre la date.
                          début de post

                          =AUJOURDHUI()+CHOISIR(JOURSEM(AUJOURDHUI();2);6;5;4;3;2;1;0)+N("si la date n'est pas un DIMANCHE arrondir la date au DIMANCHE suivant sinon reprendre la date.")

                          Merci pour votre aide

                          La meilleur réponse

                          Re : le premier dimanche du mois, reprendre la date
                          Citation Envoyé par Victor21
                          Bonjour à tous.

                          "=SI(JOUR(A1+7-JOURSEM(A1;2))<=7;A1+7-JOURSEM(A1;2);DATE(ANNEE(A1);MOIS(A1)+1;1)+7-
                          JOURSEM(DATE(ANNEE(A1);MOIS(A1)+1;1);2))"

                          130 car. avec $A1, 122 car. avec A1
                          Vous pouvez également utiliser des noms définis pour les termes récurrents.

                          BRAVO Victor21
                          la formule est correct et une performance à relever: de 1900 à 9999
                          Hors en dessous du 1 mars 1900
                          Avec si: A1 122 caractères et avec AUJOURDHUI() 202 caractères !
                          0
                        5. @jmst1avec un petit effort:
                          =SI(JOUR(A1+7-JOURSEM(A1;2))<=7;A1+7-JOURSEM(A1;2);FIN.MOIS(A1;0)+8-JOURSEM(FIN.MOIS(A1;0)+1;2))
                          0