Neste artigo você aprenderá como realizar cargas de dados com consultas SQL no Power Query do Excel com parâmetros de células, variando as informações.
Resumo: Neste guia você vai conectar o Excel a um banco Access (.accdb) pelo Power Query, criar parâmetros de data em células (nomeadas dtIni e dtFim) e executar uma consulta SQL parametrizada com Value.NativeQuery, trazendo os registros entre duas datas. No final, a tabela é carregada no Excel pronta para filtro e atualização com 1 clique.
O que você vai construir
- Uma planilha com o período (início e fim) em células nomeadas
- Uma consulta Power Query que lê essas células e envia para o SQL
- Um resultado consolidado e atualizável com Data, Código e Matrícula
Vantagens: segurança (evita concatenação de SQL), query folding quando suportado, reuso, facilidade de manutenção.
Pré-requisitos rápidos
- Excel 2016+ (ou Microsoft 365)
- Arquivo Access Ponto.accdb com a tabela PONTO
- Coluna DATA no Access como Data/Hora
- Datas no Excel no formato pt-BR: dd/mm/aaaa
Passo a passo
1) Crie as células de período e nomeie como dtIni e dtFim
- Em uma planilha vazia, na linha do Período, insira as datas:
- Célula C3 →
01/01/2025 - Célula D3 →
31/01/2025
- Célula C3 →
- Nomeie as células:
- Selecione C3 → na Caixa de Nome (à esquerda da barra de fórmulas) digite dtIni e pressione Enter.
- Selecione D3 → digite dtFim e Enter.
Dica: formate como Data curta (dd/mm/aaaa).
Imagem de referência:

SQL Power Query com parametros Excel 1 dtini.png(C3 = 01/01/2025)SQL Power Query com parametros Excel 2 dtfim.png(D3 = 31/01/2025)
Sugestão de alt text (para WordPress):
- Campo de data inicial nomeado como dtIni no Excel
- Campo de data final nomeado como dtFim no Excel
2) Abra o Power Query e aponte para o Access
- Dados → Obter Dados → De Banco de Dados → Do Microsoft Access
- Aponte para o arquivo, por exemplo:
C:\Rieper\Blog Guia do Excel\Controle de hora extra access\Ponto.accdb - Confirme a navegação.

3) Abra o Editor Avançado
No painel Consultas, clique com o botão direito na consulta e escolha Editor Avançado.

4) Cole o código M com parâmetros (dtIni e dtFim)
No Editor Avançado, cole o script abaixo (adapte apenas o caminho do arquivo, se necessário):
let
DtIni = Excel.CurrentWorkbook(){[Name="dtIni"]}[Content]{0}[Column1],
DtFim = Excel.CurrentWorkbook(){[Name="dtFim"]}[Content]{0}[Column1],
Fonte = Access.Database(
File.Contents("C:\Sua Pasta\Controle de hora extra access\Ponto.accdb"),
[CreateNavigationProperties=true]
),
ConsultaSQL = Value.NativeQuery(
Fonte,
"SELECT * FROM PONTO WHERE DATA BETWEEN ? AND ? ORDER BY DATA",
{ DtIni, DtFim }
)
in
ConsultaSQL
Por que com “?” e lista { DtIni, DtFim }?
Essa é a forma parametrizada – o Power Query injeta os valores com o tipo correto, reduz risco de erro e pode manter folding no conector.

5) Feche e Carregue
Clique em Página Inicial → Fechar e Carregar.
Sua tabela virá formatada, com filtros nativos do Excel.

Para atualizar com novas datas, altere C3 (dtIni) e D3 (dtFim) e clique em Dados → Atualizar Tudo.
Boas práticas e dicas
- Tipos corretos: garanta que dtIni e dtFim estejam como Data (pt-BR). Se precisar, force o tipo no M:
DtIni = Date.From(Excel.CurrentWorkbook(){[Name="dtIni"]}[Content]{0}[Column1]), DtFim = Date.From(Excel.CurrentWorkbook(){[Name="dtFim"]}[Content]{0}[Column1]), - Horários: se a coluna DATA no Access tiver hora, e você quiser todo o dia final, use
DateTime.From(DtFim) + #duration(0,23,59,59)na consulta SQL (ou trate no Access). - Credenciais e Privacidade: em Arquivo → Opções e Configurações → Configurações de Fonte de Dados, alinhe níveis de privacidade e credenciais para evitar bloqueios.
- Performance: mantenha filtros no SQL (com
WHERE) – é mais rápido do que filtrar após carregar. - Caminho do arquivo: prefira caminho estável (ex.: pasta de rede mapeada) ou Parâmetro para o caminho do
File.Contents()se for compartilhar. - Auditoria: renomeie etapas e consulta (ex.:
Ponto accdb) para facilitar manutenção.
FAQ rápido
Posso usar esse mesmo padrão com SQL Server/MySQL?
Sim. O conceito é idêntico: ler parâmetros do Excel e passá-los em Value.NativeQuery. A sintaxe do SELECT pode mudar (ex.: WHERE Data BETWEEN @p1 AND @p2 para algumas fontes).
Dá para mudar o caminho do Access sem editar o M?
Sim. Crie um Parâmetro (ou uma célula nomeada) para o caminho e use em File.Contents().
Funciona com data no formato americano?
Funciona, mas mantenha consistência. Para pt-BR, prefira dd/mm/aaaa e garanta Date.From(...).
Download Arquivos da Aula Power Query SQL
Realize o download do da planilha de exemplo e da vídeo-aula acima neste botão abaixo. Basta se inscrever na nossa newsletter gratuita para o download automático.
Baixe a planilha



