calendrier.dev

Numéro de semaine dans Excel

Dans Excel, NO.SEMAINE(date) renvoie un numéro de semaine américain (semaine 1 = celle du 1er janvier, début le dimanche) ; pour le numéro de semaine ISO utilisé en France, il faut NO.SEMAINE.ISO(date) ou NO.SEMAINE(date;21). La différence est visible dès le 1er janvier 2027 : 1 pour la première, 53 pour l’ISO.

NO.SEMAINE n’est pas ISO par défaut

La fonction NO.SEMAINE(date ; [type]) (WEEKNUM en anglais) numérote les semaines à partir de celle qui contient le 1er janvier, appelée semaine 1 quel que soit son jour. Le second argument fixe le premier jour de la semaine : 1 ou omis pour le dimanche (convention américaine), 2 pour le lundi, 11 à 17 pour chaque jour de lundi à dimanche. Seul le type 21 applique la norme ISO 8601 (semaine du 4 janvier, début lundi). Depuis Excel 2013, NO.SEMAINE.ISO(date) (ISOWEEKNUM) donne directement ce résultat. En France, le numéro attendu par les plannings, les agendas et les administrations est le numéro ISO : utilisez toujours NO.SEMAINE.ISO ou le type 21.

Le piège : le 1er janvier 2027 est en semaine 53

Avec NO.SEMAINE(DATE(2027;1;1)), Excel renvoie 1. Avec NO.SEMAINE.ISO, il renvoie 53, car le vendredi 1er janvier 2027 appartient à la semaine 53 de 2026, qui court du 28 décembre 2026 au 3 janvier 2027. Symétriquement, le lundi 29 décembre 2025 est en semaine 1 de 2026 pour ISO et en semaine 53 pour NO.SEMAINE. Un tableau de bord qui concatène ANNEE(date) et NO.SEMAINE.ISO(date) produira « 2027-53 », clé inexistante. L’année ISO n’a pas de fonction dédiée dans Excel ; formule : =ANNEE(date+3-MOD(date-2;7)) (année du jeudi de la semaine).

Comparaison calculée pour 2024-2030

DateJourNO.SEMAINE type 1 (dimanche)NO.SEMAINE type 2 (lundi)NO.SEMAINE.ISO
1er janvier 2024lundi111 (année ISO 2024)
31 décembre 2024mardi53531 (année ISO 2025)
1er janvier 2025mercredi111 (année ISO 2025)
31 décembre 2025mercredi53531 (année ISO 2026)
1er janvier 2026jeudi111 (année ISO 2026)
31 décembre 2026jeudi535353 (année ISO 2026)
1er janvier 2027vendredi1153 (année ISO 2026)
31 décembre 2027vendredi535352 (année ISO 2027)
1er janvier 2028samedi1152 (année ISO 2027)
31 décembre 2028dimanche545352 (année ISO 2028)
1er janvier 2029lundi111 (année ISO 2029)
31 décembre 2029lundi53531 (année ISO 2030)
1er janvier 2030mardi111 (année ISO 2030)
31 décembre 2030mardi53531 (année ISO 2031)

Deux constats : les types 1 et 2 donnent toujours 1 au 1er janvier, et 53 ou 54 au 31 décembre ; ISO donne 52 ou 53 au 31 décembre, ou 1 quand les derniers jours de décembre appartiennent déjà à l’année suivante (2024, 2025, 2029, 2030). Le 31 décembre 2028 atteint 54 en type 1 parce que 2028 est bissextile et commence un samedi : la semaine 1 ne contient que le samedi 1er janvier, et il reste 365 jours à répartir.

Les mêmes fonctions ailleurs

OutilSemaine ISOSemaine « américaine »Remarque
Excel (2013 et plus)NO.SEMAINE.ISO(d) ou NO.SEMAINE(d;21)NO.SEMAINE(d)type 21 disponible depuis Excel 2010
Google SheetsISOWEEKNUM(d) ou WEEKNUM(d;21)WEEKNUM(d)noms anglais même en interface française
LibreOffice CalcISOWEEKNUM(d) ou NO.SEMAINE(d;21)NO.SEMAINE(d;1)NO.SEMAINE_OOO pour les anciens fichiers
Pythond.isocalendar()[1], d.strftime('%V')d.strftime('%U') (dimanche), '%W' (lundi)%U et %W commencent à 0, pas à 1
JavaScriptaucune fonction native ; calcul par le jeudi de la semainedate-fns : getISOWeek, Luxon : weekNumber
PostgreSQLEXTRACT(WEEK FROM d), ISOYEARWEEK est ISO
MySQLWEEK(d,3)WEEK(d) (mode 0)8 modes différents
Power Query / DAXWEEKNUM(d;21)WEEKNUM(d)Date.WeekOfYear n’est pas ISO

Formule ISO sans NO.SEMAINE.ISO (Excel 2007 et antérieurs)

=ENT((date-DATE(ANNEE(date+4-JOURSEM(date;2));1;1)+JOURSEM(DATE(ANNEE(date+4-JOURSEM(date;2));1;1);2)+5)/7). Plus lisible : calculez le jeudi de la semaine avec jeudi = date+4-JOURSEM(date;2), puis =1+ENT((jeudi-DATE(ANNEE(jeudi);1;1))/7). La conversion inverse, du numéro de semaine vers les dates, est faite par l’outil de conversion de ce site ; le lundi de la semaine S de l’année A vaut en Excel =DATE(A;1;4)-JOURSEM(DATE(A;1;4);2)+1+7*(S-1).

Erreurs fréquentes

Tableau récapitulatif

FonctionDébut de semaineSemaine 1Plage
NO.SEMAINE(d) / type 1dimanchecontient le 1er janvier1 à 53 ou 54
NO.SEMAINE(d;2)lundicontient le 1er janvier1 à 53 ou 54
NO.SEMAINE(d;21) / NO.SEMAINE.ISOlundicontient le 4 janvier1 à 52 ou 53
Python %U / %Wdimanche / lundi1re semaine complète0 à 53

Voir aussi : Numéro de semaine en cours, La semaine ISO 8601, Convertisseur numéro de semaine → dates, Semaines 2026, Semaines 2027, Semaine 1 2027.

Questions fréquentes

Quelle formule Excel donne le numéro de semaine ISO ?

NO.SEMAINE.ISO(date) depuis Excel 2013, ou NO.SEMAINE(date;21) depuis Excel 2010. Dans Google Sheets et LibreOffice : ISOWEEKNUM(date).

Pourquoi NO.SEMAINE renvoie-t-il 53 au 31 décembre 2027 alors que l’agenda dit 52 ?

Parce que NO.SEMAINE (types 1 et 2) commence la semaine 1 au 1er janvier, décalant tout d’une semaine par rapport à ISO lorsque l’année ne commence pas un lundi (type 2) ou un dimanche (type 1).

Comment obtenir l’année ISO dans Excel ?

Il n’y a pas de fonction. Prenez l’année du jeudi de la semaine : =ANNEE(date+3-MOD(date-2;7)). Pour le 1er janvier 2027, la formule renvoie 2026.

Comment retrouver les dates d’une semaine à partir de son numéro ?

Lundi de la semaine S de l’année A : =DATE(A;1;4)-JOURSEM(DATE(A;1;4);2)+1+7*(S-1). L’outil convertisseur de ce site fait le calcul pour 2026 et 2027.

Sources : Microsoft, documentation des fonctions NO.SEMAINE et NO.SEMAINE.ISO (support.microsoft.com, consulté en 2026) ; ISO 8601-1:2019 ; Python, documentation du module datetime (isocalendar, strftime) ; Google, « ISOWEEKNUM » et « WEEKNUM », aide de Google Sheets ; The Document Foundation, aide de LibreOffice Calc ; PostgreSQL 16, documentation de EXTRACT ; MySQL 8.0, fonction WEEK.