le premier dimanche du mois, reprendre la date

jmst

XLDnaute Junior
Bonjour,
je cherche une formule qui serait:
"si la date est inférieur ou égal au le 1er dimanche du mois en cours, afficher le 1er dimanche du mois en cours, si la date est supérieur au 1er dimanche du mois en cours, afficher le 1er dimanche du mois suivant"



Il y a une formule:
si la date n'est pas le 1er du mois , arrondir la date au 1er du mois suivant sinon reprendre la date, mais je n'arrive pas à la modifier pour le 1er dimanche


=SI(AUJOURDHUI()=DATE(ANNEE(AUJOURDHUI());MOIS(AUJOURDHUI())+0;1);AUJOURDHUI();DATE(ANNEE(AUJOURDHUI());MOIS(AUJOURDHUI())+1;1))

La progression souhaitée:

sam 02.janv.2016--> dim 03.janv.2016
dim 03.janv.2016--> dim 03.janv.2016
lun 04.janv.2016--> dim 07.févr.2016

sam 06.févr.2016--> dim 07.févr.2016
dim 07.févr.2016--> dim 07.févr.2016
lun 08.févr.2016--> dim 06.mars.2016

sam 05.mars.2016--> dim 06.mars.2016
dim 06.mars.2016--> dim 06.mars.2016
lun 07.mars.2016--> dim 03.avr.2016

etc


Merci pour votre aide

Les meilleurs 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.

Victor21
la formule est correct et une performance à relever: de 1900 au 5.12.9999
Hors en dessous du 1 mars 1900 (voir page 4 )
Avec si: A1 122 caractères et avec AUJOURDHUI() 202 caractères !

Une autre aussi performante

De Tontong - 3 mars 2016 à 16:57
avec 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))

Et une autre aussi performante

la formule est correct et une performance à relever: de 1900 au 9999
Hors en dessous du 1 mars 1900 et depuis le 6.12.9999 où elle conserve la date du 5.12.9999 à la place de donner #NOMBRE! puisque EXCEL ne peut pas afficher: Dimanche 2 janvier 10000

de job75 Une formule dérivée de la formule de Monique :
164 caractères =-RECHERCHE(-AUJOURDHUI();JOUR(FIN.MOIS(AUJOURDHUI();{1;0}))-FIN.MOIS(AUJOURDHUI();{1;0})-8+JOURSEM(FIN.MOIS(AUJOURDHUI();{1;0})-JOUR(FIN.MOIS(AUJOURDHUI();{1;0}))))
114 caractères =-RECHERCHE(-a3;JOUR(FIN.MOIS(a3;{1;0}))-FIN.MOIS(a3;{1;0})-8+JOURSEM(FIN.MOIS(a3;{1;0})-JOUR(FIN.MOIS(a3;{1;0}))))

Le FUN de job75

La solution de tontong est de loin la meilleure.


Mais en nombre de caractères on peut l'améliorer en utilisant des matrices :

Code :
=-RECHERCHE(-AUJOURDHUI();JOURSEM(FIN.MOIS(AUJOURDHUI();{0;-1})+1;2)-FIN.MOIS(AUJOURDHUI();{0;-1})-8)
115 octets - 101 caractères.

Code :
=-RECHERCHE(-A3;JOURSEM(FIN.MOIS(A3;{0;-1})+1;2)-FIN.MOIS(A3;{0;-1})-8)
117 octets - 71 caractères.


Bravo et magnifique performance de ces trois internautes

PS le faite de remplacer A1 ou A3 par AUJOURDHUI() est de la rendre autonome dans un calendrier:D
 
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Re : le premier dimanche du mois, reprendre la date

Bonsour®
jmst à dit:
est-il possible de faire la même chose, avec un autre jour de la semaine ?
JOB75 à dit:
Enfin quelqu'un qui cherche à comprendre
:rolleyes:
jmst à dit:
J'ai essayé sans succès !
Petit scarabée :
essaie_encore.jpg :rolleyes: Capture.JPG
=DATE(ANNEE($A9);MOIS($A9);1)-MOD(DATE(ANNEE($A9);MOIS($A9);1)-2-Nojour;7)+6+7*(NoOrdre-1)
NoJour correspond au n° de jour dans la semaine lundi=1,mardi=2,..... dimanche=7
NoOrdre correspond à la Nieme apparition du jour dans le mois

