Sélectionner une plage de semaine (1-52)

Bonjour à tous et toutes,

C'est mon premier poste sur le forum, je vais tacher d'être le plus clair possible et j'espère que quelqu'un saura m'orienter.

J'ai fait une recherche mais probablement non exhaustive puisque je ne sais même pas quelle titre donner à mon problème.

Je vous explique tout mon problème et je joindrai un fichier Excel pour être plus clair.

Voila, je suis en train de faire un fichier excel, où toutes les semaines on encode les résultats de la semaine. Dans une feuille de synthèse, je veux par exemple ressortir les résultats pour une semaine demandées mais également qu'Excel me ressorte automatiquement les résultats additionné pour les 4 dernières semaines et qu'il me fasse également ça pour les 24 dernières semaines (6mois).

Alors pour procéder, il y'a plusieurs points. D'abord, dans la demande de référence, je rentre le jours et l'année. Excel me ressort ensuite un nombre qui comprend l'année (Exemple: Année 2015 et semaine 7 ==> 1507). Ca me facilite la chose pour utiliser la fonction SOMME.SI ou j'additionne toutes les données qui corresponde à la semaine indiqué.

Alors y'a un cas qui ne me pose pas de problème et un si.

Dans le cas des 4 semaines avant, c'est simple. Si pas exemple je regarde la semaine 1507, je ne prend que les valeurs qui sont plus grande que 1507-4 et plus petites que 1507-1 (donc 1503. 1504. 1505. 1506).

Mon problème vient pas exemple si je recherche pour la semaine 1503. Je dois prendre les résultats pour les semaine 1451, 1452, 1501 et 1502. Mais je ne peux plus utilise ma technique de 1503-4 et 1503-1 puisque il me prendra les semaine situé entre 1499 et 1502....

Du coups, je suis perdu à ce niveau.....

J'ai trouvé une "Triche" pour contourner le problème dans le cas des 4 semaines avant mais le problème reste le même pour les 24 semaines. Je ne m'étend pas sur l'astuce de peur d'embrouiller encore plus les choses.

Je vous joins un fichier Excel, pour compléter mon explication.

En espérant que quelqu'un sache m'aider ou au moins orienter mes recherches.

Si vous avez d'autre question, je suis tout disposé à vous répondre.

Merci d'avance

53teste-semaine.xlsx (13.78 Ko)

Bonjour,

C'est déjà mal parti : tu commences par escamoter la semaine 53 de 2015 !

Ton système ne peut être fiable que si tu listes tes semaines et que tu te réfères à cette liste.

Trouver la date de départ des 4 semaines qui précèdent la semaine x est facile : LUsem(-4)=LUsem(0)-4*7

Cela me paraît plus sûr.

Cordialement.

Bonjour,

J'ai regardé votre réponse, et j'ai fais mes tests (sans succès). C'est du code pour VBA? j'aimerais utiliser juste les formules basiques d'Excel pour travailler puisque le fichier devra être utiliser par d'autre collègue qui ne sont pas forcément tous intéressé par tous ça.

Ou alors, je n'ai pas compris le sens de votre réponse et je n'ai pas non plus compris comment l'utiliser . (J'aurai théoriquement le temps le week-end pour regarder les formations proposées par le site, mais la semaine c'est difficile.)

Et effectivement, je n'avais pas anticiper le cas ou il y'aurait 53 semaines dans l'année..... Ce qui m’embête fortement........

Ce message n'apporte rien au débat, mais si vous avez des autres explications, je suis preneur. Quoiqu'il en soit, Je me formerai et j'essayerai d'avoir la solution d'ici Lundi.

Encore merci pour votre temps.

Maxime

Je ne vois pas bien quelle méthode de calcul tu veux adopter...

Quelques exemples de calculs sur des dates.

Bonjour,

en complétant le tableau de MFerrand

Tu auras peut-être un ajustement à faire en H5, je n'ai pas eu le courage de contrôler si c'est la bonne semaine que tu veux.

eric

PS: pour pouvoir comparer correctement tu dois transformer tes chaines en numérique (voir E2 par exemple)

Merci beaucoup à vous deux.

Je pense qu'avec vos exemples, j'ai ce qu'il me faut pour y arriver. Je comprend, je l'applique à ma situation et je viens confirmer si j'y arrive correctement.

Merci beaucoup pour votre aide.

Bonjour à tous et toutes,

EDIT : Voilà, problème résolu. En travaillant chez moi, j'avais bougé ;21 pour la formule JOURSEM puisque j'ai Excel 2007 à la maison et 2010 au boulot.... Quoiqu'il en soit ça résoud tout. les semaines se mettent correctement.

Par contre, ça me rajoute une question. Pourquoi ce 21? Que change-t-il exactement? J'avais lu, je ne sais plus ou que c'était pour mettre les semaines en ISO et quelque chose du style? Si vous avez des infos supplémentaires je suis preneur.

(Entre parenthèse mes questions reste d'actualité, pour ma culture. Excepté la 2ième. Ou faire -7 permet d'aller chercher la semaine d'avant.)

Merci Beaucoup

RE-EDIT (ENCORE) J'ai parlé trop vite. Ca marche parfaitement pour l'année 2016, mais si on essaye pour l'année 2017 ou 2015 on à de nouveau des problèmes :/

Tout d'abord merci pour vos réponses ça ma effectivement permis d'avancer énormément .

Mais il reste quelques points d'ombres. j'ai essayé de chipoter et tester différentes valeurs mais ça ne semble jamais parfait.

Du coups, j'ai pas mal de question sur les formules utilisées. En comprenant parfaitement les formules je trouverai la solutions, j'en suis sur!!

Je commence par vous poser les questions de compréhension:

1) Dans la formule pour trouver la semaine de référence:

=DATE(F2;1;3)-JOURSEM(DATE(F2;1;3);2)+1+(F3-1)*7

Pourquoi utiliser comme jours de référence dans "DATE" et "JOURSEM" le 3 Janvier de l'année mentionnée? Si je change plus rien ne fonctionne

D'ailleurs je suppose que la formule permet de trouver la semaine recherchée et de noté la date du premier jours de la semaine soit le lundi.

Mais là, je remarque déjà une incohérence que j'avais pas vu au début.

Ici par exemple, je note la semaine 1 de l'année 2016 et il me sort la semaine du 28/12/2015. Hors cette semaine la correspond à la 52ième semaine de l'année 2015 et je voudrai avoir comme date le 4/01/2016, soit la semaine 1 de l'année 2016.

C'est pourquoi je voulais comprendre les opérations faites dans la formule.

2) Dans la formule pour trouver la semaine -1, ou -2 ou -24, etc...

=CNUM(--(TEXTE(E7-7;"aa"))&TEXTE(NO.SEMAINE(E7-7);"00"))

Je pensais à la base que le -7 (dans cet exemple là) correspondait à aller voir 7 jours avant donc une semaine plus tôt. Çà me semblait logique, sauf que ça ne fonctionne pas systématiquement.

(Je joins le fichier Excel si vous voulez vérifier par vous même)

Entrons par exemple la semaine 1 de l'année 2016: Tout est bon à l'exception près que ma semaine de référence est la 1553 et non 1601 et que toutes les autres semaines sont décalées d'une semaine.

Entrons par exemple la semaine 2 de l'année 2016. Ici la semaine de référence est bonne mais pas les autres.....

J'ai testé de nombreux réglages mais rien à faire, y'a toujours une date ou l'autre qui ne coïncide pas.

Au final, j'ai posé toutes mes questions... Je ne demande pas la réponse. mais juste des explications pour utiliser correctement les formules et comprendre la marche à suivre.

Encore merci pour votre temps et vos explications

Maxime

52test-jours.xlsx (11.41 Ko)

Bonjour,

Pourquoi utiliser comme jours de référence dans "DATE" et "JOURSEM" le 3 Janvier de l'année mentionnée? Si je change plus rien ne fonctionne

Tu te réfères à cette formule : =DATE(H2;1;3)-JOURSEM(DATE(H2;1;3))+2+(H1-1)*7

