
Formule générique
(=ROW(range)-ROW(range.firstcell)+1)
Sommaire
Pour obtenir un ensemble complet de numéros de ligne relatifs dans une plage, vous pouvez utiliser une formule matricielle basée sur la fonction ROW. Dans l'exemple illustré, la formule en B5: B11 est:
(=ROW(B5:B11)-ROW(B5)+1)
Remarque: il s'agit d'une formule matricielle qui doit être saisie avec Ctrl + Maj + Entrée. Si vous entrez cela sur la feuille de calcul (et non dans une autre formule), effectuez une sélection qui comprend plusieurs lignes, entrez la formule et confirmez avec Ctrl + Maj + Entrée.
Cette formule continuera à générer des nombres relatifs même lorsque la plage est déplacée. Cependant, ce n'est pas un bon choix si les lignes doivent être triées, supprimées ou ajoutées, car la formule matricielle empêchera les modifications. Les options de formule expliquées ici fonctionneront mieux.
Explication
La première fonction ROW génère un tableau de 7 nombres comme celui-ci:
(5;6;7;8;9;10;11)
La deuxième fonction ROW génère un tableau avec un seul élément comme celui-ci:
(5)
qui est ensuite soustrait du premier tableau pour donner:
(0;1;2;3;4;5;6)
Enfin, 1 est ajouté pour obtenir:
(1;2;3;4;5;6;7)
Version générique avec plage nommée
Avec une plage nommée, vous pouvez créer une version plus générique de la formule à l'aide de la fonction MIN ou de la fonction INDEX. Par exemple, avec la plage nommée "list", vous pouvez utiliser MIN comme ceci:
(ROW(list)-MIN(ROW(list))+1)
Avec INDEX, nous récupérons la première référence dans la plage nommée, et en utilisant ROW là-dessus:
(=ROW(list)-ROW(INDEX(list,1,1))+1)
Vous verrez souvent des formules de «ligne relative» comme celle-ci à l'intérieur de formules matricielles complexes qui nécessitent des numéros de ligne pour calculer un résultat.
Avec SEQUENCE
Avec la fonction SEQUENCE, la formule pour renvoyer des numéros de ligne relatifs pour une plage est simple:
=SEQUENCE(ROWS(range))
La fonction ROWS fournit le nombre de lignes, qui est renvoyé à la fonction SEQUENCE. SEQUENCE construit alors un tableau de nombres, commençant par le nombre 1. Donc, en suivant l'exemple original ci-dessus, la formule ci-dessous renvoie le même résultat:
=SEQUENCE(ROWS(B5:B11)) // returns (1;2;3;4;5;6;7)
Remarque: la formule SEQUENCE est une nouvelle fonction de tableau dynamique disponible uniquement dans Excel 365.