Como encontrar o valor máximo ou mínimo em um intervalo de datas específico (entre duas datas) no Excel?
Na análise de dados diária, especialmente ao trabalhar com registros transacionais ou dados de séries temporais, você pode frequentemente precisar identificar o maior ou menor valor que ocorre dentro de um período específico. Por exemplo, imagine que você tenha uma tabela como a mostrada na captura de tela abaixo, e deseja determinar o valor máximo ou mínimo entre duas datas — como de 01/07/2016 a 01/12/2016. Essa é uma necessidade comum ao gerar relatórios sobre períodos específicos, comparar o desempenho mensal ou rastrear picos e vales nos dados. Este artigo irá guiá-lo através de várias soluções práticas usando fórmulas do Excel, código VBA e recursos embutidos, ajudando-o a extrair rapidamente e com precisão o valor que você precisa.
➤ Encontre o valor máximo ou mínimo em um intervalo de datas específico com fórmulas de matriz
➤ Código VBA: Encontre automaticamente o valor máximo ou mínimo em um intervalo de datas especificado
➤ Outros métodos embutidos do Excel: Use a Tabela Dinâmica para filtrar e exibir o máximo/mínimo por intervalo de datas
Encontre o valor máximo ou mínimo em um intervalo de datas específico com fórmulas de matriz
Uma abordagem direta é usar fórmulas de matriz no Excel, que permitem calcular valores com base em múltiplos critérios — como verificar se as datas estão dentro do intervalo especificado. Este método é adequado para dados de tamanho moderado e para usuários confortáveis ao inserir fórmulas.
Suponha que sua planilha liste datas na coluna A (A5:A17) e os valores correspondentes na coluna B (B5:B17), com as datas de início e fim para o intervalo inseridas nas células B1 e D1, respectivamente.
1. Selecione uma célula em branco onde você deseja exibir o resultado (por exemplo, E2).
Encontrando o valor máximo entre 01/07/2016 e 01/12/2016:
2. Insira a seguinte fórmula na célula selecionada. Após editar, pressione Ctrl + Shift + Enter (não apenas Enter), para que o Excel reconheça como uma fórmula de matriz:
=MAX(IF((A5:A17<=$D$1)*(A5:A17>=$B$1),B5:B17,""))
Esta fórmula verifica quais datas estão entre suas datas de início e fim, e considera apenas os valores das linhas correspondentes para calcular o máximo.
Encontrando o valor mínimo entre 01/07/2016 e 01/12/2016:
3. Para encontrar o mínimo no mesmo intervalo de datas, use uma abordagem semelhante. Insira a seguinte fórmula (e novamente, confirme com Ctrl + Shift + Enter):
=MIN(IF((A5:A17<=$D$1)*(A5:A17>=$B$1), B5:B17, ""))
Essa fórmula funciona da mesma forma, mas retorna o valor mínimo que corresponde aos seus critérios de data.
Notas:
- Nos exemplos acima, A5:A17 é o intervalo contendo suas datas, $B$1 é a data de início, $D$1 é a data de término, e B5:B17 é o intervalo de valores que você deseja avaliar. Ajuste essas referências para corresponder aos seus dados reais.
- Certifique-se de que os dois intervalos que você referencia têm o mesmo comprimento — caso contrário, a fórmula pode gerar erros.
- Verifique duas vezes se suas entradas de data estão formatadas como datas, não como texto, ou a fórmula pode não funcionar conforme o pretendido.
Dicas:
- Se você estiver trabalhando com o Office 365 ou Excel 2021 e versões posteriores, poderá usar as funções MAXIFS e MINIFS para cálculos mais diretos baseados em critérios.
- Se a fórmula retornar um 0 ou ficar em branco inesperadamente, verifique se seu intervalo de datas se sobrepõe às datas disponíveis nos dados e procure células em branco despercebidas.
Código VBA: Encontre automaticamente o valor máximo ou mínimo em um intervalo de datas especificado
Para usuários que lidam com grandes conjuntos de dados, precisam repetir essa tarefa com frequência ou buscam automação em relatórios, uma solução de macro VBA pode encontrar eficientemente o valor máximo ou mínimo dentro de um intervalo de datas escolhido. Com o VBA, você pode solicitar ao usuário para selecionar os intervalos relevantes e definir as datas toda vez, tornando-o ideal para aplicações dinâmicas ou integração avançada de fluxo de trabalho.
1. Vá para Desenvolvedor > Visual Basic. Na janela do editor VBA que aparece, clique em Inserir > Módulo, e depois copie e cole o seguinte código no novo módulo:
Sub FindMaxMinInDateRange_Robust()
Dim ws As Worksheet
Dim dateRange As Range, valueRange As Range
Dim startCell As Range, endCell As Range
Dim startDate As Date, endDate As Date
Dim i As Long
Dim d As Date, v As Variant
Dim hasHit As Boolean
Dim maxV As Double, minV As Double
Const TITLE As String = "KutoolsforExcel"
On Error GoTo FailFast
Set ws = ActiveSheet
Set dateRange = Application.InputBox("Select the DATE range:", TITLE, Type:=8)
If dateRange Is Nothing Then Exit Sub
Set valueRange = Application.InputBox("Select the VALUE range (same rows as date range):", TITLE, Type:=8)
If valueRange Is Nothing Then Exit Sub
If dateRange.Rows.Count <> valueRange.Rows.Count Then
MsgBox "Date range and value range must have the SAME number of rows.", vbExclamation, TITLE
Exit Sub
End If
Set startCell = Application.InputBox("Select START date cell:", TITLE, Type:=8)
If startCell Is Nothing Then Exit Sub
Set endCell = Application.InputBox("Select END date cell:", TITLE, Type:=8)
If endCell Is Nothing Then Exit Sub
If Not IsDate(startCell.Value) Or Not IsDate(endCell.Value) Then
MsgBox "Start/End cell must contain valid dates.", vbExclamation, TITLE
Exit Sub
End If
startDate = CDate(startCell.Value)
endDate = CDate(endCell.Value)
If startDate > endDate Then
Dim tmp As Date
tmp = startDate: startDate = endDate: endDate = tmp
End If
For i = 1 To dateRange.Rows.Count
If IsDate(dateRange.Cells(i, 1).Value) Then
d = CDate(dateRange.Cells(i, 1).Value)
If d >= startDate And d <= endDate Then
v = valueRange.Cells(i, 1).Value
If IsNumeric(v) And Not IsEmpty(v) Then
If Not hasHit Then
maxV = CDbl(v): minV = CDbl(v)
hasHit = True
Else
If CDbl(v) > maxV Then maxV = CDbl(v)
If CDbl(v) < minV Then minV = CDbl(v)
End If
End If
End If
End If
Next i
If hasHit Then
MsgBox "Max value in range: " & maxV & vbCrLf & _
"Min value in range: " & minV, vbInformation, TITLE
Else
MsgBox "No rows matched the date range (or values were non-numeric).", vbExclamation, TITLE
End If
Exit Sub
FailFast:
MsgBox "Something went wrong: " & Err.Description, vbExclamation, TITLE
End Sub
2. Para executar a macro, clique no botão no editor VBA (ou pressione F5). Siga os prompts para selecionar os intervalos de datas e valores, e inserir as datas de início e fim. O valor máximo e mínimo resultante para o intervalo de datas especificado será exibido em uma caixa de diálogo.
Dicas:
- Certifique-se de que os intervalos de datas e valores selecionados contenham o mesmo número de linhas e correspondam diretamente entre si.
- Essa abordagem é especialmente útil para processar listas extensas ou automatizar cálculos repetitivos de máximo/mínimo com base em critérios variáveis.
- Se um intervalo vazio ou inválido for selecionado, ou se a entrada da data não estiver formatada corretamente, o código pode não produzir um resultado válido — verifique suas seleções antes de executar.
Outros métodos embutidos do Excel: Use a Tabela Dinâmica para filtrar e exibir o máximo/mínimo por intervalo de datas
Se você prefere não usar fórmulas ou código, aproveitar o recurso de Tabela Dinâmica do Excel oferece um método interativo e livre de fórmulas para filtrar dados por data e exibir valores resumidos como máximo ou mínimo. Essa solução é adequada para usuários que precisam explorar dados, gerar relatórios ou ajustar facilmente os critérios usando uma interface gráfica.
1. Selecione sua tabela (incluindo datas e valores), depois vá até a guia Inserir e clique em Tabela Dinâmica.
2. No diálogo Criar Tabela Dinâmica, escolha onde você deseja que a Tabela Dinâmica seja colocada, e clique em OK.
3. No painel Campos da Tabela Dinâmica, arraste o campo Data para a área Linhas, e o campo Valores (aquele para o qual você deseja encontrar o máximo/mínimo) para a área Valores. Por padrão, ele mostrará Soma; clique no campo em Valores, escolha Configurações de Campo de Valor e altere para Máximo ou Mínimo conforme necessário.
4. Para filtrar por um intervalo de datas específico, clique na seta suspensa nos rótulos de linha para o campo Data, escolha Filtros de Data > Entre…, depois especifique suas datas de início e fim (por exemplo, 01/07/2016 a 01/12/2016) e clique em OK.
Agora a Tabela Dinâmica exibirá o valor máximo ou mínimo para cada data dentro do intervalo especificado. Se você só precisar do único valor mais alto ou mais baixo nesse intervalo, pode filtrar ainda mais ou visualizar o resultado resumido.
Notas:
- Certifique-se de que todas as células na coluna Data são datas reais (não texto). Formatos mistos podem fazer com que os filtros ignorem linhas.
- Se os dados de origem mudarem, clique com o botão direito na Tabela Dinâmica e escolha Atualizar para atualizar os resultados.
- Dependendo do seu layout, o Excel pode agrupar datas por mês/trimestre/ano. Se necessário, clique com o botão direito em uma data na Tabela Dinâmica e escolha Desagrupar (ou Agrupar… para definir o nível desejado).
- Para conjuntos de dados muito grandes, colocar a Tabela Dinâmica em uma nova planilha pode melhorar a legibilidade e o desempenho.
Dicas:
- Adicione um Fatiador para o campo Data (Analisar Tabela Dinâmica > Inserir Fatiador) para alterar os intervalos interativamente.
- Precisa de um único máximo/mínimo em todo o intervalo filtrado? Depois de filtrar, ordene a coluna Valores ou adicione um segundo campo de Valores e alterne para Máximo/Mínimo.
- Combine com um Gráfico Dinâmico para um resumo visual que se atualiza com seus filtros.
Este método evita a entrada manual de fórmulas e permite interação dinâmica — ótimo para apresentações ou cenários multiusuários. Para saídas altamente personalizadas ou automação em lote em várias planilhas, considere as abordagens de fórmula ou VBA.
Artigos relacionados:
- Como encontrar a posição do primeiro/último número em uma string de texto no Excel?
- Como encontrar a primeira ou última sexta-feira de cada mês no Excel?
- Como procurar e encontrar o primeiro, segundo ou enésimo valor correspondente no Excel?
- Como encontrar o valor com a frequência mais alta em um intervalo 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