Transformation Dates en Semaines

xavier64600

XLDnaute Nouveau
Bjr à tous

J'aimerai transformer les Dates sous la forme 25/06/2014 en N° de Semaine
D'Avance merci pour votre aide et vos explications détaillées, SVP ,je suis néophyte.

Cordialement
 

Pièces jointes

  • Dates.xlsx
    8.4 KB · Affichages: 47
  • Dates.xlsx
    8.4 KB · Affichages: 54
  • Dates.xlsx
    8.4 KB · Affichages: 52

Oranger

XLDnaute Occasionnel
Re : Transformation Dates en Semaines

Bonjour,

Pour savoir le numéro de la semaine d'une date donnée, on peux utiliser la fonction NO.SEMAINE.

NO.semaine(la date;2) --> le paramètre 2 indique que la semaine commence le lundi
Cependant cette fonction comporte un problème si tu souhaite connaître le numéro de la semaine du 31/12/2014, elle te renverra 53 alors qu'elle devrait indiquer 1.

Sur le site suivant, j'ai trouvé une formule qui marche à tous les coup :

Ce lien n'existe plus

Tu remplace B2 par le nom de la cellule et à chaque fois ça te retourne le bon résultat:

=ENT(MOD(ENT((B2-2)/7)+0,6;52+5/28))+1
 

Modeste geedee

XLDnaute Barbatruc
Re : Transformation Dates en Semaines

Bonsour®
mettre l'argument 2 1au lieu de 2 dans la fonction NO.SEMAINE, le numéro renvoyé sera bien 1.
:rolleyes: cela dépend de l'année concernée...

la fonction NO.SEMAINE est une fonction aux normes US (i.e. considère les fractions de semaines à cheval sur 2 années comme des semaines différentes : nb jour dans semaine < 7)

la formule proposée : #2
=ENT(MOD(ENT((B2-2)/7)+3/5;1461/28))+1 (©Christophe Péjout)
est une formule à la norme ISO,
Numérotation ISO des semaines — Wikipédia
une semaine a toujours 7 jours, la semaine contenant le 1er jeudi de l'année est la semaine N°1
limitation connue : formule à dimension humaine , erronée après année 2100

voir aussi cette fonction personnalisée :
VB:
Function WOY (MyDate As Date) As Integer   ' Week Of Year
'---http://support.microsoft.com/kb/200299/fr
  WOY = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
  If WOY > 52 Then
    If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then WOY = 1
  End If
End Function
 
Dernière édition:

xavier64600

XLDnaute Nouveau
Re : Transformation Dates en Semaines

Bjr
Merci pour votre réponse ,j'ai effectivement le résultat attendu, mais comment avez-vous fait ?Si vous pouviez me détailler votre formule,et comment l'optimiser à des centaines de dates.
Je suis vraiment débutant
D'Avance Merci

Cordialement
 

Modeste geedee

XLDnaute Barbatruc
Re : Transformation Dates en Semaines

Bonsour®

=ENT(MOD(ENT((B2-2)/7)+3/5;1461/28))+1 (©Christophe Péjout)
B2 est la référence de la cellule dont on souhaite connaitre le N° de semaine
le -2 pour tenir compte que l'origine des références dates EXCEL qui est le samedi 0 janvier 1900 et ainsi décaler les calculs pour obtenir le lundi (début des périodes de 7 jours)
3/5 est directement l'arrondi au dixième de la position du jeudi dans la semaine
(on aurait logiquement aussi bien dû prendre 4/7 : 0,571428 :rolleyes:)

cette formule est basée sur le cycle solaire calendaire de 28 ans
La connaissance du cycle solaire équivaut à celle de la lettre dominicale julienne
ce qui permet de dire qu'une même date se reproduit le même jour tout les 28 ans :
samedi 11 février 1905
samedi 11 février 1933
samedi 11 février 1961
samedi 11 février 1989
samedi 11 février 2017
samedi 11 février 2045
samedi 11 février 2073

vendredi 23 octobre 1903
vendredi 23 octobre 1931
vendredi 23 octobre 1959
vendredi 23 octobre 1987
vendredi 23 octobre 2015
vendredi 23 octobre 2043
vendredi 23 octobre 2071
vendredi 23 octobre 2099

cette formule est à utiliser telle quelle en indiquant la date concernée
et n'a pas lieu d'être optimisée, c'est une des plus courte à ma connaissance ...:cool:
 

xavier64600

XLDnaute Nouveau
Re : Transformation Dates en Semaines

Bjr
J'ai bien compris la formule ,mais de B2à B62 par exemple comment avez-vous fait?Comment sélectionner cette plage pour éviter de le faire ligne par ligne...et sur plusieurs centaines de dates..?
J'avais trouvé Formule/Date/NO.SSEMAINE mais je ne sais l'appliquer que sur une seule ligne
 

Modeste geedee

XLDnaute Barbatruc
Re : Transformation Dates en Semaines

Bonsour®

:confused:
en colonne B les dates
en C2 la formule :
=ENT(MOD(ENT((B2-2)/7)+3/5;1461/28))+1

cliquer sur le coin inferieur droit de la cellule C2
apparition petit carré noir
le curseur se transforme alors en croix noire
Double-click

sinon :
laisser le curseur sur le carré noir
et tirer vers le bas autant que nécessaire

ou bien encore :
copier > collage spécial formules vers la plage de destination sélectionnée
 

Discussions similaires

Statistiques des forums

Discussions
312 202
Messages
2 086 180
Membres
103 152
dernier inscrit
Karibu