Análise de dadosAvançado15 min de leitura

Domine a Função QUERY do Google Sheets

Desbloqueie manipulação de dados similar a SQL no Google Sheets. Aprenda a sintaxe QUERY para filtrar, ordenar, girar e agregar dados com fórmulas poderosas.

A função QUERY é a ferramenta mais poderosa de manipulação de dados no Google Sheets-mas a maioria dos usuários nunca aprende a usá-la. Se você conhece SQL, QUERY permite que você escreva comandos SELECT, WHERE, GROUP BY e ORDER BY familiares diretamente em fórmulas de planilha. Se você não conhece SQL, este guia ensinará tudo o que você precisa.

QUERY elimina a necessidade de fórmulas complexas e aninhadas, tabelas dinâmicas e filtragens manuais. Uma única fórmula QUERY pode substituir 10 ou mais fórmulas tradicionais, tornando suas planilhas mais rápidas, limpas e fáceis de manter. Esta é a habilidade que separa usuários iniciantes de planilhas de analistas profissionais.

Neste guia abrangente, você aprenderá a sintaxe QUERY desde o básico até técnicas avançadas. Ao final, você será capaz de filtrar milhões de linhas, criar relatórios dinâmicos e construir dashboards automatizados-tudo com uma função poderosa.

O que você vai precisar

  • Conhecimento intermediário de Google Sheets
  • Compreensão de fórmulas básicas e referências de células
  • Conjunto de dados com pelo menos 3 colunas para praticar (forneceremos exemplos)

Guia passo a passo

1

Compreenda os Fundamentos da Sintaxe QUERY

Aprenda a estrutura fundamental das fórmulas QUERY.

  • Sintaxe básica: =QUERY(dados, consulta, [cabeçalhos])
  • dados = o intervalo para consultar (A1:D100)
  • consulta = consulta similar a SQL entre aspas ("SELECT A, B WHERE C > 100")
  • cabeçalhos = número opcional de linhas de cabeçalho (geralmente 1)
  • Referências de coluna: Use letras (A, B, C) ou Col1, Col2, Col3
  • Exemplo: =QUERY(A1:D100, "SELECT A, B, C", 1)

Pro Tip

Sempre inclua linhas de cabeçalho no seu intervalo de dados. QUERY funciona melhor quando os nomes das colunas estão na primeira linha.
2

Selecione Colunas Específicas

Escolha quais colunas exibir em seus resultados.

  • Selecionar todas as colunas: =QUERY(A1:D100, "SELECT *")
  • Selecionar colunas específicas: =QUERY(A1:D100, "SELECT A, C, D")
  • Reordenar colunas: =QUERY(A1:D100, "SELECT D, A, B") coloca a coluna D em primeiro lugar
  • Use notação Col: =QUERY(A1:D100, "SELECT Col1, Col3, Col4")
  • Renomeie colunas com LABEL: =QUERY(A1:D100, "SELECT A, B LABEL A 'Nome', B 'Receita'")

Pro Tip

A notação Col (Col1, Col2) é melhor do que letras quando seu intervalo de dados pode mudar-ela se adapta automaticamente.
3

Filtre Dados com a Cláusula WHERE

Use WHERE para filtrar linhas com base em condições.

  • Filtro básico: =QUERY(A1:D100, "SELECT * WHERE B > 1000")
  • Filtro de texto: =QUERY(A1:D100, "SELECT * WHERE A = 'Produto A'")
  • Múltiplas condições (AND): =QUERY(A1:D100, "SELECT * WHERE B > 1000 AND C < 5000")
  • Múltiplas condições (OR): =QUERY(A1:D100, "SELECT * WHERE A = 'Produto A' OR A = 'Produto B'")
  • Texto contém: =QUERY(A1:D100, "SELECT * WHERE A CONTAINS 'Gerente'")
  • Filtros de data: =QUERY(A1:D100, "SELECT * WHERE B > DATE '2024-01-01'")

Pro Tip

Valores de texto em cláusulas WHERE devem usar aspas simples dentro de aspas duplas: "WHERE A = 'Texto'"
4

Ordene Resultados com ORDER BY

Ordene seus resultados de consulta em ordem crescente ou decrescente.

  • Ordenar em ordem crescente: =QUERY(A1:D100, "SELECT * ORDER BY B")
  • Ordenar em ordem decrescente: =QUERY(A1:D100, "SELECT * ORDER BY B DESC")
  • Ordenar por múltiplas colunas: =QUERY(A1:D100, "SELECT * ORDER BY A ASC, B DESC")
  • Combine WHERE e ORDER BY: =QUERY(A1:D100, "SELECT * WHERE C > 100 ORDER BY B DESC")
  • Ordenar por coluna não em SELECT: =QUERY(A1:D100, "SELECT A, B ORDER BY D DESC")

Pro Tip

A ordem das cláusulas é importante: SELECT, WHERE, GROUP BY, PIVOT, ORDER BY, LIMIT. Siga esta sequência ou as consultas falharão.
5

Agregue Dados com GROUP BY

Resuma dados por categorias como tabelas dinâmicas.

  • Soma por categoria: =QUERY(A1:D100, "SELECT A, SUM(B) GROUP BY A")
  • Contagem por categoria: =QUERY(A1:D100, "SELECT A, COUNT(B) GROUP BY A")
  • Média por categoria: =QUERY(A1:D100, "SELECT A, AVG(B) GROUP BY A")
  • Múltiplas agregações: =QUERY(A1:D100, "SELECT A, SUM(B), AVG(C), COUNT(D) GROUP BY A")
  • Agrupar por múltiplas colunas: =QUERY(A1:D100, "SELECT A, B, SUM(C) GROUP BY A, B")
  • Adicione LABEL para clareza: =QUERY(A1:D100, "SELECT A, SUM(B) GROUP BY A LABEL SUM(B) 'Receita Total'")

Pro Tip

Ao usar GROUP BY, cada coluna em SELECT deve estar em GROUP BY ou ser uma agregação (SUM, AVG, COUNT, etc.).
6

Use Funções de Agregação

Domine SUM, COUNT, AVG, MIN, MAX para análise de dados.

  • SUM: =QUERY(A1:D100, "SELECT A, SUM(B) GROUP BY A") soma valores numéricos
  • COUNT: =QUERY(A1:D100, "SELECT A, COUNT(B) GROUP BY A") conta células não vazias
  • AVG: =QUERY(A1:D100, "SELECT A, AVG(B) GROUP BY A") calcula médias
  • MIN/MAX: =QUERY(A1:D100, "SELECT MIN(B), MAX(B)")
  • Combine funções: =QUERY(A1:D100, "SELECT A, SUM(B), AVG(C), COUNT(*) GROUP BY A")

Pro Tip

Use COUNT(*) para contar todas as linhas incluindo vazias, COUNT(B) conta apenas valores não vazios na coluna B.
7

Limite e Formate Resultados

Controle quantas linhas retornam e formate a saída.

  • Limitar resultados: =QUERY(A1:D100, "SELECT * ORDER BY B DESC LIMIT 10") mostra os 10 primeiros
  • Pular linhas com OFFSET: =QUERY(A1:D100, "SELECT * LIMIT 10 OFFSET 5") pula as primeiras 5 linhas
  • Formatar números: =QUERY(A1:D100, "SELECT A, B FORMAT B '$#,##0.00'")
  • Formatar datas: =QUERY(A1:D100, "SELECT A, B FORMAT B 'yyyy-mm-dd'")
  • Formatar percentuais: =QUERY(A1:D100, "SELECT A, B FORMAT B '0.00%'")

Pro Tip

LIMIT é perfeito para relatórios "Top 10". Combine com ORDER BY DESC para obter os valores mais altos primeiro.
8

Técnicas Avançadas e Melhores Práticas

Use consultas dinâmicas, PIVOT e consulte várias planilhas.

  • WHERE dinâmico com referência de célula: =QUERY(A1:D100, "SELECT * WHERE B > "&E2) usa o valor em E2
  • Consultar outra planilha: =QUERY(Sheet2!A1:D100, "SELECT * WHERE B > 1000")
  • Dados PIVOT: =QUERY(A1:D100, "SELECT A, SUM(B) GROUP BY A PIVOT C")
  • Combine várias consultas com chaves: ={QUERY(A1:D10, "SELECT *"); QUERY(A20:D30, "SELECT *")}
  • Trate erros: =IFERROR(QUERY(A1:D100, "SELECT * WHERE B > 1000"), "Nenhum resultado")

Pro Tip

Ao construir consultas dinâmicas com referências de célula, tenha cuidado com aspas. Texto precisa: "WHERE A = '"&E2&"'"

Conclusão

Agora você domina a função mais poderosa do Google Sheets. De simples comandos SELECT a agregações complexas com GROUP BY e tabelas dinâmicas, você pode manipular dados como um profissional de SQL-tudo dentro de fórmulas de planilha.

No entanto, se você se vê escrevendo fórmulas QUERY complexas repetidamente, há uma forma mais inteligente. ModelMonkey pode gerar fórmulas QUERY automaticamente com prompts de IA simples. Em vez de memorizar sintaxe e depurar erros de aspas, apenas diga ao ModelMonkey o que você precisa:

  • "Mostre-me a receita total por produto, ordenada do maior para o menor"
  • "Filtre vendas acima de R$ 1.000 nos últimos 30 dias e agrupe por representante"
  • "Crie uma tabela dinâmica mostrando receita mensal por região"

ModelMonkey escreve a fórmula QUERY, explica a sintaxe e até sugere otimizações. Transforma horas de tentativa e erro em fórmulas instantâneas e funcionais.

Pronto para parar de lutar com a sintaxe QUERY? Inicie sua avaliação gratuita de 14 dias e deixe a IA escrever suas fórmulas.

Perguntas frequentes

O que é a função QUERY do Google Sheets?

QUERY é uma função poderosa que usa sintaxe similar a SQL para filtrar, ordenar e agregar dados no Google Sheets. Sintaxe: =QUERY(dados, consulta, cabeçalhos). Suporta cláusulas SELECT, WHERE, GROUP BY, ORDER BY, PIVOT e LIMIT, tornando-a mais flexível do que tabelas dinâmicas ou fórmulas tradicionais para manipulação complexa de dados.

Como faço para usar WHERE no QUERY do Google Sheets?

WHERE filtra linhas com base em condições. Sintaxe: =QUERY(A1:D100, "SELECT * WHERE B > 1000"). Para texto, use aspas simples: "WHERE A = 'Produto'". Combine condições com AND/OR: "WHERE B > 1000 AND C < 5000". Use CONTAINS para correspondências parciais: "WHERE A CONTAINS 'Gerente'".

Como agrupo dados em QUERY como uma tabela dinâmica?

Use GROUP BY com funções de agregação. Sintaxe: =QUERY(A1:D100, "SELECT A, SUM(B) GROUP BY A"). Isto soma a coluna B para cada valor único na coluna A. Toda coluna em SELECT deve estar em GROUP BY ou ser uma agregação (SUM, AVG, COUNT, MIN, MAX). Adicione LABEL para renomear colunas de resultado.

Qual é a diferença entre QUERY e FILTER no Google Sheets?

FILTER retorna linhas correspondentes a condições, mas não pode agregar, ordenar dentro da fórmula ou selecionar colunas específicas. QUERY faz tudo isso com sintaxe SQL. Use FILTER para filtragem simples de linhas, QUERY para análise complexa com WHERE, GROUP BY, ORDER BY e agregações. QUERY é mais poderosa, mas tem curva de aprendizado mais acentuada.

Como faço para tornar as fórmulas QUERY dinâmicas com referências de célula?

Use concatenação para inserir valores de célula em strings de consulta: =QUERY(A1:D100, "SELECT * WHERE B > "&E2). Para valores de texto, adicione aspas: =QUERY(A1:D100, "SELECT * WHERE A = '"&E2&"'"). Para datas: "WHERE B > DATE '"&TEXT(E2, "yyyy-mm-dd")&"'". Consultas dinâmicas se atualizam automaticamente quando as células referenciadas mudam.