Articles

Ostatni używany wiersz (ostatnia używana kolumna) w Excelu z formułą (bez VBA)

Posted on

Uzyskanie ostatniego wiersza danej kolumny w Excelu można łatwo zrobić za pomocą funkcji zdefiniowanej przez użytkownika w VBA:

lastRow.vb

Visual Basic

..

1
2
3
4
5

Funkcja LastRow(wsName As String, Optional columnToCheck As Long = 1) As Long
Dim ws As Worksheet
Set ws = Worksheets(wsName)
LastRow = ws.Cells(ws.Rows.Count, columnToCheck).End(xlUp).Row
End Function

Istnieją dwie inne formuły, które uzyskałyby ostatnio używaną komórkę w danym wierszu, w zależności od tego, czy jest to komórka numeryczna czy łańcuchowa:

Formuły.vb

Visual Basic

1
2

=IFERROR(MATCH(E1+99,A:A),0)
=IFERROR(MATCH(„zzz”, A:A),0)

Pierwszy z nich pobiera ostatnio używany wiersz numeryczny, a drugi zwraca ostatnio używany wiersz nienumeryczny. Dla ostatnio użytego wiersza numerycznego/nienumerycznego można użyć unii tych:

Wzór.vb

Visual Basic

1
=MAX(IFERROR(MATCH(E1+99,A:A),0),IFERROR(MATCH(„zzz”,A:A),0))

Jest jednak mały problem – gdy ostatnia komórka jest błędem, formuła MAX() zwraca nie ostatnią komórkę. W poniższym przykładzie zwraca 6, a nie 7 :

Więc, cztery ostateczne formuły, które zawsze działają dla ostatnich „rzeczy” są następujące:

Aby uzyskać wiersze/kolumny:

Ostatni wiersz kolumny A

LastRow.vb

Visual Basic

1
=IFERROR(LOOKUP(2,1/(NOT(ISBLANK(A:A)),ROW(A:A)),0)

Ostatnia kolumna pierwszego wiersza

LastColumn.vb

Visual Basic

1
=IFERROR(LOOKUP(2,1/(NOT(ISBLANK(1:1)),COLUMN(1:1)),0)

Aby uzyskać wartości

Wartość ostatniego wiersza kolumny A

LastUsedRow.vb

Visual Basic

1
=LOOKUP(2,1/(NOT(ISBLANK(A:A)),A:A)

Wartość ostatniej kolumny pierwszego wiersza

LastColumnValue.vb

Visual Basic

1
=LOOKUP(2,1/(NOT(ISBLANK(1:1))),1:1)

GitHub ostatnie rzeczy

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *