![](https://cdn.wiki-base.com/2746021/excel_formula_last_n_rows__2.png.webp)
Обща формула
=ROW()-ROW(rng.firstcell)+1>ROWS(rng)-n
Обобщение
За да маркирате последните n реда в диапазон, можете да използвате помощна колона с формула, базирана на функциите ROW и ROWS. В показания пример формулата в клетка E5, копирана надолу, е:
=ROW()-ROW(INDEX(data,1,1))+1>ROWS(data)-n
където данните (B5: E15) и n (G5) са именувани диапазони.
Тази формула връща TRUE, ако редът е "последен n ред", и FALSE, ако не.
Обяснение
Ядрото на тази формула се основава на друга формула, която изчислява "текущия ред" в диапазон:
=ROW()-ROW(rng.firstcell)+1
Накратко, получаваме текущия ред в работната книга, след което изваждаме номера на първия ред от диапазона плюс 1. Резултатът е коригиран номер на ред, който започва с 1. Функцията INDEX е просто начин за получаване на първата клетка в дадена обхват:
ROW(INDEX(data,1,1) // first cell
Това е само за удобство. Формулата може да бъде пренаписана като:
=ROW()-ROW($E$5)+1
След като имаме номер на текущ ред, можем да сравним номера на реда с общия брой редове в данните, намалени с n:
current_row > ROWS(data)-n
Ако този израз връща TRUE, текущият ред е един от последните n реда, които търсим.
Последните n реда в таблица
Ако данните са в таблица на Excel, формулата може да се адаптира по следния начин:
=ROW()-@ROW(Table1)+1>ROWS(Table1)-n
Логиката е абсолютно същата, но ние използваме малко по-различен подход, за да получим първата клетка в таблицата:
@ROW(Table1)
Можете да мислите за символа @ като за означаване на „единичен“:
=ROW(Table1) // returns (5;6;7;8;9;10;11;12;13;14;15) =@ROW(Table1) // returns (5)
Както и преди, формулата на таблицата връща TRUE в "последните n реда" и FALSE в други.
Само последен ред
За да тествате само за последния ред, можете да използвате малко опростена версия на формулата:
=ROW()-ROW(rng.first)+1=ROWS(rng)