nb :
la formule peut etre réduite à 76 caractères :
=DATE(ANNEE($A9);MOIS($A9); )-MOD(DATE(ANNEE($A9);MOIS($A9); )-2-J;7)+6+7*(N-1)
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    48.2 KB · Affichages: 116
  • jmst.xlsx
    19.8 KB · Affichages: 94
Dernière édition:

jmst

XLDnaute Junior
Re : le premier dimanche du mois, reprendre la date

Bonsour®


NoJour (J)correspond au n° de jour dans la semaine lundi=1,mardi=2,..... dimanche=7
NoOrdre (N)correspond à la Nieme apparition du jour dans le mois

nb :
la formule peut etre réduite à 76 caractères :
=DATE(ANNEE($A9);MOIS($A9); )-MOD(DATE(ANNEE($A9);MOIS($A9); )-2-J;7)+6+7*(N-1)

Merci Modeste geedee, mais la progression de ta formule n'est pas adéquate.

Ce que je demande est:
"si la date est inférieur ou égal au le 1er dimanche du mois en cours, afficher le 1er dimanche du mois en cours, si la date est supérieur au 1er dimanche du mois en cours, afficher le 1er dimanche du mois suivant"

Les formules proposées en 1ere page ont ce critère.

=SI(JOUR(A3+7-JOURSEM(A3;2))<=7;A3+7-JOURSEM(A3;2);FIN.MOIS(A3;0)+8-JOURSEM(FIN.MOIS(A3;0)+1;2))

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

=-RECHERCHE(-A3;JOUR(FIN.MOIS(A3;{1;0}))-FIN.MOIS(A3;{1;0})-8+JOURSEM(FIN.MOIS(A3;{1;0})-JOUR(FIN.MOIS(A3;{1;0}))))

=-RECHERCHE(-A3;JOURSEM(FIN.MOIS(A3;{0;-1})+1;2)-FIN.MOIS(A3;{0;-1})-8)

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

Ma demande est de les modifier pour un autre jour que le dimanche
 

job75

XLDnaute Barbatruc
Re : le premier dimanche du mois, reprendre la date

Bonjour jmst, le fil,

Dimanche => =-RECHERCHE(-A3;MOD(JOURSEM(FIN.MOIS(A3;{0;-1})+1;2)-1;7)-FIN.MOIS(A3;{0;-1})-7)

Lundi ====> =-RECHERCHE(-A3;MOD(JOURSEM(FIN.MOIS(A3;{0;-1})+1;2)-2;7)-FIN.MOIS(A3;{0;-1})-7)

Mardi ====> =-RECHERCHE(-A3;MOD(JOURSEM(FIN.MOIS(A3;{0;-1})+1;2)-3;7)-FIN.MOIS(A3;{0;-1})-7)

Mercredi ==> =-RECHERCHE(-A3;MOD(JOURSEM(FIN.MOIS(A3;{0;-1})+1;2)-4;7)-FIN.MOIS(A3;{0;-1})-7)

Jeudi =====> =-RECHERCHE(-A3;MOD(JOURSEM(FIN.MOIS(A3;{0;-1})+1;2)-5;7)-FIN.MOIS(A3;{0;-1})-7)

Vendredi == > =-RECHERCHE(-A3;MOD(JOURSEM(FIN.MOIS(A3;{0;-1})+1;2)-6;7)-FIN.MOIS(A3;{0;-1})-7)

Samedi ====> =-RECHERCHE(-A3;MOD(JOURSEM(FIN.MOIS(A3;{0;-1})+1;2)-7;7)-FIN.MOIS(A3;{0;-1})-7)

A+
 

job75

XLDnaute Barbatruc
Re : le premier dimanche du mois, reprendre la date

Re,

Un peu plus simple :

Lundi ====> =-RECHERCHE(-A3;MOD(JOURSEM(FIN.MOIS(A3;{0;-1})-1;2);7)-FIN.MOIS(A3;{0;-1})-7)

Mardi ====> =-RECHERCHE(-A3;MOD(JOURSEM(FIN.MOIS(A3;{0;-1})-2;2);7)-FIN.MOIS(A3;{0;-1})-7)

