KutoolsforOffice — Uma solução, cinco ferramentas poderosas.Fazer mais com menos esforço.

Como encontrar o primeiro ou último número positivo ou negativo no Excel?

AutorXiaoyang Data de Modificação

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


seta azul para a direita com balão 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ã:

Uma captura de ecrã que mostra um conjunto de dados para encontrar o primeiro número positivo no Excel

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:

Uma captura de ecrã que mostra o resultado do primeiro número positivo utilizando uma fórmula matricial no Excel

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.


seta azul para a direita com balão 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:

Uma captura de ecrã que mostra a fórmula matricial para encontrar o último número positivo no Excel

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:

Uma captura de ecrã que mostra o resultado do último número positivo utilizando uma fórmula matricial no Excel

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.


seta azul para a direita com balã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)Botão Executar 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

🤖KUTOOLS AI Assistente: Revolucione o Análise de Dados com base em:Execução Inteligente   |  Gerar Código|  Criar fórmulas personalizadas  |  Analisar Dados e Gerar Gráficos|  Invocar Funções Aprimoradas
Funcionalidades Populares:Localizar, Destacar ou Marcar Duplicatas   |  Excluir linhas em branco   |  Combinar Colunas ou Células sem Perder Dados   |   Arredondamento sem usar fórmula...
Super PROC:VLookup com Múltiplos Critérios  |  VLookup com Múltiplos Valores  |   VLookup em Múltiplas Folhas   |   Correspondência Fuzzy....
Lista Suspensa Avançada:Criar Rapidamente Lista de Seleção   |  Lista de Seleção Dependente   |  Lista de Seleção com Múltipla Escolha....
Gestor de Colunas:Adicionar um Número Específico de Colunas|Mover Colunas|Alternar Estado de Visibilidade de Colunas Ocultas|Comparar Intervalos e Colunas...
Funcionalidades em Destaque:Grade de foco   |  Visualização de Design   |Barra de fórmulas aprimorada   | Gestor de Pastas de Trabalho e Folhas   |  Biblioteca de Recursos(Texto Automático)|  Seleção de Data   |  Consolidar Planilhas  |  Encriptar/Descriptografar Células   | Enviar Emails por Lista   |  Super Filtro   |   Filtro Especial(Filtrar Células com Fonte em Negrito/itálico/rasurado...) ...
Principais Conjuntos de Ferramentas 15:12 Ferramentasde Texto(Adicionar Texto,Excluir Caracteres Específicos, ...)|   50+Tiposde Gráfico(Gráfico de Gantt, ...)|   40+ Fórmulas Práticas(Calcular a idade com base na data de nascimento, ...)|   19 Ferramentasde Inserção(Inserir QR Code,Inserir Imagem a Partir do Caminho, ...)|   12 Ferramentasde Conversão(Converter em Palavras,Conversão de moeda, ...)|   7 Ferramentasde Mesclar e Dividir(Mesclar Linhas Avançado,Dividir Células, ...)|... e muito mais
Utilize o Kutools na sua língua preferida – suporta inglês, espanhol, alemão, francês, chinês e mais 40+ idiomas!

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.

ExcelWordOutlookTabsPowerPoint
  • 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