aide à la lecture de formule ?

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

  • Planing horaire00.zip
    8 KB · Affichages: 25
  • Planing horaire00.zip
    8 KB · Affichages: 27
  • Planing horaire00.zip
    8 KB · Affichages: 26
Dernière édition:

Denis132

XLDnaute Impliqué
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:

TooFatBoy

XLDnaute Barbatruc
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:

atlonia

XLDnaute Occasionnel
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
 

jmd2

XLDnaute Accro
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)
 

atlonia

XLDnaute Occasionnel
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
 

TooFatBoy

XLDnaute Barbatruc
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:

atlonia

XLDnaute Occasionnel
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.
 

TooFatBoy

XLDnaute Barbatruc
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:

TooFatBoy

XLDnaute Barbatruc
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:

TooFatBoy

XLDnaute Barbatruc
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:

TooFatBoy

XLDnaute Barbatruc
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:

Discussions similaires

Statistiques des forums

Discussions
312 332
Messages
2 087 362
Membres
103 530
dernier inscrit
Chess01