Qu'est-ce que la fonction NO. SEMAINE ?
NO.SEMAINE (WEEKNUM en anglais) te sert dès que tu dois comparer ou regrouper des données par semaine plutôt que par date précise, ce qu'une date brute ne permet pas de faire directement dans un tri ou une synthèse. Elle t'évite de recompter les lundis sur un calendrier à chaque fois que tu veux savoir à quelle semaine appartient une ligne.
Concrètement, c'est elle qui numérote automatiquement les ventes par semaine pour tes tableaux croisés dynamiques, qui groupe les demandes de congés par période, ou qui crée des identifiants semaine-année uniques pour tes reportings pluriannuels. Le paramètre type_retour est crucial : il détermine si tu suis la convention américaine, européenne ou la norme ISO 8601.
Syntaxe
=NO.SEMAINE(numéro_de_série; [type_retour])Clique sur un argument pour aller à son explication.
Si tu omets type_retour, Excel utilise 1 (système américain : la semaine commence le dimanche). Pour la France et l'Europe, utilise 21 (norme ISO 8601 : semaine commence le lundi, semaine 1 = celle contenant le premier jeudi de l'année).

Comprendre chaque paramètre de la fonction NO.SEMAINE
numéro_de_série
: la date dont tu veux obtenir le numéro de semaineÇa peut être une référence de cellule comme A1, une date construite avec DATE(2024; 3; 15), ou le résultat d'une fonction comme AUJOURDHUI().
Excel stocke les dates en interne comme des nombres entiers (nombre de jours depuis le 1er janvier 1900), donc tu peux aussi passer directement un numéro de série. Mais c'est bien plus clair de travailler avec de vraies dates.
[type_retour]
: le paramètre qui détermine comment Excel numérotait les semaines(facultatif)Il fixe à la fois le premier jour de la semaine et la façon dont la semaine 1 est définie au début de chaque année. Par défaut (si tu omets ce paramètre), Excel utilise 1 : semaine commençant le dimanche, système américain.
Les valeurs les plus utiles : 1 ou omis = semaine commence dimanche (USA) ; 2 = semaine commence lundi (Europe simple, semaine 1 = celle avec le 1er janvier) ; 21 = norme ISO 8601 (semaine commence lundi, semaine 1 = celle qui contient le premier jeudi de l'année) ; 11 à 17 = semaines commençant de lundi à dimanche, semaine 1 = celle avec le 1er janvier.

Exemples pratiques pas à pas
Comment obtenir le numéro de semaine d'une date avec la fonction NO.SEMAINE
Le point commercial du lundi arrive et on te demande de comparer les ventes semaine par semaine, pas date par date. Tu as la liste des ventes avec leur date, le commercial, le montant et la région, et tu veux une colonne qui donne le numéro de semaine de chaque ligne. La fonction NO.SEMAINE lit la date et sort ce numéro toute seule, sans que tu aies à compter les lundis sur un calendrier.
- 1Dans une cellule, écris
=NO.SEMAINE(. - 2En 1er argument : clique sur la cellule qui porte la date à traiter,
A2. NO.SEMAINE a besoin d'une vraie date reconnue par Excel et non d'un texte qui lui ressemble, sans quoi elle renvoie#VALEUR!. - 3En 2ᵉ argument : saisis le système de numérotation,
2. Avec cette valeur, la semaine commence le lundi et la semaine 1 est celle qui contient le 1er janvier, la convention du quotidien en France. Si tu l'omets, Excel retombe sur1et fait démarrer les semaines le dimanche. - 4Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas pour numéroter chaque vente.
=NO.SEMAINE(A2; 2)2. Le 1er janvier 2024 tombait un lundi, donc la semaine 1 court du 1er au 7 janvier et le 8 janvier ouvre la semaine 2. Recopiée vers le bas, la formule numérote chaque vente et tu peux ensuite regrouper ton tableau par semaine.Comment choisir le système de numérotation avec la fonction NO.SEMAINE
Ton client à Berlin te réclame la livraison « en semaine 1 » et vous n'êtes visiblement pas d'accord sur les dates. Ton planning liste les étapes de reprise de janvier 2021 avec leur date, et tu veux le numéro de semaine tel que lui le voit de son côté. La fonction NO.SEMAINE accepte un système de numérotation en deuxième argument, et c'est ce réglage qui met tout le monde sur le même calendrier.
- 1Dans une cellule, écris
=NO.SEMAINE(. - 2En 1er argument : clique sur la cellule qui porte la date à traiter,
A2. C'est la date de l'étape de chantier dont tu cherches le numéro de semaine. - 3En 2ᵉ argument : saisis le système de numérotation,
21. C'est la norme ISO 8601, où la semaine commence le lundi et où la semaine 1 est celle qui contient le premier jeudi de l'année. Les valeurs1(du dimanche au samedi) et2(du lundi au dimanche, avec la semaine 1 contenant le 1er janvier) sont les deux autres réglages que tu croiseras vraiment. - 4Ferme la parenthèse et appuie sur Entrée.
=NO.SEMAINE(A2; 21)21, la semaine 1 est celle qui contient le premier jeudi de l'année (le 7 janvier ici), donc le 1er janvier appartient encore à la semaine 53 de 2020. Avec le type 2, cette même date renvoie 1. C'est l'argument type_retour, et lui seul, qui fait basculer le résultat.Comment créer un identifiant semaine-année avec les fonctions NO.SEMAINE et TEXTE
Tu suis les dépenses d'un chantier depuis deux ans et ton tableau croisé mélange la semaine 6 de 2024 avec celle de 2025. Chaque ligne a une date et un montant, et tu veux une colonne d'identifiants uniques du type S06-2024 sur laquelle regrouper sans ambiguïté. La fonction NO.SEMAINE donne le numéro, et il ne reste qu'à l'habiller pour qu'il se range dans le bon ordre.
- 1Dans une cellule, écris
=puis le préfixe entre guillemets,"S", et relie-le à la suite avec l'esperluette&. CeSest ce qui rend l'identifiant lisible d'un coup d'œil dans un filtre. - 2Écris
TEXTE(juste après le&, puis :- aEn 1er argument : écris le calcul du numéro de semaine et referme-le,
NO.SEMAINE(B2; 2). La celluleB2porte la date de la dépense, et le2fait démarrer les semaines le lundi comme partout ailleurs dans ton classeur. - bEn 2ᵉ argument : saisis le masque d'affichage entre guillemets,
"00". Il force le numéro à tenir sur deux chiffres, sans quoi la semaine 6 s'écrit6et se classe après la semaine 12 dans un tri.
- aEn 1er argument : écris le calcul du numéro de semaine et referme-le,
- 3
- 4Ferme la parenthèse de la fonction ANNEE et appuie sur Entrée.
="S" & TEXTE(NO.SEMAINE(B2; 2); "00") & "-" & ANNEE(B2)6 pour le 05/02/2024, la fonction TEXTE l'écrit 06, et l'assemblage avec le « S » et l'année donne S06-2024. Ce format se trie correctement et reste unique d'une année sur l'autre (sans l'année, la semaine 6 de 2024 et celle de 2025 tomberaient dans le même groupe).Comment éviter une erreur #VALEUR! avec les fonctions NO.SEMAINE et SIERREUR
Le fichier de commandes tombe chaque matin par export, et une ligne sur dix contient une date que personne n'a saisie proprement. Tu veux quand même ta colonne de numéros de semaine, sans que des erreurs viennent casser le tri et les totaux en dessous. La fonction NO.SEMAINE ne sait traiter que de vraies dates, alors tu l'emballes dans la fonction SIERREUR pour qu'une ligne douteuse affiche un message plutôt qu'une erreur.
- 1Dans une cellule, écris
=SIERREUR(. - 2En 1er argument : écris le calcul que tu veux vraiment obtenir et referme-le,
NO.SEMAINE(B2; 2). Tant queB2contient une vraie date, c'est ce numéro de semaine qui s'affiche, avec des semaines qui démarrent le lundi grâce au2. - 3En 2ᵉ argument : saisis le texte de repli entre guillemets,
"Date à vérifier". Il ne s'affiche que si le premier calcul part en erreur, par exemple surà confirmerou sur01/22/2024qu'un classeur français lit comme du texte et non comme une date. - 4Ferme la parenthèse et appuie sur Entrée.
=SIERREUR(NO.SEMAINE(B2; 2); "Date à vérifier")2. Sur à confirmer ou sur 01/22/2024 (un format américain qu'un classeur français lit comme du texte), la fonction NO.SEMAINE renvoie l'erreur #VALEUR! et ton message prend sa place. Le reste de la colonne continue de se calculer normalement.
Les erreurs fréquentes avec la fonction NO.SEMAINE
#VALEUR! avec des dates en format texte
Quand une date est stockée en texte (fréquent après un import CSV ou une saisie manuelle), NO.SEMAINE ne peut pas la traiter et renvoie #VALEUR!. Excel affiche parfois un triangle vert dans le coin de la cellule pour indiquer ce problème.
Solution : Enveloppe ta date dans DATEVAL pour convertir le texte en date reconnue : =NO.SEMAINE(DATEVAL("15/03/2024"); 21). Si tu veux protéger la formule contre les cellules invalides, utilise =SIERREUR(NO.SEMAINE(A1; 21); "") pour afficher une cellule vide en cas d'erreur.
Incohérence entre deux formules utilisant des types différents
Si tu utilises type_retour 1 dans une formule et type_retour 21 dans une autre, les résultats ne correspondent plus. Le 1er janvier 2024 peut être la semaine 1 (type 1) ou la semaine 52 de 2023 (type 21 ISO). Cette incohérence passe souvent inaperçue.
Solution : Choisis un seul système et utilise-le partout dans ton classeur. Crée une cellule nommée TYPE_SEMAINE avec la valeur 21 et référence-la dans toutes tes formules : =NO.SEMAINE(A1; TYPE_SEMAINE). Si tu dois changer de système, tu ne modifies qu'une seule cellule.
Confusion avec SEMAINNUM dans des formules copiées
Dans certaines versions ou tutoriels en ligne, tu peux trouver SEMAINNUM à la place de NO.SEMAINE. Si tu copies cette formule dans Excel français, il renvoie #NOM? car le nom de la fonction est incorrect.
Solution : Dans Excel en français, utilise toujours NO.SEMAINE avec des points. Remplace tout SEMAINNUM par NO.SEMAINE. En anglais, la fonction s'appelle WEEKNUM.

NO.SEMAINE vs NO.SEMAINE.ISO vs JOURSEM
Ces trois fonctions traitent des données de calendrier hebdomadaire, mais elles ne renvoient pas la même information.
| Critère | NO.SEMAINE | NO.SEMAINE.ISO | JOURSEM |
|---|---|---|---|
| Retourne | N° de semaine (1-53) | N° de semaine ISO (1-53) | Jour de la semaine (1-7) |
| Systèmes de numérotation | 17 types différents | ISO 8601 uniquement | 3 types |
| Norme ISO 8601 | Oui, avec type 21 | Oui, par défaut | Non applicable |
| Flexibilité | Maximale | Fixe (ISO uniquement) | Limitée |
| Usage principal | Planning, reporting, multi-systèmes | Planning européen (syntaxe courte) | Filtrer par jour de semaine |

Astuces avancées avec NO.SEMAINE
Crée des identifiants semaine-année pour les analyses pluriannuelles
=NO.SEMAINE(A1; 21) & "-" & ANNEE(A1) génère un identifiant comme 15-2024. Ce format est indispensable dans les tableaux croisés dynamiques et les SOMME.SI sur des données qui s'étendent sur plusieurs années.
Sans l'année, la semaine 15 de 2024 et la semaine 15 de 2025 seraient confondues dans tes agrégations.
Protège tes formules avec SI.ERREUR sur les données saisies
Quand des utilisateurs peuvent saisir des valeurs dans une colonne date, certains entreront du texte. =SIERREUR(NO.SEMAINE(A1; 21); "") renvoie une cellule vide au lieu d'un #VALEUR! qui pollue tout le tableau.
Une cellule laissée vide est plus sournoise : elle ne déclenche aucune erreur, Excel la lit comme un 0 et sort un numéro de semaine que SI.ERREUR ne rattrape pas. Dans les tableaux remplis par plusieurs personnes, teste donc aussi le vide : =SI(A1=""; ""; SIERREUR(NO.SEMAINE(A1; 21); "")).
Combine avec SOMME.SI pour des totaux par semaine
Une fois les numéros de semaine en colonne C, =SOMME.SI(C:C; 15; B:B) additionne tous les montants de la semaine 15. Pour compter plutôt qu'additionner, utilise NB.SI de la même façon.
Cette technique est plus performante qu'un tableau croisé dynamique pour des dashboards qui doivent se recalculer en temps réel.
Questions fréquentes
Le type 1 considère que la semaine commence le dimanche (système américain), tandis que le type 2 considère qu'elle commence le lundi (système européen simple, où la semaine 1 est celle qui contient le 1er janvier). Le choix impacte directement les numéros obtenus pour les dates en début et fin d'année.
Utilise NO.SEMAINE avec le type_retour 21. Cette norme internationale définit que la semaine 1 est celle qui contient le premier jeudi de l'année et commence toujours un lundi. C'est la convention utilisée dans la plupart des pays européens et recommandée pour les projets internationaux.
Tu peux aussi utiliser NO.SEMAINE.ISO qui applique l'ISO 8601 par défaut, sans avoir à spécifier de type.
Les systèmes de numérotation varient selon la définition du premier jour de la semaine et de la première semaine de l'année. Une date au début janvier peut correspondre à la semaine 1 ou à la semaine 52 ou 53 selon le système utilisé. C'est pour ça qu'il est essentiel de choisir un seul type dans tout ton classeur et de rester cohérent.
Soustrais les deux numéros de semaine : =NO.SEMAINE(date_fin; 21) - NO.SEMAINE(date_début; 21). Utilise le même type pour les deux dates.
Attention : cette méthode ne fonctionne correctement que pour des dates dans la même année. Pour des périodes à cheval sur deux années, utilise plutôt une formule basée sur la différence de jours divisée par 7.
Non, NO.SEMAINE nécessite une date reconnue par Excel. Si tu as une date en texte comme "15/03/2024", utilise DATEVAL pour la convertir : =NO.SEMAINE(DATEVAL("15/03/2024"); 21). Sans cette conversion, tu obtiens une erreur #VALEUR!.
Pour aller plus loin
Continue sur ta lancée après la fonction NO.SEMAINE : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir




