Como encontrar o primeiro ou último número positivo ou negativo no Excel?
Ao trabalhar com uma coluna de números que inclui valores positivos e negativos, é frequente precisar de identificar rapidamente o primeiro ou último número positivo ou negativo num determinado intervalo. Esta necessidade surge especialmente em contextos de análise de dados, deteção de tendências ou localização de pontos de entrada específicos em conjuntos de dados extensos. A inspeção manual, sobretudo em grandes volumes de informação, revela-se ineficiente e suscetível a erros. Felizmente, o Excel oferece diversos métodos práticos para agilizar esta tarefa, permitindo-lhe obter exatamente os valores pretendidos através de fórmulas ou automação. A seguir, apresentamos várias soluções adaptadas a diferentes cenários, incluindo abordagens avançadas ideais para operações repetitivas ou em larga escala.
Encontrar o primeiro número positivo / negativo com fórmula matricial
Encontrar o último número positivo / negativo com fórmula matricial
Macro VBA para encontrar o primeiro / último número positivo / negativo
Encontrar o primeiro número positivo / negativo com fórmula matricial
Para extrair o primeiro número positivo ou negativo de uma série de valores, pode utilizar fórmulas matriciais do Excel. Este método é ideal para utilizadores que precisam de uma solução rápida para intervalos moderados e que se sintam à vontade com fórmulas, especialmente em ambientes onde add-ins ou macros adicionais sejam restritos. A abordagem matricial atualiza-se automaticamente sempre que os seus dados de origem forem alterados, tornando-a perfeita para listas dinâmicas. Eis como a pode implementar:
1. Selecione uma célula vazia e introduza a seguinte fórmula matricial para obter o primeiro número positivo:
=INDEX(A2:A18,MATCH(TRUE,A2:A18>0,0)) Aqui, A2:A18 refere-se à lista de dados que pretende pesquisar. Esta fórmula localiza a primeira célula no intervalo com um valor superior a 0 e devolve o respetivo conteúdo. Veja a seguinte captura de ecrã:

2. Após digitar a fórmula, prima simultaneamente Ctrl + Shift + Enter, em vez de premir apenas Enter. Desta forma, a fórmula matricial será executada corretamente e devolverá o primeiro número positivo da sua lista, conforme ilustrado no exemplo abaixo:

Dica:Para obter o primeiro número negativo, utilize simplesmente esta fórmula (lembre-se de premir)Ctrl + Shift + Enterapós a introduzir):
=INDEX(A2:A18,MATCH(TRUE,A2:A18<0,0)) Em ambas as fórmulas, basta alterar a condição ()>0 para números positivos ou <0 para negativos) para direcionar exatamente o tipo de número que pretende. Tenha em atenção que as fórmulas matriciais não suportam referências a células vazias; por isso, certifique-se de que o seu intervalo de dados não inclui células em branco, garantindo assim resultados consistentes. Caso todos os números sejam exclusivamente positivos ou negativos, a fórmula poderá devolver um erro — nesse caso, considere envolver a fórmula na função SEERRO para suprimir erros e apresentar uma mensagem personalizada.
Nota: Nas versões recentes do Excel (Office 365 e Excel 2021 e posteriores), já não é necessário utilizar Ctrl + Shift + Enter; basta premir Enter, graças ao suporte de matrizes dinâmicas.
Encontrar o último número positivo / negativo com fórmula matricial
Se o seu objetivo for identificar o último valor positivo ou negativo numa coluna, pode utilizar uma fórmula matricial alternativa. Esta abordagem é ideal para analisar rapidamente tendências recentes ou localizar o ponto de dados mais recente de um tipo especificado. Note que este método atualiza-se dinamicamente com as alterações nos dados, uma vantagem especialmente valiosa quando adiciona regularmente novos números à lista.
1. Selecione uma célula vazia junto à sua coluna de dados e introduza esta fórmula matricial para encontrar o último número positivo:
=LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 >0, $A$2:$A$18)) Esta fórmula funciona aproveitando o comportamento da função PROCV, que devolve a última correspondência numérica encontrada para um número extremamente elevado. Aqui, SE($A$2:$A$18 >0; $A$2:$A$18) filtra apenas os números positivos e PROCV devolve então a última ocorrência. Veja isto ilustrado abaixo:

2. Confirme a fórmula premindo Ctrl + Shift + Enter (exceto se a sua versão do Excel suportar matrizes dinâmicas). O resultado mostrará o último valor positivo presente no intervalo limitado, conforme demonstrado abaixo:

