Como encontrar o primeiro / último número positivo / negativo no Excel?
Ao trabalhar com uma coluna de números que contém valores positivos e negativos, você pode frequentemente precisar localizar rapidamente o primeiro ou o último número positivo ou negativo no intervalo. Isso pode ser especialmente útil para análise de dados, detecção de tendências ou identificação de pontos de entrada específicos em grandes conjuntos de dados. Depender de inspeção manual para grandes conjuntos de dados é ineficiente e propenso a erros. Felizmente, o Excel oferece vários métodos práticos para agilizar essa tarefa, permitindo que você extraia os valores precisos de que precisa com fórmulas ou automação. Abaixo, você encontrará várias soluções adequadas para diferentes cenários, incluindo abordagens avançadas ideais para operações repetidas ou em larga escala.
Encontrar o primeiro número positivo / negativo com fórmula de matriz
Encontrar o último número positivo / negativo com fórmula de matriz
Macro VBA para encontrar o primeiro / último número positivo / negativo
Encontrar o primeiro número positivo / negativo com fórmula de matriz
Para extrair o primeiro número positivo ou negativo de uma série de valores, você pode usar as fórmulas de matriz do Excel. Esse método é adequado para usuários que precisam de uma solução rápida para intervalos de dados moderados e estão confortáveis com fórmulas, especialmente em ambientes onde add-ins ou macros adicionais são restritos. A abordagem de matriz atualiza automaticamente se seus dados de origem mudarem, tornando-a adequada para listas dinâmicas. Aqui está como você pode implementá-la:
1. Selecione uma célula em branco, insira a seguinte fórmula de matriz 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 você deseja pesquisar. Essa fórmula localiza a primeira célula no intervalo com um valor maior que 0 e retorna o conteúdo dessa célula. Veja a seguinte captura de tela:
2. Após digitar a fórmula, pressione Ctrl + Shift + Enter simultaneamente, em vez de apenas pressionar Enter. Isso executará corretamente a fórmula de matriz e retornará o primeiro número positivo da sua lista, conforme exibido no exemplo abaixo:
Dica: Para recuperar o primeiro número negativo, basta usar esta fórmula (lembre-se de pressionar Ctrl + Shift + Enter após digitar):
=INDEX(A2:A18,MATCH(TRUE,A2:A18<0,0))
Em ambas as fórmulas, alterar a condição (>0
para positivo, <0
para negativo) permite que você direcione o tipo de número necessário. Observe que as fórmulas de matriz não suportam referências de células vazias, então certifique-se de que seu intervalo de dados não inclua células em branco para resultados consistentes. Se todos os números forem positivos ou negativos, a fórmula pode retornar um erro – considere adicionar uma função SEERRO
se quiser suprimir erros e exibir uma mensagem personalizada.
Observação: Em versões recentes do Excel (Office 365 e Excel 2021 e posteriores), pode não ser necessário usar Ctrl + Shift + Enter; basta pressionar Enter pode ser suficiente por causa do suporte a matrizes dinâmicas.
Encontrar o último número positivo / negativo com fórmula de matriz
Se o seu objetivo é identificar o último valor positivo ou negativo em uma coluna, você pode usar uma fórmula de matriz diferente. Essa abordagem é adequada para analisar rapidamente tendências finais ou localizar o ponto de dados mais recente de um tipo específico. Observe que esse método reflete dinamicamente as atualizações dos dados, o que é especialmente valioso quando você adiciona regularmente novos números à lista.
1. Selecione uma célula em branco ao lado da sua coluna de dados e insira esta fórmula de matriz para encontrar o último número positivo:
=LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 >0, $A$2:$A$18))
Essa fórmula funciona aproveitando o comportamento do PROCV
de retornar a última correspondência numérica encontrada para um número extremamente grande. Aqui, SE($A$2:$A$18 >0, $A$2:$A$18)
filtra apenas os números positivos, e o PROCV
retorna a última ocorrência. Veja isso ilustrado abaixo:
2. Confirme a fórmula pressionando Ctrl + Shift + Enter (a menos que sua versão do Excel suporte matrizes dinâmicas). O resultado mostrará o último valor positivo presente no intervalo especificado, conforme demonstrado abaixo:
Para retornar o último número negativo, use a seguinte fórmula de matriz, também com Ctrl + Shift + Enter:
=LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 <0, $A$2:$A$18))
Se nenhum valor positivo ou negativo for encontrado, a fórmula retornará um erro (#N/D
). Para lidar com esses casos de forma elegante, envolva a fórmula em SEERRO
. Por exemplo:
=IFERROR(LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 >0, $A$2:$A$18)), "No match found")
É importante evitar células mescladas ou formatos combinados de texto/número no seu intervalo, pois eles podem interromper os resultados do cálculo da fórmula. Sempre verifique a integridade dos seus dados antes de usar esses métodos para obter a melhor precisão.
Macro VBA para encontrar o primeiro / último número positivo / negativo
Se você frequentemente precisa encontrar o primeiro ou o último número positivo ou negativo em vários intervalos ou conjuntos de dados muito grandes, automatizar essa tarefa com uma macro VBA pode economizar tempo significativo e reduzir erros manuais. Essa solução permite que você pesquise um intervalo selecionado e recupere instantaneamente o valor necessário, tornando-a ideal para processamento em lote ou tarefas analíticas repetitivas. A abordagem VBA é particularmente útil em cenários onde critérios complexos ou fluxos de trabalho personalizados são necessários, embora exija familiaridade básica com as ferramentas de Desenvolvedor do Excel.
1. Clique em Desenvolvedor > Visual Basic para abrir a janela Microsoft Visual Basic for Applications. 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, pressione F5 (ou clique no botão Executar ), e siga estas etapas:
- Um diálogo solicitará que você selecione seu intervalo de números (por exemplo, A2:A18).
- Em seguida, insira seu tipo de pesquisa: digite 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 inserir sua escolha e confirmar, o resultado será exibido em uma caixa de mensagem.
Dicas:
- Essa macro pode lidar com qualquer intervalo de números contíguo selecionado pelo usuário, permitindo flexibilidade no layout dos dados.
- Se o tipo especificado não corresponder a nenhum número no intervalo, você receberá uma notificação em vez de um erro.
- Certifique-se de que as macros estejam habilitadas no seu Excel para que o código VBA funcione.
- Se seus dados incluírem valores não numéricos, a macro os ignorará durante o processamento.
Solução de problemas e sugestões: Para todas as soluções, sempre confirme que sua seleção contém o intervalo pretendido e não inclui cabeçalhos. Se você usar intervalos grandes, considere limitar o tamanho para evitar atrasos no cálculo ou na performance, especialmente ao usar fórmulas de matriz ou macros.
Se você se encontrar frequentemente realizando essa tarefa ou quiser mais personalização, considere combinar múltiplos critérios na sua macro ou criar um botão dedicado para acesso mais fácil. Sempre salve seu trabalho antes de testar novos scripts VBA e teste em cópias de backup se você for novo em programação.
Artigos relacionados:
Como encontrar o primeiro / último valor maior que X no Excel?
Como encontrar o maior valor em uma linha e retornar o cabeçalho da coluna no Excel?
Como encontrar o maior valor e retornar o valor da célula adjacente no Excel?
Como encontrar o valor máximo ou mínimo com base em critérios no Excel?
Melhores Ferramentas de Produtividade para Office
Impulsione suas habilidades no Excel com Kutools para Excel e experimente uma eficiência incomparável. Kutools para Excel oferece mais de300 recursos avançados para aumentar a produtividade e economizar tempo. Clique aqui para acessar o recurso que você mais precisa...
Office Tab traz interface com abas para o Office e facilita muito seu trabalho
- Habilite edição e leitura por abas no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie múltiplos documentos em novas abas de uma mesma janela, em vez de em novas janelas.
- Aumente sua produtividade em50% e economize centenas de cliques todos os dias!
Todos os complementos Kutools. Um instalador
O pacote Kutools for Office reúne complementos para Excel, Word, Outlook & PowerPoint, além do Office Tab Pro, sendo ideal para equipes que trabalham em vários aplicativos do Office.





- Pacote tudo-em-um — complementos para Excel, Word, Outlook & PowerPoint + Office Tab Pro
- Um instalador, uma licença — configuração em minutos (pronto para MSI)
- Trabalhe melhor em conjunto — produtividade otimizada entre os aplicativos do Office
- Avaliação completa por30 dias — sem registro e sem cartão de crédito
- Melhor custo-benefício — economize comparado à compra individual de add-ins