Articles

Última linha usada (última coluna usada) no Excel com Fórmula (sem VBA)

Posted on

A obtenção da última linha de uma dada coluna no Excel é facilmente feita com uma Função Definida pelo Utilizador em VBA:

lastRow.vb

div>
div>

/div>

div>

Visual Basic

1
2
3
4
5

Função LastRow(wsName As String, Coluna opcionalCheque As Long = 1) As Long
Dim ws As Worksheet
Set ws = Worksheets(wsName)
LastRow = ws.Células(ws.Fileiras.Count, columnToCheck).End(xlUp).Fila
Função Final

Há duas outras fórmulas, que obteriam a última célula usada numa dada fila, dependendo se é uma numérica ou string:

Fórmulas.vb

div>

div>

Visual Basic

1
2

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

A primeira recebe a última linha numérica usada e a segunda devolve a última linha não numérica usada. Para a última linha numérica/não-numérica usada, uma união destas poderia ser usada:

Fórmula.vb

div>

div>

Visual Basic

>

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

No entanto, existe um pequeno problema – quando a última célula é um erro, a fórmula MAX() devolve não a última. No exemplo abaixo, retorna 6 e não 7 :

Assim, as quatro fórmulas finais, que funcionam sempre para as últimas “coisas”, são as seguintes:

Para obter as linhas/colunas:

Última linha da coluna A

LastRow.vb

div>

Visual Basic

>

=IFERROR(LOOKUP(2,1/(NÃO(ISBLANK(A.):A))),ROW(A:A)),0)
1

Lasta Coluna da primeira linha

LastColumn.vb

div>

Visual Basic

>

=IFERROR(LOOKUP(2,1/(NÃO(ISBLANK(1:1)),COLUMN(1)):1)),0)
1

Para obter os valores

Último valor de linha da coluna A

LastUsedRow.vb

div>

/div>

div>
/div>

div>>/div>>>/div> Visual Basic

/div>

1
=LOOKUP(2,1/(NÃO(ISBLANK(A.):A))),A:A)

Valor da última coluna da primeira linha

LastColumnValue.vb

div>

/div>

div>
/div>

div>>/div>>>/div> Visual Basic

/div>

1
=LOOKUP(2,1/(NÃO(ISBLANK(1:1))),1:1)

GitHub last things

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *