Formule Excel: n dernières lignes -

Table des matières

Formule générique

=ROW()-ROW(rng.firstcell)+1>ROWS(rng)-n

Sommaire

Pour marquer les n dernières lignes d'une plage, vous pouvez utiliser la colonne d'assistance avec une formule basée sur les fonctions ROW et ROWS. Dans l'exemple illustré, la formule de la cellule E5, copiée vers le bas, est:

=ROW()-ROW(INDEX(data,1,1))+1>ROWS(data)-n

data (B5: E15) et n (G5) sont des plages nommées.

Cette formule renvoie VRAI si une ligne est une «dernière ligne n» et FAUX dans le cas contraire.

Explication

Le cœur de cette formule est basé sur une autre formule qui calcule la "ligne actuelle" dans une plage:

=ROW()-ROW(rng.firstcell)+1

En bref, nous obtenons la ligne actuelle dans le classeur, puis soustrayons le premier numéro de ligne de la plage plus 1. Le résultat est un numéro de ligne ajusté qui commence à 1. La fonction INDEX est simplement un moyen d'obtenir la première cellule dans une donnée donnée gamme:

ROW(INDEX(data,1,1) // first cell

Ceci est uniquement pour des raisons de commodité. La formule pourrait être réécrite comme:

=ROW()-ROW($E$5)+1

Une fois que nous avons un numéro de ligne actuel, nous pouvons comparer le numéro de ligne au nombre total de lignes dans les données moins n:

current_row > ROWS(data)-n

Si cette expression renvoie TRUE, la ligne courante est l'une des n dernières lignes que nous recherchons.

Les n dernières lignes d'un tableau

Si les données sont dans un tableau Excel, la formule peut être adaptée comme ceci:

=ROW()-@ROW(Table1)+1>ROWS(Table1)-n

La logique est exactement la même, mais nous utilisons une approche légèrement différente pour obtenir la première cellule du tableau:

@ROW(Table1)

Vous pouvez considérer le caractère @ comme indiquant "unique":

=ROW(Table1) // returns (5;6;7;8;9;10;11;12;13;14;15) =@ROW(Table1) // returns (5)

Comme précédemment, la formule du tableau renvoie VRAI dans les "n dernières lignes" et FAUX dans les autres.

Dernière ligne seulement

Pour tester uniquement la dernière ligne, vous pouvez utiliser une version légèrement simplifiée de la formule:

=ROW()-ROW(rng.first)+1=ROWS(rng)

Articles intéressants...