
Formuła ogólna
=ROW()-ROW(rng.firstcell)+1>ROWS(rng)-n
Podsumowanie
Aby oflagować ostatnie n wierszy w zakresie, możesz użyć kolumny pomocnika z formułą opartą na funkcjach WIERSZ i WIERSZE. W przedstawionym przykładzie formuła w komórce E5 skopiowana w dół to:
=ROW()-ROW(INDEX(data,1,1))+1>ROWS(data)-n
gdzie dane (B5: E15) i n (G5) to nazwane zakresy.
Ta formuła zwraca wartość TRUE, jeśli wiersz jest „ostatnim n wierszem”, lub FALSE, jeśli nie.
Wyjaśnienie
Podstawą tej formuły jest inna formuła, która oblicza „bieżący wiersz” w zakresie:
=ROW()-ROW(rng.firstcell)+1
W skrócie, otrzymujemy bieżący wiersz w skoroszycie, a następnie odejmujemy numer pierwszego wiersza zakresu plus 1. Wynikiem jest skorygowany numer wiersza, który zaczyna się od 1. Funkcja INDEKS jest po prostu jednym ze sposobów uzyskania pierwszej komórki w danym zasięg:
ROW(INDEX(data,1,1) // first cell
To jest tylko dla wygody. Formułę można przepisać tak, jak:
=ROW()-ROW($E$5)+1
Gdy mamy już aktualny numer wiersza, możemy porównać numer wiersza z całkowitą liczbą wierszy w danych pomniejszonych o n:
current_row > ROWS(data)-n
Jeśli to wyrażenie zwróci wartość TRUE, bieżący wiersz jest jednym z ostatnich n szukanych wierszy.
Ostatnie n wierszy w tabeli
Jeśli dane znajdują się w tabeli programu Excel, formułę można dostosować w następujący sposób:
=ROW()-@ROW(Table1)+1>ROWS(Table1)-n
Logika jest dokładnie taka sama, ale używamy nieco innego podejścia, aby uzyskać pierwszą komórkę w tabeli:
@ROW(Table1)
Możesz myśleć o znaku @ jako o „pojedynczym”:
=ROW(Table1) // returns (5;6;7;8;9;10;11;12;13;14;15) =@ROW(Table1) // returns (5)
Jak poprzednio, formuła tabeli zwraca TRUE w „ostatnich n wierszach” i FALSE w pozostałych.
Tylko ostatni rząd
Aby przetestować tylko ostatni wiersz, możesz użyć nieco uproszczonej wersji wzoru:
=ROW()-ROW(rng.first)+1=ROWS(rng)