Como Consultar SQL no Power Query do Excel
Autor

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.
Principais recursos
Confira o que este material oferece para você.
Perguntas frequentes
O material é realmente gratuito?
Sim. O acesso é gratuito e não exige cadastro.
Preciso ter o Excel instalado?
Recomendamos o Excel 2013 ou superior para todos os recursos.
Como faço para receber atualizações?
As atualizações são automáticas dentro da própria planilha.
Funciona no Excel do Mac?
Sim, funciona no Excel para Windows e para Mac.
Funciona no celular?
É possível visualizar no app do Excel; a edição completa é no computador.
Planilhas relacionadas
Planilha de Fluxo de Caixa
R$ 89,90
Controle de Estoque
R$ 69,90
Planilha Financeira Empresarial
R$ 79,90
Dashboard Financeiro no Excel
R$ 49,90