Mercredi ==> =-RECHERCHE(-A3;MOD(JOURSEM(FIN.MOIS(A3;{0;-1})-3;2);7)-FIN.MOIS(A3;{0;-1})-7)

Jeudi =====> =-RECHERCHE(-A3;MOD(JOURSEM(FIN.MOIS(A3;{0;-1})-4;2);7)-FIN.MOIS(A3;{0;-1})-7)

Vendredi ===> =-RECHERCHE(-A3;MOD(JOURSEM(FIN.MOIS(A3;{0;-1})-5;2);7)-FIN.MOIS(A3;{0;-1})-7)

Samedi ====> =-RECHERCHE(-A3;MOD(JOURSEM(FIN.MOIS(A3;{0;-1})-6;2);7)-FIN.MOIS(A3;{0;-1})-7)

Dimanche ==> =-RECHERCHE(-A3;MOD(JOURSEM(FIN.MOIS(A3;{0;-1})-7;2);7)-FIN.MOIS(A3;{0;-1})-7)

A+
 

Modeste geedee

XLDnaute Barbatruc
Re : le premier dimanche du mois, reprendre la date

Bonsour®
Ce que je demande est:
"si la date est inférieur ou égal au le 1er dimanche du mois en cours, afficher le 1er dimanche du mois en cours, si la date est supérieur au 1er dimanche du mois en cours, afficher le 1er dimanche du mois suivant

Ma demande est de les modifier pour un autre jour que le dimanche

=DATE(ANNEE($A9);MOIS($A9);1 )-MOD(DATE(ANNEE($A9);MOIS($A9);1 )-9;7)+6
cette formule générique donne le 1er dimanche du mois en cours !!!!
JOB75 à dit:
Enfin quelqu'un qui cherche à comprendre
je commence à douter...
c'est à toi de faire le test pour choisir ce qu'il faut retourner !!!
si tu ne comprends ... ou ne sais pas adapter...
les formules toutes faites de JOB75 remplissent expressément ta demande.

maintenant si tu souhaites :
"si la date est inférieur ou égal au le 3eme mercredi du mois en cours, afficher le 3eme mercredi du mois en cours, si la date est supérieur au 3eme mercredi du mois en cours, afficher le 3eme mercredi du mois suivant"
JOB75 te fera le plaisir ? :rolleyes: de satisfaire à ta demande...
A bon entendeur ... salut !
 
Dernière édition:

jmst

XLDnaute Junior
Re : le premier dimanche du mois, reprendre la date

Les messages se croisent


Comme d'hab' job 75, rapide et sans faute

Merci à Modeste geedee

Je testerait plus tard ta proposition.

Bonne journée
 
Dernière édition:

jmst

XLDnaute Junior
Re : le premier dimanche du mois, reprendre la date

Suite...


... si on ne s'intéresse pas qu'au dimanche ou si on veut choisir une autre date de référence que la date courante.​


Bonne journée.


ℝOGER2327
#8221


Lundi 9 Pédale 143 (*Saint Remezy, évêque in partibus - fête Suprême Quarte)
13 Ventôse An CCXXIV, 1,2628h - fumeterre
2016-W09-4T03:01:51Z


Bonjour ROGER2327, classeur inexploitable pour un novice comme moi.

Jolie présentation des dates, mais inexploitable pour apprendre quelque chose: snifffffffff
 

job75

XLDnaute Barbatruc
Re : le premier dimanche du mois, reprendre la date

Bonjour jmst, le forum,

Ici avec JOURSEM(xxx;3) on se passe de la fonction MOD :

Lundi ===> =-RECHERCHE(-A3;JOURSEM(FIN.MOIS(A3;{0;-1})+1-1;3)-FIN.MOIS(A3;{0;-1})-7)

Mardi ===> =-RECHERCHE(-A3;JOURSEM(FIN.MOIS(A3;{0;-1})+1-2;3)-FIN.MOIS(A3;{0;-1})-7)

Mercredi => =-RECHERCHE(-A3;JOURSEM(FIN.MOIS(A3;{0;-1})+1-3;3)-FIN.MOIS(A3;{0;-1})-7)

Jeudi ====> =-RECHERCHE(-A3;JOURSEM(FIN.MOIS(A3;{0;-1})+1-4;3)-FIN.MOIS(A3;{0;-1})-7)

Vendredi ==> =-RECHERCHE(-A3;JOURSEM(FIN.MOIS(A3;{0;-1})+1-5;3)-FIN.MOIS(A3;{0;-1})-7)

Samedi ===> =-RECHERCHE(-A3;JOURSEM(FIN.MOIS(A3;{0;-1})+1-6;3)-FIN.MOIS(A3;{0;-1})-7)

Dimanche => =-RECHERCHE(-A3;JOURSEM(FIN.MOIS(A3;{0;-1})+1-7;3)-FIN.MOIS(A3;{0;-1})-7)

Bonne journée.
 

jmst

XLDnaute Junior
Re : le premier dimanche du mois, reprendre la date

Bonjour jmst, le forum,

Ici avec JOURSEM(xxx;3) on se passe de la fonction MOD :

Lundi ===> =-RECHERCHE(-A3;JOURSEM(FIN.MOIS(A3;{0;-1})+1-1;3)-FIN.MOIS(A3;{0;-1})-7)

Mardi ===> =-RECHERCHE(-A3;JOURSEM(FIN.MOIS(A3;{0;-1})+1-2;3)-FIN.MOIS(A3;{0;-1})-7)

Mercredi => =-RECHERCHE(-A3;JOURSEM(FIN.MOIS(A3;{0;-1})+1-3;3)-FIN.MOIS(A3;{0;-1})-7)

Jeudi ====> =-RECHERCHE(-A3;JOURSEM(FIN.MOIS(A3;{0;-1})+1-4;3)-FIN.MOIS(A3;{0;-1})-7)

Vendredi ==> =-RECHERCHE(-A3;JOURSEM(FIN.MOIS(A3;{0;-1})+1-5;3)-FIN.MOIS(A3;{0;-1})-7)

Samedi ===> =-RECHERCHE(-A3;JOURSEM(FIN.MOIS(A3;{0;-1})+1-6;3)-FIN.MOIS(A3;{0;-1})-7)

Dimanche => =-RECHERCHE(-A3;JOURSEM(FIN.MOIS(A3;{0;-1})+1-7;3)-FIN.MOIS(A3;{0;-1})-7)

Bonne journée.

Merci job75 le nouveau titre du fil devrait être:
"si la date est inférieur ou égal au 1er xxxx jour du mois en cours, afficher le 1er xxxx jour du mois en cours, si la date est supérieur au 1er xxxx jour du mois en cours, afficher le 1er xxxx jour du mois suivant"

Encore une formule MODIFIABLE facilement avec 72 caractères.

Par contre comprendre sa construction, pour moi nocive, aie aie
 

job75

XLDnaute Barbatruc
Re : le premier dimanche du mois, reprendre la date

Re,

Bah, on y arrive enfin, voici une formule qui simplifie encore la formule de tontong.

Il suffit d'utiliser JOURSEM sans le 2ème argument :

Lundi ===> =-RECHERCHE(-A3;JOURSEM(FIN.MOIS(A3;{0;-1})-1)-FIN.MOIS(A3;{0;-1})-8)

Mardi ===> =-RECHERCHE(-A3;JOURSEM(FIN.MOIS(A3;{0;-1})-2)-FIN.MOIS(A3;{0;-1})-8)

Mercredi => =-RECHERCHE(-A3;JOURSEM(FIN.MOIS(A3;{0;-1})-3)-FIN.MOIS(A3;{0;-1})-8)

Jeudi ====> =-RECHERCHE(-A3;JOURSEM(FIN.MOIS(A3;{0;-1})-4)-FIN.MOIS(A3;{0;-1})-8)

Vendredi ==> =-RECHERCHE(-A3;JOURSEM(FIN.MOIS(A3;{0;-1})-5)-FIN.MOIS(A3;{0;-1})-8)

Samedi ===> =-RECHERCHE(-A3;JOURSEM(FIN.MOIS(A3;{0;-1})-6)-FIN.MOIS(A3;{0;-1})-8)

Dimanche => =-RECHERCHE(-A3;JOURSEM(FIN.MOIS(A3;{0;-1})-7)-FIN.MOIS(A3;{0;-1})-8)

Edit : pour dimanche on peut supprimer le -7, il est utile seulement quand on paramètre les jours de 1 à 7.

A+
 
Dernière édition:

Discussions similaires