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
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
Dernière édition: