Como Consultar SQL no Power Query do Excel

Planilha como consultar SQL no Excel Power Query 1

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

  1. Em uma planilha vazia, na linha do Período, insira as datas:
    • Célula C301/01/2025
    • Célula D331/01/2025
  2. 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

  1. Dados → Obter Dados → De Banco de Dados → Do Microsoft Access
  2. Aponte para o arquivo, por exemplo:
    C:\Rieper\Blog Guia do Excel\Controle de hora extra access\Ponto.accdb
  3. Confirme a navegação.
Prévia dos dados da tabela PONTO carregados no Power Query

3) Abra o Editor Avançado

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

 Menu de contexto do Power Query mostrando a opção 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.

SQL Power Query com parametros Excel 5 let m power query

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
Avalie este post

Conheça nosso

Curso de Excel completo