LIGNE (ROW en anglais) est une de ces fonctions qui paraissent basiques au premier abord, mais qui deviennent indispensables une fois que tu en maîtrises les subtilités. Elle retourne le numéro de ligne d'une référence donnée, ou simplement le numéro de la ligne où se trouve la formule. Simple en apparence, incroyablement polyvalente dans la pratique.
Concrètement, c'est elle qui te permet de numéroter automatiquement tes listes de tâches sans jamais renuméroter à la main, de générer des références de vente au format "VTE-001" qui s'incrémentent toutes seules, de colorer une ligne sur deux dans un rapport financier avec la mise en forme conditionnelle, ou encore de créer des formules conditionnelles qui s'adaptent automatiquement à leur position dans la feuille.
Syntaxe de la fonction LIGNE
=LIGNE([référence])Comprendre chaque paramètre de la fonction LIGNE
référence
: c'est la cellule ou la plage dont tu veux connaître le numéro de ligne(facultatif)Ça peut être une référence simple comme A5 (retourne 5), une plage comme B10:D15 (retourne 10, la première ligne de la plage), une référence nommée, ou totalement omis.
Si tu omets cet argument, LIGNE() retourne le numéro de la ligne où se trouve la formule elle-même. Si ta formule est en C7, =LIGNE() retournera 7. C'est cette version sans argument qui est la plus utilisée pour créer des numérotations automatiques et des formules dynamiques.
Quand tu passes une plage comme A5:A10, LIGNE retourne le numéro de la première ligne (5). Mais dans une formule matricielle, LIGNE(A5:A10) génère un tableau {5;6;7;8;9;10} avec tous les numéros de ligne de la plage. Dans Excel 365, ce tableau déborde automatiquement sur plusieurs cellules.
Astuce : Utilise LIGNE() sans argument dans tes formules de numérotation automatique. Quand tu insères ou supprimes des lignes, la numérotation se met à jour automatiquement. C'est bien plus robuste que de taper 1, 2, 3 manuellement ou d'utiliser la poignée de recopie incrémentée.
Pas envie d'écrire la formule LIGNE à la main ?
Génère-la avec notre IAExemples pratiques pas à pas
Chef de projet : numéroter automatiquement les tâches
Tu es chef de projet et tu gères une liste de tâches dans Excel. Tu veux que chaque tâche ait un numéro unique qui se met à jour automatiquement quand tu réorganises la liste, ajoutes de nouvelles tâches ou supprimes des tâches terminées. Fini la renumérotation manuelle après chaque changement.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | N° | Tâche | Responsable | Statut |
| 2 | 1 | Définir le cahier des charges | Marie | Terminé |
| 3 | 2 | Créer les maquettes UX/UI | Pierre | En cours |
| 4 | 3 | Développer le prototype | Sophie | À faire |
| 5 | 4 | Tests utilisateurs | Lucas | À faire |
| 6 | 5 | Déploiement production | Marie | À faire |
=LIGNE()-1La formule prend le numéro de la ligne courante et lui retire 1 pour compenser l'en-tête de la ligne 1 : en A2, elle affiche donc 1. Copiée vers le bas, elle s'incrémente toute seule (2, 3, 4...), et si tu supprimes une tâche, les numéros suivants se réajustent pour rester consécutifs.
Astuce de pro : Préfère =LIGNE() sans argument plutôt que =LIGNE(A1) avec référence : les deux donnent le même résultat quand tu copies vers le bas, mais la version sans argument est plus robuste car elle ne dépend d'aucune cellule. Si tu coupes et colles la formule ailleurs dans la feuille, =LIGNE()-1 continue de fonctionner correctement, là où =LIGNE(A1) peut se décaler de façon inattendue.
Analyste commercial : créer des références de vente dynamiques
Tu es analyste commercial et tu veux générer automatiquement des références de vente au format "VTE-2026-001", "VTE-2026-002", etc. Le numéro doit s'incrémenter automatiquement sans saisie manuelle, et l'année doit se mettre à jour chaque année.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Référence | Client | Montant | Date |
| 2 | VTE-2026-001 | Entreprise ABC | 2 500 € | 15/01/2026 |
| 3 | VTE-2026-002 | Société XYZ | 1 800 € | 16/01/2026 |
| 4 | VTE-2026-003 | Client Pro | 3 200 € | 17/01/2026 |
| 5 | VTE-2026-004 | Startup Tech | 950 € | 18/01/2026 |
="VTE-"&ANNEE(AUJOURDHUI())&"-"&TEXTE(LIGNE()-1;"000")La formule assemble trois morceaux : le préfixe « VTE- », l'année en cours tirée d'AUJOURDHUI, puis le numéro de ligne moins 1 mis en forme par TEXTE sur trois chiffres (001 plutôt que 1), d'où « VTE-2026-001 ». L'année se met à jour seule au changement de millésime, et chaque nouvelle ligne génère sa référence.
Contrôleur financier : mise en forme de lignes alternées
Tu es contrôleur financier et tu veux améliorer la lisibilité de tes rapports en colorant automatiquement une ligne sur deux. Au lieu de le faire manuellement et de tout recommencer quand tu ajoutes des lignes, tu utilises LIGNE avec la mise en forme conditionnelle pour un résultat dynamique et professionnel.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Mois | Revenus | Dépenses | Résultat | Marge % |
| 2 | Janvier | 45 000 € | 32 000 € | 13 000 € | 28,9% |
| 3 | Février | 52 000 € | 35 000 € | 17 000 € | 32,7% |
| 4 | Mars | 48 000 € | 33 500 € | 14 500 € | 30,2% |
| 5 | Avril | 61 000 € | 38 000 € | 23 000 € | 37,7% |
=MOD(LIGNE();2)=0La formule prend le reste de la division du numéro de ligne par 2 : il vaut 0 sur les lignes paires et 1 sur les impaires. Le test renvoie donc VRAI une ligne sur deux, et la mise en forme conditionnelle applique le fond coloré uniquement à ces lignes-là.
Responsable RH : formules dynamiques basées sur la position
Tu travailles aux ressources humaines et tu gères un tableau de présence où tu veux calculer automatiquement les heures supplémentaires uniquement pour les employés à temps plein (lignes 2 à 10), mais pas pour les stagiaires (lignes 11 et suivantes). LIGNE te permet de créer des formules qui s'adaptent automatiquement selon la position.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Employé | Type | Heures travaillées | Heures sup | Prime |
| 2 | Marie Dupont | Temps plein | 42h | 2h | 60 € |
| 3 | Pierre Martin | Temps plein | 38h | 0h | 0 € |
| 4 | Sophie Bernard | Temps plein | 45h | 5h | 150 € |
| 5 | Lucas Dubois | Stagiaire | 35h | - | - |
=SI(LIGNE()<=10;MAX(0;C2-35)*30;"-")La formule teste d'abord la position de la ligne : jusqu'à la ligne 10 (les temps plein), elle calcule la prime sur les heures au-delà de 35 h, à 30 € l'heure, avec un plancher à zéro pour éviter le négatif. Ici, 2 heures supplémentaires donnent 60 €. Au-delà de la ligne 10 (les stagiaires), elle affiche simplement « - ».
Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes erreurs fréquentes avec la fonction LIGNE
Le truc à garder en tête : LIGNE() te dit à quelle ligne physique de la feuille elle est posée, pas dans quel ordre tu voudrais qu'elle compte. C'est de là que viennent les ratés classiques : une numérotation qui démarre à 2 quand tu oublies l'offset d'en-tête, un =LIGNE($A$1) resté figé à 1 en recopie, un tableau Ctrl+T commençant en ligne 10 qui numérote à partir de 10, et un tri qui te ressort un vilain 1, 3, 2.
Oublier d'ajuster pour les lignes d'en-tête
Si tu utilises =LIGNE() directement en ligne 2 (première ligne de données après l'en-tête), ta numérotation commencera à 2 au lieu de 1. Beaucoup de débutants se trompent ici et se retrouvent avec une numérotation décalée selon leur structure.
Solution : Soustrais le nombre de lignes d'en-tête. Si tes données commencent en ligne 2, utilise =LIGNE()-1. Si elles commencent en ligne 3 (deux lignes d'en-tête), utilise =LIGNE()-2. Si tu as plusieurs lignes avant tes données, compte-les toutes et soustrais ce nombre.
Confusion entre LIGNE et LIGNES
LIGNE au singulier te donne le numéro d'une ligne (5 pour A5). LIGNES au pluriel compte combien de lignes il y a dans une plage (6 pour A5:A10, car il y a 6 lignes de la ligne 5 à la ligne 10). Les débutants mélangent souvent les deux et obtiennent des résultats inattendus.
Solution : Mémorise cette distinction simple : LIGNE = position (où ?), LIGNES = quantité (combien ?). Tu veux savoir à quelle ligne tu es ? LIGNE. Tu veux savoir combien de lignes contient une plage ? LIGNES.
Références absolues qui cassent l'auto-incrémentation
Si tu utilises =LIGNE($A$1) avec une référence absolue (symboles $) et que tu copies la formule vers le bas, tu obtiendras toujours 1. La référence ne s'ajuste pas lors de la copie, donc le résultat reste figé. Ta numérotation affiche alors 1, 1, 1, 1... au lieu de 1, 2, 3, 4...
Solution : Pour une numérotation automatique, n'utilise PAS de $ (références absolues). Écris =LIGNE(A1) sans symboles dollar pour que la référence s'ajuste, ou mieux encore, =LIGNE()-1 qui ne nécessite aucune référence de cellule et fonctionne toujours.
Problème avec les tableaux structurés (Ctrl+T)
Dans un tableau Excel structuré (créé avec Ctrl+T ou Insertion > Tableau), LIGNE() retourne toujours la ligne absolue de la feuille, pas la position relative dans le tableau. Si ton tableau commence en ligne 10, la première donnée sera numérotée 10 au lieu de 1.
Solution : Dans un tableau structuré, ajuste manuellement : =LIGNE()-9 si ton tableau commence en ligne 10. Ou utilise une approche plus robuste avec =LIGNE()-LIGNE(Tableau1[#En-têtes]) qui s'adapte automatiquement à la position du tableau.
Formules qui ne se mettent pas à jour après tri
Quand tu tries tes données, les formules LIGNE() ne se déplacent pas avec les lignes. Résultat : ta numérotation devient 1, 3, 2, 5, 4 au lieu de rester 1, 2, 3, 4, 5. C'est normal car LIGNE() reflète la position physique dans la feuille, pas un ordre logique.
Solution : Si tu dois trier souvent, convertis tes formules en valeurs (Copier > Collage spécial > Valeurs) avant de trier, puis recalcule-les après. Ou utilise une colonne d'ID fixe créée une fois pour toutes au lieu de formules LIGNE() dynamiques. Si tu veux une numérotation qui s'ajuste aux filtres et reste 1, 2, 3 après filtrage, préfère =SOUS.TOTAL(103;$A$2:A2) pour compter uniquement les lignes visibles.
LIGNE vs COLONNE vs LIGNES vs COLONNES
Pose-toi la question : tu veux savoir *où* tu es ou *combien* tu en as ? LIGNE te donne une position (5 sur A5), LIGNES te donne un décompte (6 sur A5:A10) — et la même logique sépare COLONNE de COLONNES. Garde LIGNE pour numéroter ou bâtir une formule qui s'adapte à sa position : elle s'appelle sans argument pour pointer la ligne courante et déroule tout un tableau de numéros en matriciel, là où LIGNES et COLONNES exigent un argument et ne rendent qu'un seul nombre.
| Critère | LIGNE | COLONNE | LIGNES | COLONNES |
|---|---|---|---|---|
| Ce qu'elle retourne | Numéro de ligne (position) | Numéro de colonne (position) | Nombre de lignes (quantité) | Nombre de colonnes (quantité) |
| Exemple A5 | 5 | 1 (colonne A = 1) | 1 (une seule ligne) | 1 (une seule colonne) |
| Exemple A5:C10 | 5 (première ligne) | 1 (première colonne : A) | 6 (six lignes : 5 à 10) | 3 (trois colonnes : A à C) |
| Sans argument | ✅ Oui (ligne actuelle) | ✅ Oui (colonne actuelle) | ❌ Argument obligatoire | ❌ Argument obligatoire |
| Formule matricielle | ✅ Génère tableau de positions | ✅ Génère tableau de positions | ❌ Retourne un seul nombre | ❌ Retourne un seul nombre |
| Usage typique | Numérotation auto, formules dynamiques | Numérotation horizontale, INDEX | Compter lignes, dimensionner plages | Compter colonnes, dimensionner plages |
Astuces avancées avec LIGNE
Numérotation continue même après filtrage
=LIGNE()-1 numérote les lignes automatiquement, mais saute des numéros quand des lignes sont filtrées. Pour garder une séquence 1, 2, 3 sur les seules lignes visibles, utilise =SOUS.TOTAL(103;$A$2:A2) à la place. SOUS.TOTAL ignore les lignes masquées par un filtre.
La numérotation reste propre même après avoir filtré la moitié du tableau.
Lignes alternées colorées avec la mise en forme conditionnelle
Dans la mise en forme conditionnelle (Accueil > Nouvelle règle > Utiliser une formule), saisis =MOD(LIGNE();2)=0 pour colorer les lignes paires. Pour colorer les impaires, utilise =MOD(LIGNE();2)=1. Pour un motif une ligne sur trois, passe à =MOD(LIGNE();3)=0.
Le zébrage s'adapte automatiquement quand tu ajoutes ou supprimes des lignes.
Formules conditionnelles basées sur la position
=SI(LIGNE()<=10;"Budget prévisionnel";"Budget réalisé") change automatiquement de catégorie selon la ligne. Tu peux aussi afficher "Total" toutes les 3 lignes : =SI(MOD(LIGNE();3)=0;"Total";"Donnée").
Il suffit de copier la formule vers le bas : elle s'adapte à sa position sans aucune saisie manuelle.
Numérotation robuste sans référence de cellule
Préfère =LIGNE() sans argument plutôt que =LIGNE(A1). Les deux donnent le même résultat en tirant vers le bas, mais la version sans argument ne dépend d'aucune cellule : si tu coupes et colles la formule ailleurs, =LIGNE()-1 continue de fonctionner, là où =LIGNE(A1) peut se décaler.
Moins fragile, donc plus sûre dans les tableaux qu'on réorganise souvent.
Questions fréquentes sur la fonction LIGNE
Quelle est la différence entre LIGNE et LIGNES ?
LIGNE retourne le numéro de ligne d'une référence (par exemple, 5 pour la cellule A5), tandis que LIGNES compte le nombre de lignes dans une plage. Si tu utilises =LIGNE(A5:A10), tu obtiens 5 (le numéro de la première ligne). Avec =LIGNES(A5:A10), tu obtiens 6 (car il y a 6 lignes dans cette plage).
Comment utiliser LIGNE pour créer une numérotation automatique ?
La technique la plus simple est =LIGNE()-1 si tes données commencent en ligne 2, ou =LIGNE(A1) si tu veux une numérotation qui commence à 1. Quand tu copies la formule vers le bas, elle s'ajuste automatiquement : 1, 2, 3, 4... L'avantage ? Si tu insères ou supprimes des lignes, la numérotation se met à jour toute seule.
Pourquoi utiliser LIGNE() sans argument plutôt qu'avec ?
LIGNE() sans argument retourne le numéro de la ligne où se trouve la formule. C'est très pratique pour créer des formules dynamiques qui s'adaptent automatiquement quand tu les copies ailleurs. Pas besoin de modifier la formule manuellement. Par contre, LIGNE(A5) retournera toujours 5, peu importe où tu copies la formule.
Peut-on utiliser LIGNE pour colorer une ligne sur deux ?
Absolument ! Utilise la mise en forme conditionnelle avec =MOD(LIGNE();2)=0 pour les lignes paires ou =MOD(LIGNE();2)=1 pour les lignes impaires. Cette formule vérifie si le numéro de ligne est divisible par 2. Résultat : un beau tableau avec des lignes alternées qui améliore considérablement la lisibilité.
LIGNE fonctionne-t-elle dans les formules matricielles et Excel 365 ?
Oui, et c'est là qu'elle devient vraiment puissante ! Dans Excel 365, =LIGNE(A1:A10) génère un tableau dynamique {1;2;3;4;5;6;7;8;9;10} qui déborde automatiquement. Tu peux l'utiliser dans des calculs complexes comme =AUJOURDHUI()+LIGNE(1:7) pour créer les 7 prochains jours. Dans les versions antérieures, valide avec Ctrl+Maj+Entrée.
Pour aller plus loin
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