Para devolver o último número negativo, utilize em alternativa a seguinte fórmula matricial, também com Ctrl + Shift + Enter:
=LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 <0, $A$2:$A$18)) Se não for encontrado nenhum valor positivo ou negativo, a fórmula devolverá um erro ()#N/D). Para lidar com estes casos de forma elegante, envolva a fórmula na função SEERRO. Por exemplo:
=IFERROR(LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 >0, $A$2:$A$18)), "No match found") É essencial evitar células mescladas ou formatos combinados de texto e número no seu intervalo, pois podem comprometer os resultados do cálculo da fórmula. Verifique sempre a integridade dos seus dados antes de aplicar estes métodos para garantir a máxima precisão.
Macro VBA para encontrar o primeiro / último número positivo / negativo
Se precisar frequentemente de localizar o primeiro ou último número positivo ou negativo em múltiplos intervalos ou em conjuntos de dados extensos, automatizar essa tarefa com uma macro VBA pode poupar-lhe tempo valioso e minimizar erros manuais. Esta solução permite-lhe selecionar um intervalo e obter imediatamente o valor pretendido — ideal para processamento em lote ou tarefas analíticas repetitivas. A abordagem VBA revela-se especialmente útil em cenários que envolvam critérios complexos ou fluxos de trabalho personalizados, embora requeira alguma familiaridade básica com as ferramentas do programador do Excel.
1. Clique em Programador > Visual Basic para abrir a janela do Microsoft Visual Basic para Aplicações. Em seguida, no editor VBA, clique em Inserir > Módulo e copie o seguinte código para o novo módulo:
Sub FindFirstOrLastPosNegNumber()
Dim rng As Range
Dim cell As Range
Dim result As Variant
Dim firstPos As Variant, firstNeg As Variant
Dim lastPos As Variant, lastNeg As Variant
Dim selType As String
On Error Resume Next
Set rng = Application.InputBox("Select the data range", "KutoolsforExcel", Selection.Address, Type:=8)
If rng Is Nothing Then Exit Sub
selType = Application.InputBox("Type 'FirstPos' for first positive, 'FirstNeg' for first negative, 'LastPos' for last positive, or 'LastNeg' for last negative:", "KutoolsforExcel", "FirstPos", Type:=2)
If selType = "" Then Exit Sub
firstPos = Empty
firstNeg = Empty
lastPos = Empty
lastNeg = Empty
' Find first positive and first negative
For Each cell In rng
If IsNumeric(cell.Value) Then
If firstPos = Empty And cell.Value > 0 Then
firstPos = cell.Value
End If
If firstNeg = Empty And cell.Value < 0 Then
firstNeg = cell.Value
End If
If cell.Value > 0 Then
lastPos = cell.Value
End If
If cell.Value < 0 Then
lastNeg = cell.Value
End If
End If
Next cell
Select Case UCase(selType)
Case "FIRSTPOS"
result = firstPos
Case "FIRSTNEG"
result = firstNeg
Case "LASTPOS"
result = lastPos
Case "LASTNEG"
result = lastNeg
Case Else
result = "Invalid input"
End Select
If IsEmpty(result) Then
MsgBox "No matching value found in the selected range.", vbInformation, "KutoolsforExcel"
Else
MsgBox "Result: " & result, vbInformation, "KutoolsforExcel"
End If
End Sub 2. Para executar a macro, prima F5(ou clique no botão)
Executar) e siga os passos seguintes:
- Uma caixa de diálogo irá solicitar que selecione o seu intervalo numérico (por exemplo, A2:A18).
- De seguida, introduza o seu Tipo de Pesquisa: escreva FirstPos para o primeiro número positivo, FirstNeg para o primeiro número negativo, LastPos para o último número positivo ou LastNeg para o último número negativo (não diferencia maiúsculas de minúsculas).
- Após introduzir a sua opção e confirmar, o resultado será apresentado numa caixa de mensagem.
Dicas:
- Esta macro processa qualquer intervalo numérico contíguo selecionado pelo utilizador, oferecendo flexibilidade na disposição dos dados.
- Se o tipo especificado não corresponder a nenhum número no intervalo, receberá uma notificação em vez de um erro.
- Certifique-se de que as macros estão ativadas no seu Excel para garantir o correto funcionamento do código VBA.
- Se os seus dados incluírem valores não numéricos, a macro irá ignorá-los automaticamente durante o processamento.
Resolução de problemas e sugestões: Em todas as soluções, certifique-se sempre de que a sua seleção abrange exatamente o intervalo pretendido e não inclui cabeçalhos. Se utilizar intervalos extensos, considere limitar o seu tamanho para evitar atrasos no cálculo ou na performance, especialmente ao usar fórmulas matriciais ou macros.
Se realizar frequentemente esta tarefa ou desejar maior personalização, considere combinar vários critérios na sua macro ou criar um botão dedicado para facilitar o acesso. Guarde sempre o seu trabalho antes de experimentar novos scripts VBA e teste-os em cópias de segurança, especialmente se for novo na programação.
Artigos relacionados:
Como encontrar o primeiro ou último valor superior a X no Excel?
Como encontrar o valor mais alto numa linha e o respetivo cabeçalho da coluna no Excel?
Como encontrar o valor mais alto e obter o valor da célula adjacente no Excel?
Como encontrar o valor máximo ou mínimo com base em critérios no Excel?
As Melhores Ferramentas de Produtividade para o Office
Potencie as suas competências no Excel com Kutools para Excel e experimente uma eficiência como nunca antes.Kutools para Excel Oferece mais de 300 funcionalidades avançadas para impulsionar a produtividade e Economizar Tempo.Clique aqui para obter a funcionalidade de que mais precisa...
Office Tab Traz uma interface com separadores para o Office e torna o seu trabalho muito mais fácil
- Ative a edição e leitura com separadores no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novos separadores da mesma janela, em vez de em janelas separadas.
- Aumente a sua produtividade em 50 % e elimine centenas de cliques do rato todos os dias!
Todos os suplementos Kutools — num único instalador.
Kutools for Office reúne suplementos para Excel, Word, Outlook e PowerPoint, além do Office Tab Pro, sendo a solução ideal para equipas que trabalham em várias aplicações do Office.
- Pacote tudo-em-um— suplementos para Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Um instalador, uma licença— configuração em minutos (pronto para MSI)
- Funciona melhor em conjunto— produtividade simplificada em todas as aplicações do Office
- Teste gratuito de 30 dias com todas as funcionalidades— sem registo, sem cartão de crédito
- Melhor relação qualidade-preço— poupe face à compra individual dos suplementos