(Le correctif est +2 et non +1 comme tu l'as reproduit.)

D'abord il faut dire que la fonction NOSEMAINE de Microsoft a longtemps été inutilisable... Modifiée et assortie de paramètres pour renvoyer le numéro de semaine ISO (européen), elle reste boguée jusqu'à au moins la version 2010 incluse (je n'ai pas testé les suivantes) en renvoyant une erreur tous les 28 ans... Donc, je considère toujours que pour être fiable en tout temps, mieux vaut utiliser un calcul qui le soit !

Pourquoi le 3 janvier ?

On peut calculer à partir du 1er ou du 4 (Laurent Longre, qui est je crois le grand précurseur en matière de calcul du numéro de semaine ISO a fait des formules à partir de ces 2 dates).

Le 4 janvier constitue en tout cas la référence de départ puisque la semaine 1 est par définition celle qui contient le 4 janvier (plus exactement : la 1re semaine doit contenir 4 jours dans l'année, conséquence 1 : elle contient le 1er jeudi de l'année, conséquence 2 : elle contient toujours le 4 janvier, de même que la dernière semaine d'une année contient toujours le 28 décembre, également conséquence de la définition).

Si donc le 4 janvier est un lundi, c'est le 1er jour de la semaine 1, nécessairement ; si c'est un mardi, c'en est le 2e jour (elle aura commencé la veille, si c'est un mercredi, elle aura commencée 2 jours plus tôt, etc... et si c'est un dimanche, la semaine 1 aura commencé 6 jours plus tôt le lundi précédent.

Donc pour trouver le lundi de la semaine 1, il faut soustraire à la date du 4, un nombre de jours de 0 à 6 selon le jour de semaine du 4 du lundi au dimanche. Or JOURSEM qu'on utilise pour le jour de la semaine (utilisé sans paramètre) renvoie un nombre de 1 à 7, mais du dimanche au samedi. Du lundi au samedi on voit bien qu'en retranchant la valeur de JOURSEM diminuée de 2 à la date du 4 on détermine bien le lundi de la semaine 1. Mais arrivé au dimanche la formule ne s'applique plus car il faudrait que pour dimanche JOURSEM renvoie alors 8.

Mais si le 4 janvier est un lundi, le 3 sera un dimanche (et ainsi de suite), en translatant le raisonnement sur le 3 on voit que : que si le 3 est un dimanche JOURSEM renvoie 1 et avec la correction : -1+2=+1 => lundi S01=4 jenvier ; et pour la suite on retrouve la même régularité qu'avec le 4 : si le 3 est un lundi ce sera le 1er jour, un mardi le second et le premier lundi sera le 2...

La formule citée au début est une formule simplifiée dans la mesure où tu calcules par rapport à une année de référence. Il n'y a pas ambiguïté sur l'année, et donc quelle que soit la date du 1er lundi (qui peut tomber du 29 décembre au 4 janvier) tu définiras le bon.

Si tu cherches par rapport à une date donnée, pour 6 jours de l'année (1 au 3 janvier et 29 au 31 décembre), l'année ISO peut ne pas correspondre à l'année civile, ce pourquoi la formule complète (que je t'avais également mentionnée pour calculer la semaine de la date du jour et la semaine du 1er janvier :

=ENT((E11-RECHERCHE(E11;DATE(ANNEE(E11)+{-1;0;1};1;3)-JOURSEM(DATE(ANNEE(E11)+{-1;0;1};1;3))+2))/7)+1

calcule de la même façon le 1er lundi mais en renvoyant une matrice de 3 lundis (année préc., année en cours, année suiv.) par rapport auxquels on peut positionner la date dont on veut le n° de semaine avec RECHERCHE pour renvoyer le bon. Le reste du calcul ne consiste qu'à compter les semaines depuis le 1er lundi...

(NB- Cette formule à ma préférence parce qu'elle reste de taille très raisonnable, pas plus longue que les autres qui donnent le bon résultat, et qu'elle est facile à expliquer et à comprendre, ce qui est loin d'être toujours le cas.)

Je ne sais plus du coup si tu avais des questions d'un autre ordre... On y reviendra le cas échéant.

Cordialement.


Re,

Tu n'avais pas bien observé la formule : outre le +2 que tu avais réduit à +1, tu appliques : JOURSEM(date;2) au lieu de JOURSEM(date). En rectifiant cela tu retomberas sur tes pieds.

(NB- L'usage courant est d'utiliser le plus souvent JOURSEM sans 2e argument, c'est plus facile, plus rapide et plus court, ce pourquoi je l'utilise ainsi systématiquement, car son usage est fréquent notamment avec MOD pour lui faire renvoyer des valeurs de 0 à 6, le 0 n'étant pas toujours centré sur le même jour, aussi si on l'utilise tantôt avec 2 tantôt sans les risques d'erreurs deviennent nombreux. Exemple : on veut tester si jour de weekend : =MOD(JOURSEM(date);7)<2 renverra VRAI si samedi ou dimanche et FAUX pour les autres jours....)

Cordialement.

Bonjour,

J'ai été fort occupé cette semaine. Je profite du week-end pour vous répondre.

j'ai bien lu toutes vos explications. Tout me semble plus clair. J'ai su finir ce que je voulais faire et jusqu'à maintenant ça à l'air de fonctionner au poil.

Je pense que cette partie de mon fichier est finie grâce à vous.

Et aussi merci pour toutes les explications, je préfère largement utiliser des formules et comprendre ce que je fais plutôt que de bêtement copier la réponse.

Quoiqu'il en soit, je vous remercie.

Je sais ou je viendrai poser mes questions, si je me retrouve à nouveau face à mur

Maxime

Bonne continuation.

Rechercher des sujets similaires à "selectionner plage semaine"