aide à la lecture de formule ?

  • Initiateur de la discussion Initiateur de la discussion atlonia
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

atlonia

XLDnaute Occasionnel
Bonsoir à tous,

J'ai un soucis de lecture de la formule suivante en "B3":

Code:
=7*$A$3+DATE(ANNEE(AUJOURDHUI());1;3)-JOURSEM(DATE(ANNEE(AUJOURDHUI());1;3))

Mon problème se situe au niveau de la fonction =DATE(année;mois;jour)

"année" est bien représenté par: "ANNEE(AUJOURDHUI())", mais je ne comprend pas le rapport entre mois "1" et jour "3".

quelqu'un peut-il me donner l'explication?

ci- joint mon classeur pour plus de compréhention:
 

Pièces jointes

Dernière édition:
Re : aide à la lecture de formule ?

Bonsoir atlonia,

J'ai regardé ton fichier et la date ne correspondait pas à la bonne journée, peut-être mieux de partir du 1er janvier de l'année en cours + 7 x ton nombre de semaines - le nombre de jours écoulés dans la semaine.

@+

Denis

Edit: Oubliez cette intervention, comme la formule d'Atnolia ne fonctionnait pas(du moins chez moi), j'ai posté sans trop réfléchir. Utilisez la formule de Marcel32. Désolé Atlonia et le forum.
 
Dernière édition:
Re : aide à la lecture de formule ?

Le "1" et le "3" sont là pour faire référence au 3 janvier.
C'est sans doute quelquechose qui sert à calculer le numéro de la semaine et le fait de prendre le 3 janvier comme référence permet de savoir facilement si les premiers jours de l'année font partie de la première semaine de cette année ou de la dernière semaine de l'année précédente.


[edit]
Je viens de regarder ton fichier, et c'est bien ce que je disais ci-dessus : en fait ça devrait te permettre de calculer la date du premier jour de la première semaine de l'année, en concidérant que le dimanche est le premier jour de la semaine.
Mais la formule me semble ne pas donner de bons résultats... 🙁
Par exemple : la première semaine de l'an 2008 commence en réalité le lundi 31 décembre 2007 et non le lundi 5 janvier 2008, d'autant plus que le 5 janvier 2008 n'est en fait pas un lundi.
Perso, j'utiliserais la formule suivante :
=7*$A$3+DATE(ANNEE(AUJOURDHUI());1;4)-JOURSEM(DATE(ANNEE(AUJOURDHUI());1;4);3)-7
[/edit]
 
Dernière édition:
Re : aide à la lecture de formule ?

Merci Denis et Marcel,

Denis, j'ai essayé ta formule, mais elle ne me donne pas non plus le bon résultat!
mais j'ai peut-être manqué quelque chose...!

Marcel, la tienne fonctionne parfaitement et ton début d'explication m'éclaire un peu plus, mais ce que j'aimerais, c'est mieux la comprendre?

J'ai lu l'aide Excel, fais des recherches sur le Web et j'ai également 3 livres à ma disposition, mais je n'ai pas trouvé d'explication assez claire...!

Peut-être en avez vous une plus détaillée ou l'adresse d'un tuto que je pourrais approfondir.


Merci de votre aide
 
Re : aide à la lecture de formule ?

hello

tous les pays du monde ne font pas commencer la semaine le même jour (dim ou lun)
pas commencer l'année le même jour
pas commencer la semaine 1 au même moment

ce qui fait qu'il peut y avoir des pb de formules (livres traduits par exemple)
 
Re : aide à la lecture de formule ?

hello

tous les pays du monde ne font pas commencer la semaine le même jour (dim ou lun)
pas commencer l'année le même jour
pas commencer la semaine 1 au même moment

ce qui fait qu'il peut y avoir des pb de formules (livres traduits par exemple)

Merci de ton intervention jmd2,

J'ai bien saisi ce que tu veux dire, mais ce que je ne comprend pas, c'est pourquoi lorsque j'écris:
Code:
=DATE(ANNEE(AUJOURDHUI());1;4)
le résultat correspond bien au 04/01/2008 qui est un Jeudi...!

alors qu'il est dit plus haut que l'on fait référence au 1er jour de la 1ère semaine de l'année en cours qui devrait être un dimanche.

Je contunurai a cherche ce soir, pour l'instant, le travail m'appelle.

Merci
 
Re : aide à la lecture de formule ?

AUJOURDHUI() donne la date d'aujourd'hui.
ANNEE(AUJOURDHUI()) donne donc l'année d'aujourd'hui.

La syntaxe de la fonction DATE est la suivante :
DATE(A;M;Q) avec A=année, M=mois et Q=quantième du mois.

DATE(ANNEE(AUJOURDHUI());1;4) donne donc une date qui n'est autre que le 4 janvier de l'année d'aujourd'hui.
Ca ne donne pas le premier jour de la première semaine de l'année ; c'est la formule complète qui donne ce résultat.

Si tu veux plus de renseignements sur ma formule, n'hésite pas biensûr. 😉


PS : j'ai fabriqué la formule en supposant que le premier jour de la semaine est un lundi et non un dimanche.
 
Dernière édition:
Re : aide à la lecture de formule ?

AUJOURDHUI() donne la date d'aujourd'hui.
ANNEE(AUJOURDHUI()) donne donc l'année d'aujourd'hui.

La syntaxe de la fonction DATE est la suivante :
DATE(A;M;Q) avec A=année, M=mois et Q=quantième du mois.

DATE(ANNEE(AUJOURDHUI());1;4) donne donc une date qui n'est autre que le 4 janvier de l'année d'aujourd'hui.
Ca ne donne pas le premier jour de la première semaine de l'année ; c'est la formule complète qui donne ce résultat.

Si tu veux plus de renseignements sur ma formule, n'hésite pas biensûr. 😉


PS : j'ai fabriqué la formule en supposant que le premier jour de la semaine est un lundi et non un dimanche.

Merci Marcel,

Je n'avais pas saisi qu'il s'agissait du "quantième" et non du "jour".
C'est effectivement un peu plus clair à présent!

Mais pourquoi faire référence à ce jour précis?

Et puisque tu as la gentillesse de le proposer, une petite explication sur la deuxième partie me serait bien utile:

Code:
JOURSEM(DATE(ANNEE(AUJOURDHUI());1;4);[COLOR="Red"]3[/COLOR])[COLOR="Red"]-7[/COLOR]

A quoi correspondent les deux derniers arguments en rouge?

Merci encore de ton aide.
 
Re : aide à la lecture de formule ?

Le "quantième du mois" ça veut dire, si tu préfères, la "date" du jour, autrement dit c'est le numéro du jour dans le mois.


JOURSEM(x) permet d'obtenir un chiffre en fonction de la date x.
Ce chiffre est spécifique à chaque jour et dépend du paramètre y qui suit la date dans la fonction JOURSEM(x;y).
J'ai pris y=3 pour que le chiffre renvoyé par la fonction JOURSEM soit compris entre 0 et 6 (0=lundi, 1=mardi, ..., 6=dimanche).

Tu sais donc pourquoi j'ai utilisé le 3. 😉

Si on met 2 à la place de 3, le chiffre renvoyé est alors compris entre 1 et 7, toujours du lundi au dimanche.
Ceci dit, il est peut-être plus simple d'utiliser 2, mais personnellement en général je préfère me référer à la valeur 0 plutôt qu'à la valeur 1. C'est chacun qui voit. 😉
 
Dernière édition:
Re : aide à la lecture de formule ?

Ce que l'on veut en fait, c'est calculer les dates des 7 jours d'une semaine en fonction du numéro de cette semaine (et de l'année biensûr).

Pour cela il suffit de calculer la date du premier jour de ladite semaine (pour avoir la date du deuxième jour on ajoutera 1 à la date du premier jour, etc. jusqu'au septième et dernier jour de la semaine voulue).

Et pour cela il faut connaître la date du premier jour de la première semaine de la même année à laquelle on ajoute le numéro de la semaine désirée multiplié par 7 (puisqu'il y a 7 jours par semaine) ; et on retranche 7 pour retomber sur la bonne date (en effet, si on multiplie par 7 le numéro de la semaine, on voit tout de suite que pour la première semaine on se retrouve avec 7*1 = 7 et donc si on ajoute ce 7 à la date du premier jour de la première semaine de l'année, on se retrouve en fait au premier jour de la deuxième semaine et il faut donc retrancher 7 pour retomber sur la date du premier jour de la première semaine).

Tu sais maintenant pourquoi je retranche 7. 😉
 
Dernière édition:
Re : aide à la lecture de formule ?

Bon, alors je continue. 😉


On a vu que la fonction JOURSEM avec le paramètre 3 renvoyait un chiffre compris entre 0 et 6 (0=lundi, 1=mardi, ..., 6=dimanche).
JOURSEM(x;3) où "x" est une date quelconque, donne donc toujours comme résultat un chiffre compris entre 0 et 6 qui correspond au jour (lundi, mardi, etc.) de la date en question.


On va maintenant étudier ce que nous renvoit comme résultat la formule x-JOURSEM(x;3) où "x" est une date quelconque.

Si le jour de la date "x" est un lundi alors JOURSEM(x;3) renvoit la valeur 0 (zéro) et donc on rentranche 0 (zéro) à la date "x", ce qui nous fait biensûr tomber toujours sur cette même date "x", qui est donc un lundi.

Si le jour de la date "x" est un mardi alors JOURSEM(x;3) renvoit la valeur 1 et donc on rentranche 1 à la date "x", ce qui nous fait tomber la veille de la date "x" donc le lundi de la même semaine.

Si le jour de la date "x" est un mercredi alors JOURSEM(x;3) renvoit la valeur 2 et donc on rentranche 2 à la date "x", ce qui nous fait tomber l'avant-veille de la date "x" donc le lundi.

Ainsi de suite jusqu'au dernier cas possible :
Si le jour de la date "x" est un dimanche alors JOURSEM(x;3) renvoit la valeur 6 et donc on rentranche 6 à la date "x", ce qui nous fait donc tomber... le lundi.


On voit donc que quelque soit la date "x" utilisée, avec cette formule x-JOURSEM(x;3) où "x" est la date voulue, on retombe toujours sur le lundi de la même semaine que la date "x" utilisée.
En concidérant que la semaine commence le lundi, on sait donc maintenant calculer la date du premier jour de la semaine d'une date quelconque.



La formule DATE(ANNEE(AUJOURDHUI());1;4)-JOURSEM(DATE(ANNEE(AUJOURDHUI());1;4);3) est bien du format x-JOURSEM(x;3) et renvoit donc la date du lundi (premier jour de la semaine) de la même semaine que la date "x" en question.
Vu que la date utilisée est ici le 4 janvier, on va donc systématiquement obtenir la date du premier jour de la semaine du 4 janvier.
 
Dernière édition:
Re : aide à la lecture de formule ?

Maintenant il faut savoir quelle est la première semaine de l'année...

Une semaine comporte 7 jours.
Si les 7 jours de la semaine sont dans la même année, il n'y a alors aucun doute, la semaine en question fait bien partie de l'année. 😉
En revanche, on peut se poser la question pour une semaine à cheval sur deux années...
La semaine se terminant l'année N et ayant donc commencé l'année (N-1) est-elle une semaine de l'année N ou de l'année précédente (N-1) ???
Eh bien ce n'est pas compliqué : une semaine ayant 7 jours et 7 étant un nombre impair, il y a forcément plus de jours (de la semaine à cheval sur deux années) faisant partie d'une année que de l'autre année. La semaine sera alors concidérée comme faisant partie de l'année comportant le plus de jours de cette semaine.


Exemples :

1- s'il y a 1 jour dans l'année N (donc le dimanche 1er janvier), il y a donc 6 jours de la semaine (du lundi au samedi) dans l'année (N-1) et cette semaine fera donc partie de l'année (N-1). Ce sera la dernière semaine de l'année (N-1).

2- De même s'il y a 2 jours (samedi 1er janvier et dimanche 2 janvier) dans l'année N, il y a donc 5 jours (du lundi au vendredi) dans l'année (N-1) et cette semaine sera donc la dernière semaine de l'année (N-1).

3- De même s'il y a 3 jours (vendredi 1er janvier, samedi 2 janvier et dimanche 3 janvier) dans l'année N, il y a donc 4 jours (du lundi au jeudi) dans l'année (N-1) et cette semaine sera donc la dernière semaine de l'année (N-1).

4- En revanche s'il y a 4 jours (jeudi 1er janvier, vendredi 2 janvier, samedi 3 janvier et dimanche 4 janvier) dans l'année N, il y a donc 3 jours (du lundi au mercredi) dans l'année (N-1) et cette semaine sera donc la première semaine de l'année N.

5- De même s'il y a 5, 6 ou 7 jours dans l'année N, il y a donc moins de jours dans l'année (N-1) et cette semaine sera donc la première semaine de l'année N.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Résolu(e)
Microsoft 365 DATEDIF
Réponses
11
Affichages
420
  • Résolu(e)
Microsoft 365 DateDif()
Réponses
5
Affichages
395
Réponses
1
Affichages
345
wDog66
W
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
452
Réponses
6
Affichages
345
Retour