Articles

Ultima riga usata (ultima colonna usata) in Excel con formula (senza VBA)

Posted on

Indicare l’ultima riga di una data colonna in Excel è facile con una funzione definita dall’utente in VBA:

lastRow.vb

Visual Basic

1
2
3
4
5

Function 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

Ci sono altre due formule, che otterrebbero l’ultima cella usata in una data riga, a seconda che sia numerica o stringa:

Formule.vb

Visual Basic

1
2

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

Il primo ottiene l’ultima riga numerica usata e il secondo restituisce l’ultima riga non numerica usata. Per l’ultima riga numerica/non numerica usata, si potrebbe usare un’unione di queste:

Formula.vb

Visual Basic

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

C’è però un piccolo problema – quando l’ultima cella è un errore, la formula MAX() ritorna non l’ultima. Nell’esempio qui sotto restituisce 6 e non 7 :

Quindi, le quattro formule definitive, che funzionano sempre per le ultime “cose” sono le seguenti:

Per ottenere le righe/colonne:

L’ultima riga della colonna A

LastRow.vb

Visual Basic

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

ultima colonna della prima riga

LastColumn.vb

Visual Basic

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

Per ottenere i valori

Valore ultima riga della colonna A

LastUsedRow.vb

Visual Basic

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

Valore dell’ultima colonna della prima riga

LastColumnValue.vb

Visual Basic

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

GitHub ultime cose

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *