NO.SEMAINE (WEEKNUM en anglais) est la fonction Excel pour obtenir le numéro de semaine d'une date dans l'année. Que tu gères un planning de production, suives des objectifs commerciaux hebdomadaires ou analyses des tendances saisonnières, tu vas l'utiliser constamment pour organiser tes données temporelles.
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 de la fonction NO.SEMAINE
=NO.SEMAINE(numéro_de_série; [type_retour])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.
Astuce : Pour la France et les échanges avec des partenaires européens, utilise toujours 21 (ISO 8601). Cette norme garantit que chaque semaine appartient entièrement à une seule année et commence toujours un lundi : tes collègues à Paris, Bruxelles ou Berlin parleront de la même semaine.
Pas envie d'écrire la formule NO.SEMAINE à la main ?
Génère-la avec notre IAExemples pratiques pas à pas
Responsable commercial : suivi hebdomadaire des ventes
Tu es responsable commercial et tu dois analyser les performances de ton équipe semaine par semaine. Tu as toutes les ventes dans un tableau avec leurs dates, et tu veux créer un rapport hebdomadaire automatique pour ton directeur.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Date vente | Commercial | Montant | N° Semaine |
| 2 | 08/01/2024 | Marie | 2 500 € | S02 |
| 3 | 15/01/2024 | Pierre | 3 200 € | S03 |
| 4 | 22/01/2024 | Sophie | 1 850 € | S04 |
| 5 | 29/01/2024 | Lucas | 4 100 € | S05 |
="S"&TEXTE(NO.SEMAINE(A2;21);"00")Ici, la formule extrait le numéro de semaine ISO, le formate sur deux chiffres et le préfixe d'un « S ». Le 08/01/2024 tombe en semaine 02 selon la norme ISO, ce qui donne « S02 ». Avec cette colonne, tu crées un tableau croisé dynamique en regroupant par numéro de semaine pour comparer les performances d'une semaine à l'autre.
Astuce de pro : Le formatage "00" dans TEXTE est important : il garantit que la semaine 2 s'affiche S02 et non S2, ce qui permet un tri alphabétique correct dans les tableaux croisés dynamiques.
Chef de projet : planning de sprint agile
Tu es chef de projet en méthodologie agile et tu planifies des sprints de deux semaines. Tu veux savoir automatiquement dans quelle semaine ISO chaque tâche doit être réalisée pour coordonner une équipe internationale.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Tâche | Date limite | Semaine ISO | Sprint |
| 2 | Maquette UI | 12/01/2024 | 2 | Sprint 1 |
| 3 | API Backend | 26/01/2024 | 4 | Sprint 2 |
| 4 | Tests E2E | 09/02/2024 | 6 | Sprint 3 |
| 5 | Mise en prod | 23/02/2024 | 8 | Sprint 4 |
=NO.SEMAINE(B2;21)La fonction extrait le numéro de semaine selon la norme ISO 8601. Avec le type 21, ton équipe à Paris, ton développeur à Montréal et ton client à Bruxelles parlent tous de la même semaine. Le 12/01/2024 tombe en semaine 2 selon l'ISO.
Responsable RH : gestion des congés par période
Tu travailles aux ressources humaines et tu dois analyser les demandes de congés pour identifier les semaines où tu risques d'avoir trop d'absences simultanées.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Employé | Début congé | Fin congé | Semaine début |
| 2 | Martin | 05/02/2024 | 09/02/2024 | S06-2024 |
| 3 | Léa | 12/02/2024 | 16/02/2024 | S07-2024 |
| 4 | Thomas | 05/02/2024 | 23/02/2024 | S06-2024 |
| 5 | Emma | 26/02/2024 | 01/03/2024 | S09-2024 |
="S"&TEXTE(NO.SEMAINE(B2;21);"00")&"-"&ANNEE(B2)Ici, la formule assemble le numéro de semaine ISO et l'année pour créer un identifiant unique comme « S06-2024 ». Ce format est indispensable sur plusieurs années (sans l'année, la semaine 6 de 2024 et celle de 2025 seraient confondues). Tu vois immédiatement que Martin et Thomas partent tous les deux la semaine S06-2024.
Contrôleur de gestion : reporting budgétaire hebdomadaire
Tu es contrôleur de gestion et tu dois comparer les dépenses réelles de chaque semaine avec le budget prévisionnel. Tu veux regrouper automatiquement les dépenses par semaine.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Date dépense | Montant | Semaine | Budget semaine | Statut |
| 2 | 08/01/2024 | 1 200 € | 2 | 1 500 € | OK |
| 3 | 15/01/2024 | 1 850 € | 3 | 1 500 € | Dépassement |
| 4 | 22/01/2024 | 1 100 € | 4 | 1 500 € | OK |
| 5 | 29/01/2024 | 2 200 € | 5 | 1 500 € | Dépassement |
=NO.SEMAINE(A2;21)La fonction extrait le numéro de semaine de chaque dépense. Tu combines ensuite ce numéro avec SOMME.SI pour totaliser chaque semaine, ce qui te donne un tableau de bord budgétaire qui se met à jour dès qu'une nouvelle dépense est saisie.
Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes 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 =SI.ERREUR(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 ou laisseront la cellule vide. =SI.ERREUR(NO.SEMAINE(A1; 21); "") renvoie une cellule vide au lieu d'un #VALEUR! qui pollue tout le tableau.
Ajoute ce SI.ERREUR systématiquement dans les tableaux remplis par plusieurs personnes.
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 sur la fonction NO.SEMAINE
Quelle est la différence entre type_retour 1 et 2 dans NO.SEMAINE ?
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.
Comment obtenir le numéro de semaine selon la norme ISO 8601 ?
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.
Pourquoi NO.SEMAINE retourne des valeurs différentes pour la même date selon le 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.
Comment calculer le nombre de semaines entre deux dates ?
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.
NO.SEMAINE fonctionne-t-elle avec des dates en format texte ?
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
Les fonctions similaires : NO.SEMAINE.ISO, JOURSEM, ANNEE, MOIS, AUJOURDHUI
Bloqué sur une formule Excel ?
Pose ta question à notre assistant Excel IA, il te sort la bonne formule en quelques secondes.
Essayer l'assistant IAGratuit · 10 questions par mois

