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
| Date | Jour | NO.SEMAINE type 1 (dimanche) | NO.SEMAINE type 2 (lundi) | NO.SEMAINE.ISO |
|---|---|---|---|---|
| 1er janvier 2024 | lundi | 1 | 1 | 1 (année ISO 2024) |
| 31 décembre 2024 | mardi | 53 | 53 | 1 (année ISO 2025) |
| 1er janvier 2025 | mercredi | 1 | 1 | 1 (année ISO 2025) |
| 31 décembre 2025 | mercredi | 53 | 53 | 1 (année ISO 2026) |
| 1er janvier 2026 | jeudi | 1 | 1 | 1 (année ISO 2026) |
| 31 décembre 2026 | jeudi | 53 | 53 | 53 (année ISO 2026) |
| 1er janvier 2027 | vendredi | 1 | 1 | 53 (année ISO 2026) |
| 31 décembre 2027 | vendredi | 53 | 53 | 52 (année ISO 2027) |
| 1er janvier 2028 | samedi | 1 | 1 | 52 (année ISO 2027) |
| 31 décembre 2028 | dimanche | 54 | 53 | 52 (année ISO 2028) |
| 1er janvier 2029 | lundi | 1 | 1 | 1 (année ISO 2029) |
| 31 décembre 2029 | lundi | 53 | 53 | 1 (année ISO 2030) |
| 1er janvier 2030 | mardi | 1 | 1 | 1 (année ISO 2030) |
| 31 décembre 2030 | mardi | 53 | 53 | 1 (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
| Outil | Semaine ISO | Semaine « 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 Sheets | ISOWEEKNUM(d) ou WEEKNUM(d;21) | WEEKNUM(d) | noms anglais même en interface française |
| LibreOffice Calc | ISOWEEKNUM(d) ou NO.SEMAINE(d;21) | NO.SEMAINE(d;1) | NO.SEMAINE_OOO pour les anciens fichiers |
| Python | d.isocalendar()[1], d.strftime('%V') | d.strftime('%U') (dimanche), '%W' (lundi) | %U et %W commencent à 0, pas à 1 |
| JavaScript | aucune fonction native ; calcul par le jeudi de la semaine | — | date-fns : getISOWeek, Luxon : weekNumber |
| PostgreSQL | EXTRACT(WEEK FROM d), ISOYEAR | — | WEEK est ISO |
| MySQL | WEEK(d,3) | WEEK(d) (mode 0) | 8 modes différents |
| Power Query / DAX | WEEKNUM(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
- Omettre le type : NO.SEMAINE(date) compte du dimanche et diffère de l’agenda papier une semaine sur deux environ (les samedis ne sont pas dans la même semaine).
- Concaténer année civile et semaine ISO : produit « 2027-53 » et « 2025-1 » pour des dates de janvier et décembre.
- Utiliser %U ou %W en Python pour un numéro ISO : ils commencent à 0 et suivent le dimanche ou le lundi du 1er janvier.
- Compter 52 semaines par an dans un planning : 2026 et 2032 en ont 53.
- Recalculer un numéro de semaine avec la fonction texte
TEXTE(date;"ss"): « ss » renvoie les secondes, pas la semaine.
Tableau récapitulatif
| Fonction | Début de semaine | Semaine 1 | Plage |
|---|---|---|---|
| NO.SEMAINE(d) / type 1 | dimanche | contient le 1er janvier | 1 à 53 ou 54 |
| NO.SEMAINE(d;2) | lundi | contient le 1er janvier | 1 à 53 ou 54 |
| NO.SEMAINE(d;21) / NO.SEMAINE.ISO | lundi | contient le 4 janvier | 1 à 52 ou 53 |
| Python %U / %W | dimanche / lundi | 1re semaine complète | 0 à 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.