Como extrair todos os registos entre duas datas no Excel?
Ao trabalhar com grandes volumes de dados com marcação temporal no Excel, é frequente precisar de extrair ou filtrar todos os registos compreendidos entre duas datas específicas. Por exemplo, pode querer analisar transações num determinado período de faturação, rever presenças num mês específico ou simplesmente examinar entradas registadas num intervalo de datas personalizado. Procurar e copiar manualmente cada linha relevante torna-se rapidamente tedioso e propenso a erros, sobretudo à medida que o volume de dados aumenta. Extrair eficientemente todos os registos entre duas datas dadas não só lhe poupa tempo e esforço consideráveis, como também reduz significativamente o risco de omitir entradas importantes ou introduzir erros durante a manipulação dos dados.
![]() | ![]() | ![]() |
A seguir, apresentamos vários métodos práticos para extrair todos os registos entre duas datas no Excel. Cada abordagem oferece cenários e vantagens específicas — desde soluções baseadas em fórmulas (sem necessidade de extras), passando pelo filtro incorporado do Excel e por código VBA, até à utilização do Kutools para Excel para maior conveniência — garantindo opções flexíveis que se adaptam a diferentes necessidades e preferências dos utilizadores.
Extrair todos os registos entre duas datas com fórmulas
Extrair todos os registos entre duas datas com Kutools para Excel![]()
Utilizar VBA para extrair registos entre duas datas
Utilizar o Filtro do Excel para extrair registos entre duas datas
Extrair todos os registos entre duas datas com fórmulas
Para extrair todos os registos entre duas datas no Excel utilizando fórmulas, siga estes passos. Esta solução é especialmente útil quando pretende atualização dinâmica: sempre que o conjunto de dados original ou as condições de data forem alterados, os resultados atualizam-se automaticamente. Contudo, se não estiver familiarizado com fórmulas matriciais, a configuração inicial poderá parecer um pouco complexa. Se o seu conjunto de dados for muito grande, este método poderá causar um desempenho de cálculo mais lento.
1. Prepare uma nova planilha, por exemplo, Sheet2, para especificar os limites de data e apresentar os registos extraídos. Introduza a data de início e a data de término pretendidas nas células A2 e B2, respetivamente. Para maior clareza, adicione cabeçalhos em A1 e B1 (como «Data de Início» e «Data de Término»).
2. Na célula C2 da Sheet2, introduza a seguinte fórmula para contar quantas linhas na Sheet1 contêm datas dentro do intervalo definido:
=SUMPRODUCT((Sheet1!$A$2:$A$22>=A2)*(Sheet1!$A$2:$A$22<=B2)) Após introduzir a fórmula, prima Enter. Isto ajuda-o a perceber quantas entradas correspondem à sua condição de filtro, facilitando a previsão do número de resultados esperados.
Nota: Nesta fórmula, Sheet1 refere-se à sua folha de dados originais; $A$2:$A$22 é a coluna de datas nos seus dados. Ajuste estas referências conforme necessário. A2 e B2 são as suas células de data inicial e data de término.
3. Para apresentar os registos correspondentes, selecione uma célula vazia onde pretende que a Lista Extraída comece (por exemplo, na Sheet2, célula A5) e introduza a seguinte fórmula matricial:
=IF(ROWS(A$5:A5)>$C$2,"",INDEX(Sheet1!A$2:A$22,SMALL(IF((Sheet1!$A$2:$A$22>=$A$2)*(Sheet1!$A$2:$A$22<=$B$2),ROW(Sheet1!A$2:A$22)-ROW(Sheet1!$A$2)+1),ROWS(A$5:A5)))) Depois de digitar a fórmula, prima Ctrl + Shift + Enter (em vez de apenas Enter) para que funcione como fórmula matricial. Em seguida, utilize a alça de preenchimento para arrastar para a direita, abrangendo tantas colunas quantos forem os seus dados, e depois para baixo, até que todos os registos correspondentes apareçam. Continue a arrastar até ver células em branco — sinal de que todos os dados correspondentes já foram extraídos.
Dicas:
- Se obtiver zeros, isso significa que já não há mais registos correspondentes para devolver. Basta parar de arrastar ainda mais.
- A parte ÍNDICE(...) da fórmula pode ser adaptada para extrair outras colunas. Basta alterar a coluna referenciada na parte Sheet1!A$2:A$22 para devolver outros campos.
- Esta fórmula pode ser expandida para funcionar com múltiplos critérios ou para extrair uma linha inteira (basta repeti-la em cada coluna).
4. Alguns resultados de data poderão aparecer como números de cinco dígitos (números de série de data do Excel). Para os converter num formato de data legível, selecione as células correspondentes, vá ao separador Base, abra o menu pendente de formatação e escolha Data Curta. Assim, os dados extraídos ficarão mais claros e utilizáveis.
Precauções:
- Certifique-se de que todas as entradas de datas nos seus dados originais estão efetivamente em formato de data e não armazenadas como texto; caso contrário, a fórmula poderá não funcionar conforme esperado.
- Ajuste os intervalos das matrizes sempre que o tamanho dos seus dados for alterado.
- Se encontrar erros #NÚM! ou #N/D, verifique se existem datas em branco ou inconsistências nos seus Dados de Origem.
Extrair todos os registos entre duas datas com Kutools para Excel
Se preferir uma solução mais simples e interativa, a funcionalidade Selecionar células específicas do Kutools para Excel permite-lhe extrair toda a linha que corresponda ao seu intervalo de datas com apenas alguns cliques, eliminando quase por completo a necessidade de fórmulas ou configurações manuais. Esta opção é ideal para utilizadores que lidam frequentemente com tarefas complexas de filtragem ou executam operações em lote sobre grandes conjuntos de dados, pois reduz o risco de erros nas fórmulas e acelera significativamente o seu fluxo de trabalho.
Após instalar o Kutools para Excel, siga os passos abaixo:(Transferência gratuita do Kutools para Excel já!)
1. Em primeiro lugar, selecione o intervalo do conjunto de dados que pretende analisar e extrair. Em seguida, clique em Kutools > Selecionar > Selecionar células específicas na Faixa de Opções do Excel. Isto abre uma janela de diálogo para seleção avançada.
2. Na caixa de diálogo Selecionar células específicas:
- Marque a opção «Linha inteira» para selecionar linhas inteiras correspondentes.
- Defina a condição de filtro: escolha Maior do que e Menor do que na lista suspensa da sua coluna de datas.
- Introduza manualmente a data inicial e a data de término na caixa de texto (certifique-se de que o formato corresponde ao dos seus dados).
- Certifique-se de que a lógica «E» está selecionada, de modo que ambas as condições sejam aplicadas em simultâneo.
3. Clique em OK. O Kutools irá selecionar imediatamente todas as linhas cuja coluna de datas se encontre dentro do seu intervalo definido. Em seguida, prima Ctrl + C para copiar as linhas selecionadas, vá para uma folha em branco ou nova localização e prima Ctrl + V para colar os resultados extraídos.
Dicas e Precauções:
- A abordagem do Kutools não exige que altere os seus dados originais nem que escreva qualquer fórmula.
- Se houver inconsistências no formato de data, visualize previamente os resultados da seleção antes de copiar.
- Utilize esta funcionalidade para tarefas repetitivas ou em lote — repita rapidamente os mesmos passos para diferentes intervalos de datas.
- Se a sua versão do Kutools não incluir uma funcionalidade conforme descrito, atualize para a Última Versão e garanta a melhor compatibilidade.
Análise de cenários: Este método é ideal para utilizadores que gerem listas com muitas colunas ou que necessitem de extrair repetidamente registos completos com base em intervalos de datas variáveis.
Código VBA – Utilize uma macro para filtrar e extrair automaticamente todas as linhas entre duas Data específica
Se o seu fluxo de trabalho envolver frequentemente a extração de dados entre duas datas e pretender automatizar totalmente o processo, utilizar uma macro VBA pode ser uma escolha inteligente. Com o VBA, pode pedir aos utilizadores que selecionem a coluna de datas, introduzam a data inicial e a data final, e filtrar e copiar automaticamente as linhas correspondentes para uma nova folha. Esta abordagem elimina esforço manual e reduz erros, mas exige a ativação de macros e alguma familiaridade com o editor do Visual Basic.
Eis como configurar essa macro:
1. Clique em Programador > Visual Basic para abrir o editor VBA. Na nova janela do Microsoft Visual Basic para Aplicações, clique em Inserir > Módulo e, de seguida, copie e cole o seguinte código no módulo:
Sub ExtractRowsBetweenDates_Final()
'Updated by Extendoffice
Dim wsSrc As Worksheet
Dim wsDest As Worksheet
Dim rngTable As Range
Dim colDate As Range
Dim StartDate As Date
Dim EndDate As Date
Dim i As Long
Dim destRow As Long
Dim dateColIndex As Long
Dim cellDate As Variant
Set wsSrc = ActiveSheet
Set rngTable = Application.InputBox("Select the data table (including headers):", "KutoolsforExcel", Type:=8)
If rngTable Is Nothing Then Exit Sub
Set colDate = Application.InputBox("Select the date column (including header):", "KutoolsforExcel", Type:=8)
If colDate Is Nothing Then Exit Sub
On Error GoTo DateError
StartDate = CDate(Application.InputBox("Enter the start date (yyyy-mm-dd):", "KutoolsforExcel", "", Type:=2))
EndDate = CDate(Application.InputBox("Enter the end date (yyyy-mm-dd):", "KutoolsforExcel", "", Type:=2))
On Error GoTo 0
On Error Resume Next
Set wsDest = Worksheets("FilteredRecords")
On Error GoTo 0
If wsDest Is Nothing Then
Set wsDest = Worksheets.Add
wsDest.Name = "FilteredRecords"
rngTable.Rows(1).Copy
wsDest.Cells(1, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
wsDest.Cells(1, 1).PasteSpecial Paste:=xlPasteFormats
End If
destRow = wsDest.Cells(wsDest.Rows.Count, 1).End(xlUp).Row + 1
dateColIndex = colDate.Column - rngTable.Columns(1).Column + 1
For i = 2 To rngTable.Rows.Count
cellDate = rngTable.Cells(i, dateColIndex).Value
If IsDate(cellDate) Then
If cellDate >= StartDate And cellDate <= EndDate Then
rngTable.Rows(i).Copy
wsDest.Cells(destRow, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
wsDest.Cells(destRow, 1).PasteSpecial Paste:=xlPasteFormats
destRow = destRow + 1
End If
End If
Next i
Application.CutCopyMode = False
wsDest.Columns.AutoFit
MsgBox "Filtered results have been added to '" & wsDest.Name & "'.", vbInformation
Exit Sub
DateError:
MsgBox "Invalid date format. Please enter dates as yyyy-mm-dd.", vbExclamation
End Sub 2. Para executar a macro, clique no botão
(Executar) ou prima F5.
Depois, siga as instruções para concluir os passos:
- Selecione a tabela de dados (incluindo os cabeçalhos)Quando surgir a primeira caixa de diálogo, selecione toda a tabela, incluindo a linha de cabeçalho, e clique em OK.
- Selecione a coluna de datas (incluindo o cabeçalho)Quando surgir a segunda caixa de diálogo, selecione apenas a coluna de datas, incluindo o cabeçalho, e clique em OK.
- Introduza a data inicial e a Data de términoSer-lhe-á pedido que introduza a Data de Início (formato: aaaa-mm-dd, por exemplo, 2025-06-01)Depois introduza a Data de término (por exemplo, 2025-06-30)Clique em OKapós cada uma.
Será criada automaticamente uma folha de cálculo com o nome FilteredRecords (caso ainda não exista). As linhas cujas datas estejam compreendidas entre a data inicial e a data de término serão copiadas para essa folha. Além disso, sempre que executar a macro, quaisquer novas linhas correspondentes serão adicionadas abaixo dos resultados já existentes.
Resolução de problemas:
- Se nada acontecer após a execução, verifique o seu intervalo selecionado — intervalos inválidos ou caixas de diálogo canceladas farão com que a macro termine.
- Certifique-se de que as entradas na sua coluna de datas sejam datas reais do Excel; caso estejam armazenadas como texto, converta-as primeiro para garantir uma filtragem precisa.
Análise de cenários: Esta solução VBA é particularmente valiosa para tarefas repetitivas, fluxos de trabalho avançados ou quando partilha uma solução semiautomatizada com utilizadores não técnicos — basta atribuir um botão para uma operação ainda mais simples.
Outros métodos incorporados no Excel – Utilize a funcionalidade Filtro incorporada do Excel
Para utilizadores que preferem uma abordagem simples e interativa, sem precisar de escrever fórmulas ou código, a funcionalidade Filtro incorporada do Excel oferece uma forma rápida de visualizar e extrair linhas entre duas datas. É ideal para tarefas ocasionais, verificação visual ou quando precisa de trabalhar diretamente na interface da folha de cálculo. No entanto, não oferece atualizações automáticas caso os critérios de data ou os dados sejam alterados — terá de repetir os passos em cada nova sessão de filtragem.
Eis como utilizá-la:
- Selecione o seu intervalo de dados, garantindo que os cabeçalhos das colunas estejam incluídos.
- Vá ao separador Dados na Faixa de Opções e clique em Filtro. Aparecerão pequenas setas pendentes junto a cada cabeçalho.
- Clique na seta da sua coluna de datas e escolha Filtros de Data > Entre....
- Na caixa de diálogo, introduza a data inicial e a data final pretendidas. Certifique-se de que o formato corresponde ao do formato de data dos seus dados.
- Clique em OK. Apenas as linhas com datas dentro do seu intervalo limitado permanecerão visíveis.
- Selecione todas as linhas visíveis, prima Ctrl + C para copiar, vá para uma área em branco ou outra folha e prima Ctrl + V para colar os resultados filtrados.
Dicas e precauções:
- Este método é ideal para inspeções rápidas e visuais ou extrações pontuais.
- Se a sua coluna de datas utilizar formatos inconsistentes, corrija-os previamente para garantir o correto funcionamento do filtro.
- Lembre-se de limpar o filtro assim que terminar, para restaurar a visualização completa do conjunto de dados.
- As linhas filtradas estão ocultas, não eliminadas — os seus dados originais permanecem intactos.
Análise de cenários: O Filtro incorporado do Excel é ideal para tabelas de dimensão moderada, especialmente quando precisa de pré-visualizar ou copiar subconjuntos imediatamente, sem guardar fórmulas ou macros.
Resolução de problemas e sugestões resumo:
- Confirme sempre que as células de data estão formatadas de forma consistente em toda a folha de cálculo, garantindo assim o correto funcionamento de todas as soluções.
- Ao utilizar fórmulas ou VBA, ajuste as referências de coluna e intervalo de acordo com a estrutura real da sua folha para evitar erros de índice ou referência.
- Em conjuntos de dados muito grandes, o Kutools ou o filtro incorporado costumam entregar resultados mais rápidos e são menos propensos a ultrapassar os limites de memória ou de cálculo de fórmulas do que fórmulas matriciais extensas.
- Se encontrar espaços em branco inesperados ou registos em falta na saída, verifique se as suas condições de data, intervalo de entrada e formatos de dados estão definidos corretamente.
Demonstração: Extraia todos os registos entre duas datas com Kutools para 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


