Como usar a função QUERY no Google Sheets passo a passo

Última atualização: 26/05/2026

  • A função QUERY permite filtrar, classificar, agrupar e pivotar dados no Google Sheets usando uma sintaxe semelhante à de SQL em intervalos de células.
  • As cláusulas principais (SELECT, WHERE, GROUP BY, PIVOT, ORDER BY, LIMIT, OFFSET, LABEL e FORMAT) podem ser combinadas em uma ordem fixa para criar relatórios avançados.
  • A função lida com tipos de dados como texto, números e datas/horas, e oferece funções escalares e de agregação para cálculos dinâmicos.
  • A função QUERY funciona tanto com planilhas comuns quanto com tabelas do Google Sheets e pode combinar dados de várias planilhas ou até mesmo de outras fontes usando IMPORTRANGE e ferramentas ETL.

Como usar a função QUERY no Google Sheets

¿Como usar a função QUERY no Google Sheets? Se você trabalha com Excel Quer você trabalhe com planilhas diariamente ou não, mais cedo ou mais tarde precisará de algo mais poderoso do que simples filtros e somas. A função CONSULTA do Google Sheets É como um canivete suíço que permite tratar seus dados como um banco de dados SQL, mas sem sair da planilha ou configurar nada complicado. É uma daquelas ferramentas que, depois que você domina, muda completamente a forma como organiza seus relatórios.

Neste artigo, você verá em detalhes como usar a função QUERY no Google Sheets para Filtrar, classificar, agrupar, pivotar, formatar e combinar. Dados de uma forma muito flexível. Você verá a relação com o SQL, o que exatamente cada cláusula faz (SELECT, WHERE, GROUP BY, PIVOT, ORDER BY, LIMIT, OFFSET, LABEL e FORMAT), como se comporta com datas, horas e texto, e também como usá-lo com dados distribuídos em várias planilhas ou mesmo com intervalos que têm o formato de tabela do Google Sheets.

O que é QUERY no Google Sheets e por que se parece tanto com SQL?

A função QUERY no Google Sheets é uma fórmula que executa um tipo de... Linguagem de consulta semelhante a SQL em um intervalo de células. Você pode pensar na sua planilha como uma tabela de banco de dados: cada coluna é um campo e cada linha é um registro. Com a função QUERY, você pode solicitar ao Planilhas Google que retorne apenas as linhas e colunas de seu interesse, para realizar agregações, alterar a formatação, renomear colunas e assim por diante, sem modificar a tabela original.

Tecnicamente, a função é baseada em Linguagem de consulta da API de visualização do Google (Linguagem de Consulta da API de Visualização do Google). É muito semelhante ao SQL padrão, embora tenha sua própria sintaxe e alguns recursos exclusivos. Por exemplo, usa identificadores de coluna como A, B, C ou Col1, Col2… em vez de nomes de campo e possui funções específicas para lidar com datas, horas ou strings.

Uma grande vantagem é que a função QUERY combina em uma única fórmula o que você normalmente faria com várias funções, como FILTRAR, CLASSIFICAR, SOMASES, PROCV E assim por diante. Isso torna suas planilhas mais organizadas e fáceis de manter, especialmente ao criar painéis ou relatórios que dependem de muitos dados.

Sintaxe básica da função QUERY no Google Sheets

Planilhas Google

A estrutura geral da função, em espanhol, é:

=CONSULTA(dados; consulta; )

Ou, se a sua interface estiver em inglês:

=CONSULTA(intervalo_de_dados, consulta, )

Onde o argumento dados (ou intervalo_de_dados) é o intervalo de células no qual você deseja executar a consulta. Pode ser algo como A2:E100, um intervalo em outra planilha (Dados!A1:F500) ou até mesmo uma combinação de intervalos usando chaves para criar matrizes. O importante é que cada coluna contenha principalmente um único tipo de dado. texto, número/moeda ou data/horaPorque a instrução QUERY infere o tipo de acordo com a maioria e trata a minoria como nula.

O segundo argumento, consultaEsta é uma cadeia de texto contendo a consulta na linguagem da API de visualização. Ela está entre aspas duplas ou pode ser uma referência a uma célula que contém o texto. Por exemplo:
=CONSULTA('Dados'!A:L; «selecione *»)

O terceiro parâmetro, títulosEsta opção é opcional e indica quantas das primeiras linhas do intervalo são consideradas cabeçalhos. Se você omitir, o Planilhas Google tentará detectar isso automaticamente; se você inserir 0, ele tratará tudo como dados; se inserir 1, ele assumirá que a primeira linha do intervalo contém cabeçalhos e assim por diante.

Tipos de literais que o QUERY entende (texto, números e datas)

Na seção de consulta, ao filtrar ou comparar valores, você precisa usar literaisEsses são os valores diretos que você insere na string de consulta e podem ser de vários tipos: strings, números ou datas/horas, cada um com sua própria sintaxe específica.

O sequências de texto Eles são delimitados por aspas simples ou duplas, e a comparação diferencia maiúsculas de minúsculas. Exemplos: "primeiro dia", "uma pessoa", "hambúrguer". Quando você filtra com WHERE ou usa operadores como começa com, termina com, contém, é semelhante a ou combina comVocê trabalhará principalmente com esse tipo de texto literal.

O números Eles são escritos na notação decimal normal: 1, 2.5, 7.15, -20.0, 0.8… Esses são os números que você passará para operadores numéricos ou funções de agregação como soma, média, mínimo, máximoLembre-se de que, se você misturar números com texto na mesma coluna, a função QUERY tentará determinar qual tipo predomina; qualquer valor que não corresponder ao tipo escolhido será considerado nulo.

O datas e horários Elas possuem uma sintaxe um pouco mais específica. São construídas com palavras-chave como DATE, TIMEOFDAY, TIMESTAMP ou DATETIME, seguidas pelo valor no formato ISO: aaaa-MM-dd para datas, HH:mm:ss para horários e aaaa-MM-dd HH:mm:ss para data e hora. Isso é importante ao inserir literais de data diretamente na consulta.

Cláusulas QUERY: a ordem correta e a função de cada uma.

A linguagem de consulta usada pelo comando QUERY possui 9 cláusulas principais. Você não precisa usar todas, mas se combinar várias delas, elas devem estar em uma ordem específica. Essa ordem é: SELECT, WHERE, GROUP BY, PIVOT, ORDER BY, LIMIT, OFFSET, LABEL e FORMAT.Cada um adiciona uma camada de lógica sobre o resultado anterior.

A cláusula SELECIONAR Defina quais colunas você deseja retornar e em qual ordem. Se você não especificar, a função QUERY se comportará como se você tivesse usado "select *" e retornará todas as colunas do intervalo de dados em sua ordem original.

A cláusula ONDE É usado para filtrar linhas com base em condições. Você pode combinar condições com AND, OR e NOT, usar operadores numéricos como <, <=, >, >=, =, !=, <> e funções de texto como começa com, termina com, contém, corresponde ou é semelhante a, além de verificar valores nulos com IS NULL e IS NOT NULL.

A cláusula AGRUPAR POR Agrupa linhas que compartilham os mesmos valores em uma ou mais colunas, de forma semelhante ao GROUP BY em SQL. Cada grupo é reduzido a uma única linha contendo o resultado das funções de agregação (soma, média, contagem, máximo, mínimo, etc.) aplicadas às colunas numéricas.

Com PIVÔ Você pode converter valores de uma coluna em cabeçalhos de coluna, criando tabelas dinâmicas a partir do seu intervalo original. Isso quase sempre é usado em combinação com funções de agregação e frequentemente com GROUP BY para obter tabelas cruzadas mais ricas.

ENCOMENDAR POR Ordene os resultados por uma ou mais colunas, em ordem crescente (ASC) ou decrescente (DESC). Se você não especificar nada, a ordem padrão será crescente. Você pode ordenar por identificadores de coluna ou por resultados de agregação.

LIMITE reduz o número de linhas retornadas a um máximo predeterminado, enquanto DESVIO Ignora as primeiras N linhas do resultado antes de exibi-lo. Combinadas, permitem a paginação ou a exclusão de cabeçalhos indesejados dentro do próprio resultado.

Conteúdo exclusivo - Clique aqui  Como acessar reuniões gravadas do Google Meet

A cláusula RÓTULO Permite renomear os cabeçalhos das colunas na tabela resultante. Isso é muito útil para garantir que o relatório final tenha nomes legíveis em vez de IDs como "soma(I)" ou "G*H".

Finalmente, FORMATAR Aplica formatos específicos a colunas numéricas, de data, hora ou data e hora. Você pode definir padrões como "dd-mmm-aaaa" para datas ou "##.00" para números, para que a saída seja apresentável imediatamente.

SELECT em QUERY: escolhendo e combinando colunas

Como criar um orçamento do zero no Google Sheets

A cláusula SELECT é a base de qualquer consulta. Ela especifica quais colunas serão retornadas e a ordem em que serão exibidas. Você pode usar letras de coluna (A, B, C…) ou identificadores genéricos, como... Col1, Col2, Col3, que se referem à primeira, segunda e terceira colunas do intervalo de dados, respectivamente.

O caso mais simples é uma instrução SELECT para tudo:

=CONSULTA('dados do Airtable'!A:I; «selecione *»)

Neste exemplo, o intervalo A:I é a tabela de origem e a string "select *" indica que você deseja todas as colunas. Se você quiser que a saída exclua os cabeçalhos, pode definir o terceiro parâmetro como 0. =QUERY('dados do Airtable'!A:I; «selecione *»; 0)Dessa forma, você obterá apenas os dados, o que é útil se você for usar esse resultado como base em outra fórmula.

Você também pode selecionar colunas específicas, por exemplo:

=QUERY('dados do Airtable'!A:I; «selecione C, E, I»)

Isso retornará apenas as colunas C, E e I do intervalo de dados. É muito comum combinar essa seleção com cláusulas WHERE, GROUP BY ou ORDER BY subsequentes para criar relatórios focados em algumas métricas-chave.

Quando seus dados estão distribuídos em várias abas, você pode uni-los verticalmente usando chaves e, em seguida, consultá-los como se fossem uma única tabela. Por exemplo:

=CONSULTA({'dados do Airtable'!A1:L; Plan1!A1:L; Plan2!A1:L}; «selecione * onde Col1 não é nulo»)

Aqui, cria-se uma matriz com três intervalos empilhados (um atrás do outro). `Col1` refere-se à primeira coluna do intervalo combinado, e a cláusula `WHERE`, `Col1 is not null`, filtra as linhas vazias. Se precisar de dados de uma planilha diferente, você pode combiná-los primeiro com IMPORTÂNCIA Em seguida, aplique a instrução QUERY nesse intervalo importado.

WHERE em QUERY: filtre linhas com condições simples e avançadas.

A cláusula WHERE é a sua ferramenta para extrair apenas as linhas que atendem a determinadas condições. Ela funciona com números, texto, datas e valores nulos, e suporta tanto operadores básicos quanto comparações mais avançadas com expressões regulares.

Um exemplo básico: filtrar por um valor numérico mínimo.

=QUERY('dados do Airtable'!A:I; «selecione C, E, I onde I >= 40»)

Neste caso, você obtém as colunas C, E e I, mas apenas das linhas em que a coluna I (por exemplo, preço total) é maior ou igual a 40. A chave é usar os operadores >=, <=, >, <, = ou != (ou <>), todos suportados pela função QUERY.

Se você deseja filtrar linhas como vazias ou não vazias, não pode usar comparações diretas com valores nulos como faria com outros valores. Em vez disso, você precisa usar é nulo o não é nuloPor exemplo: onde A não é nulo, força a coluna A a ter algum valor.

Para condições compostas, você usa e, ou e não. Por exemplo:

=QUERY('dados do Airtable'!A:I; «selecione C, E, I onde I >= 40 e não E = 'sanduíche Denver'»)

A consulta anterior filtra por dois critérios: que o valor de I seja maior ou igual a 40 e que a coluna E não contenha exatamente "Denver sandwich". A cláusula NOT se aplica à comparação E = 'Denver sandwich', portanto, você exclui essas linhas.

Para pesquisas de texto um pouco mais flexíveis, você tem operadores como começa com, termina com, contém, gosta de e combina comPor exemplo, se você quiser os produtos cuja descrição começa com C e o nome do cliente também começa com K, você pode escrever:

=QUERY('dados do Airtable'!A:I; «selecione C, E, I onde E começa com 'C' e C é como 'K%'»)

Aqui, `começa com 'C'` verifica o início exato do texto e `como 'K%'` realiza uma comparação com curinga, onde `%` representa qualquer número de caracteres. Se você precisar de algo ainda mais poderoso, então `` entra em ação. partidas, que permite o uso de expressões regulares.

Por exemplo, para obter apenas as linhas em que a coluna E seja exatamente "Sanduíche de bife":

=QUERY('dados do Airtable'!A:L; «selecione C, E, I onde E corresponde a 'Sanduíche de bife'»)

E para aceitar qualquer variação que contenha a palavra "sanduíche" no meio da sequência, você poderia escrever:

=QUERY('dados do Airtable'!A:L; «selecione C, E, I onde E corresponde a '.*sanduíche.*'»; 1)

Nesta versão mais recente, .* é um padrão RegEx padrão que significa "qualquer sequência de caracteres" antes ou depois da palavra "sanduíche", permitindo correspondências parciais muito flexíveis.

Funções de agrupamento e agregação: resumos e totais com QUERY

Quando você precisa resumir dados, por exemplo, calculando o total de vendas por cliente ou o salário médio por departamento, a combinação de Funções de AGRUPAMENTO e agregação É isso que faz do QUERY uma mini ferramenta de BI dentro do Google Sheets.

As funções de agregação disponíveis incluem, entre outras, soma(col), média(col), mínimo(col), máximo(col) e contagem(col)Normalmente, são aplicadas a colunas numéricas e utilizadas nas cláusulas SELECT, ORDER BY, LABEL e FORMAT, bem como em conjuntos de dados que já podem estar agrupados ou com tabelas de eventos dinâmicos.

Um exemplo simples: some o valor total por cliente. Imagine que a coluna C seja o nome do cliente e a coluna I seja o valor de cada pedido. Você poderia escrever:

=QUERY('dados do Airtable'!A:I; «selecione C, soma(I) agrupe por C»)

Esta consulta agrupa todas as linhas que compartilham o mesmo valor em C (cada cliente) e, para cada grupo, calcula a soma da coluna I. O resultado é uma tabela com duas colunas: o nome do cliente e o total agregado.

Se você deseja agrupar por mais de um critério, por exemplo, por cliente e por outra coluna H (talvez uma categoria ou data), você pode usar:

=QUERY('dados do Airtable'!A:I; «selecione C, H, sum(I) agrupe por C, H»)

Lembre-se de uma regra importante: Todas as colunas incluídas na instrução SELECT devem estar incluídas na cláusula GROUP BY ou envolvidas em uma função de agregação.Se você selecionar C, H e sum(I), então C e H devem estar na lista de colunas GROUP BY. Caso contrário, QUERY retornará um erro.

Se você não incluir uma cláusula GROUP BY, mas usar funções de agregação em SELECT, a agregação será feita com base nos valores de SELECT. o conjunto de dados completo. Por exemplo:

=QUERY('dados do Airtable'!A:I; «selecione min(B), count(C), max(I), avg(G), sum(I)»)

Aqui você obtém cinco pontos de dados globais em uma única linha: a data mais antiga em B, o número de elementos não nulos em C, o valor máximo de I, a média de G e a soma total de I. É uma maneira muito rápida de gerar totais gerais sem precisar usar cinco funções separadas.

PIVÔ em CONSULTA: converter valores em colunas no estilo de tabela dinâmica

Como usar o Excel para controlar despesas sem depender de aplicativos
Close de mãos usando um computador portátil com a tela exibindo dados de análise.

A cláusula PIVOT permite transformar valores distintos em uma coluna em novas colunasIsso funciona de forma semelhante a uma tabela dinâmica. É muito útil para obter visões transversais dos seus dados, por exemplo, produtos por cliente, meses por categoria, etc.

Se você usar a função PIVOT sem GROUP BY e os valores na coluna que você está usando como pivô se repetirem em linhas diferentes, a função QUERY agregará automaticamente essas linhas usando as funções especificadas. Sem GROUP BY, você normalmente obterá uma única linha de resultado representando todos os dados combinados.

Conteúdo exclusivo - Clique aqui  Como recuperar um projeto excluído no CapCut passo a passo

Um exemplo simples: some uma coluna G de preços agrupados por produto E como colunas:

=CONSULTA('dados do Airtable'!A:I; «selecione soma(G) pivote E»)

Nesse caso, cada valor distinto na coluna E se tornará sua própria coluna na saída, e a única linha que você verá mostra a soma de G para cada produto. É uma espécie de "total por coluna".

Se você deseja que cada linha represente um cliente e as colunas representem produtos, pode combinar GROUP BY e PIVOT. Por exemplo:

=QUERY('dados do Airtable'!A:I; «selecione C, soma(G) agrupe por C pivote E»; 1)

Essa consulta retornará uma tabela onde a primeira coluna contém o cliente (C) e as colunas restantes correspondem a cada produto (E). Em cada interseção cliente-produto, você verá a soma de G (valor) para essa combinação. É uma maneira muito eficaz de criar tabelas de contingência diretamente na planilha.

ORDER BY na CONSULTA: classifique os resultados por texto, número ou data.

A cláusula ORDER BY é muito semelhante à cláusula SQL e permite que você classificar os resultados de acordo com uma ou mais colunas. Se você não especificar a ordem, ela será considerada crescente (ASC) por padrão; para inverter a ordem, você deve adicionar DESC.

Um exemplo típico: ordenar por ID do pedido em ordem crescente, ignorando linhas vazias:

=QUERY('dados do Airtable'!A:I; «selecione * onde A não é nulo, ordene por A»)

A inclusão de WHERE A IS NOT NULL é importante para evitar que linhas vazias (que o QUERY às vezes considera como parte do intervalo) apareçam no início ou no fim da sua tabela ordenada.

Se desejar uma ordem decrescente, basta adicionar DESC após o identificador da coluna:

=QUERY('dados do Airtable'!A:I; «selecione * order by A desc»)

Você também pode classificar por data. Se, por exemplo, a data do seu pedido estiver na coluna B, você pode fazer o seguinte:

=QUERY('dados do Airtable'!A1:L21; «selecione * ordene por B»; 1)

Isso organizará as linhas em ordem cronológica crescente. Se você quiser o registro mais recente primeiro, deverá alterar a cláusula para ORDER BY B DESC. A consulta trata datas como números internos, portanto, a ordem funciona exatamente da mesma forma que com números.

Em consultas mais complexas, você pode ordenar por mais de uma coluna, especificando a direção de cada uma: por exemplo, `order by A, B desc` ordena primeiro por A em ordem crescente e, dentro de cada grupo de A, por B em ordem decrescente. Especificar a direção para cada coluna é fundamental se você deseja combinações de diferentes direções de ordenação.

LIMIT e OFFSET: controlam quantas linhas a CONSULTA retorna.

Ao lidar com grandes volumes de informação, você pode não querer ver o resultado completo de uma só vez. As cláusulas LIMITE e DESLOCAMENTO Elas permitem cortar e mover o conjunto de linhas retornado com muita facilidade.

A cláusula LIMIT limita o número de linhas exibidas (excluindo a linha de cabeçalho original do intervalo, que é tratada pelo parâmetro headers). Por exemplo, para obter apenas as 5 primeiras linhas de um intervalo:

=QUERY('dados do Airtable'!A:I; «selecione * limite 5»)

Aqui você receberá no máximo 5 linhas de dados, mais o cabeçalho, caso você o tenha definido no terceiro argumento ou se ele tiver sido detectado automaticamente.

A cláusula OFFSET, por outro lado, indica quantas linhas do início do resultado devem ser ignoradas antes de exibir o conteúdo. Por exemplo, para ignorar as 10 primeiras linhas:

=QUERY('dados do Airtable'!A:I; «selecione * deslocamento 10»)

Se você combinar LIMIT e OFFSET, esteja ciente de que, embora OFFSET apareça depois de LIMIT na sintaxe, na realidade é aplicado primeiroOu seja, primeiro as linhas indicadas por OFFSET são ignoradas e, em seguida, as linhas indicadas por LIMIT são contadas. Por exemplo:

=QUERY('dados do Airtable'!A:I; «select * limit 5 offset 10»)

Esta consulta omite as 10 primeiras linhas do conjunto de dados original e retorna 5 linhas de resultados. Isso é útil, por exemplo, para paginação ou para ignorar blocos de dados que você já processou em outro lugar.

RÓTULO e FORMATO: renomeando colunas e formatando com CONSULTA

Frequentemente, após a aplicação de funções de agregação ou o cálculo de colunas derivadas, os cabeçalhos retornados pela função QUERY não são muito amigáveis ​​ao usuário (por exemplo, "sum(I)" ou "G*H"). A cláusula RÓTULO Isso permite atribuir nomes mais legíveis a essas colunas diretamente da consulta.

Por exemplo, se você tiver uma consulta que retorne todas as colunas e quiser renomear C para "cliente", E para "hambúrguer" e I para "total pago", você pode escrever:

=QUERY('dados do Airtable'!A:I; «select * label C 'cliente', E 'Hambúrguer', I 'Total pago'»)

A sintaxe consiste em especificar o identificador da coluna (ou a expressão, como sum(I)) seguido pela palavra label e, entre aspas simples, o novo nome. Você pode listar vários rótulos separados por vírgulas na mesma cláusula.

A cláusula FORMATARPor outro lado, é usado para definir o formato de saída para colunas numéricas, de data, hora e data e hora. É semelhante à formatação de células personalizada do Google Sheets e é aplicado sem afetar a formatação original das células da planilha.

Um exemplo de uso combinado de LABEL e FORMAT seria:

=QUERY('dados do Airtable'!A:J; «selecione B, G, I, J rótulo J 'Hora' formato B 'dd-mmm-yyyy', G '##.00', I '##.000', J 'HH'»)

Neste caso, a consulta extrai as colunas B, G, I e J. Em seguida, altera o rótulo da coluna J para "Hora" e aplica a formatação: B como data com dia-mês-ano abreviado, G com duas casas decimais, I com três casas decimais e J mostrando apenas a hora no formato de 24 horas. Isso resulta em uma saída com aparência muito mais profissional.

Operadores aritméticos e funções escalares em QUERY

As fórmulas mais importantes do Excel para começar do zero como um profissional - 4

Além das funções de agregação, o comando QUERY inclui operadores aritméticos básicos (+, -, *, /) e funções escalares que servem para transformar valores de uma coluna em outros tipos de dados ou em derivados úteis (ano, mês, dia, hora, maiúsculas/minúsculas, etc.).

Os operadores aritméticos permitem realizar cálculos diretamente na consulta. Por exemplo, se G for o preço unitário e H for a quantidade, você pode criar uma coluna com o total multiplicando ambos:

=QUERY('dados do Airtable'!A:I; «selecione C, I, G*H rótulo G*H 'Multiplicação aritmética'»)

A consulta extrai C, I e o resultado de G*H, e renomeia a última coluna para LABEL. Isso evita a necessidade de criar uma coluna auxiliar na planilha para o cálculo; tudo é tratado dentro da própria consulta.

As funções escalares são aplicadas a um valor e retornam outro. Existem várias famílias: aquelas que trabalham com DATA ou DATA E HORA, aqueles que fazem isso com DATETIME ou TIMEOFDAY, aqueles que convertem para maiúsculas ou minúsculas, aqueles que calculam diferenças de datas e aqueles que convertem tipos.

Por exemplo, para dividir uma data (coluna B) em ano, mês, dia, trimestre e dia da semana, você poderia escrever:

=QUERY('dados do Airtable'!A:I; «selecione ano(B), mês(B), dia(B), trimestre(B), dia da semana(B)»)

Da mesma forma, se você tiver valores de data e hora ou hora do dia na coluna K e quiser extrair a hora, os minutos, os segundos e os milissegundos, você usaria:

=QUERY('dados do Airtable'!A:K; «selecione hora(K), minuto(K), segundo(K), milissegundo(K)»)

Para manipular texto, existem as funções. mais baixo() y superior()que convertem strings para minúsculas ou maiúsculas. Por exemplo, se você quiser obter o nome do cliente em ambas as variantes da coluna C:

=QUERY('dados do Airtable'!A:I; «selecione lower(C), upper(C)»)

Muito útil quando você vai usar esses resultados como chaves de junção posteriormente e deseja evitar problemas de maiúsculas e minúsculas.

Conteúdo exclusivo - Clique aqui  Como usar a Busca do Google sem o novo modo de IA e voltar à busca clássica.

Calcule as diferenças entre datas e trabalhe com now() e toDate().

Outra função escalar muito prática é diferençaDeData()Esta função calcula a diferença entre duas datas ou horários e retorna um número (em dias). Ela aceita dois parâmetros do tipo DATE ou DATETIME. Por exemplo, se as suas datas estiverem nas colunas B e K, você pode calcular a diferença entre elas da seguinte forma:

=QUERY('dados do Airtable'!A:K; «select dateDiff(B, K) label dateDiff(B, K) 'Diferença entre duas datas, em dias'»)

Esta consulta retornará uma coluna com o número de dias entre a data B e a data K para cada linha e renomeará a coluna com um rótulo mais descritivo. É ideal para calcular durações, prazos ou tempo decorrido.

Se você deseja medir a diferença entre uma data na tabela e a hora atual, a função entra em ação. agora()que não requer parâmetros e retorna a data e hora atuais como um objeto datetime. Combinado com dateDiff, você poderia ter algo assim:

=QUERY('dados do Airtable'!A:K; «select dateDiff(B, now()) label dateDiff(B, now()) 'Diferença entre a data atual e agora, em dias')

Dessa forma, cada recálculo da planilha atualizará a diferença em dias entre a data B e o momento atual, o que é muito útil para acompanhar prazos ou tarefas pendentes.

Finalmente, a função a data() Isso permite converter um valor no formato datetime, ou mesmo um número, em um tipo DATE puro. Se você tiver um valor datetime na coluna K e estiver interessado apenas na data, poderá usar:

=CONSULTA('dados do Airtable'!A:K; «selecione toDate(K)»)

A consulta retornará apenas a parte da data, omitindo a hora. Isso simplifica bastante as comparações ou agrupamentos por data, sem a necessidade de limpar a coluna original previamente.

Utilizando a função QUERY com várias planilhas, intervalos combinados e tabelas do Google Sheets.

A função QUERY não se limita a trabalhar com uma única folha plana. Você pode fazer referências. páginas diferentes dentro do mesmo documentoVocê pode combinar intervalos horizontalmente ou verticalmente e, muito importante, também pode usar essa função em intervalos formatados como uma tabela do Planilhas Google: no final, o que importa é o intervalo de células, não a formatação visual.

Para usar dados de outra planilha no mesmo arquivo, basta preceder o intervalo com o nome da planilha e um ponto de exclamação. Exemplo:

=CONSULTA(Dados!A1:E14; «selecione *»)

Se o nome da planilha contiver espaços ou caracteres especiais, você deverá colocá-lo entre aspas simples, assim:
=CONSULTA('Planilha com um nome estranho'!A1:E14; «selecione *»)

Se você deseja combinar várias fontes de dados verticalmente (o que em SQL seria equivalente a uma UNION), pode usar chaves e ponto e vírgula para empilhar intervalos com a mesma estrutura. Por exemplo:

=CONSULTA({Planilha1!A1:E; Planilha2!A1:E}; «selecione *»)

Isso unirá as linhas da Planilha1 e da Planilha2 uma abaixo da outra. Os identificadores de coluna (A, B, C… ou Col1, Col2…) serão aplicados ao conjunto combinado. Por outro lado, se você quiser combinar intervalos horizontalmente (como uma junção por índice de linha), você usaria chaves com vírgulas em vez de ponto e vírgula:

=CONSULTA({Planilha1!A1:B; Planilha2!A1:B}; «selecione *»)

Neste caso, as colunas da Planilha2 são adicionadas à direita das colunas da Planilha1, assumindo que o número de linhas seja o mesmo e que cada linha correspondente possa ser alinhada diretamente.

Com relação a Tabelas do Google Sheets (Os novos intervalos com cabeçalhos, filtros rápidos e formatação personalizada) são essenciais porque, internamente, permanecem intervalos de células normais. Sim, você pode usar a função QUERY neles sem problemas. Basta usar o intervalo de células da tabela como primeiro argumento da função QUERY, por exemplo, A1:D500, mesmo que esteja visualmente configurada como uma tabela. Se você quiser selecionar linhas onde a "Data de Publicação" esteja dentro de um intervalo de datas específico, basta especificar a coluna correspondente nas cláusulas SELECT e WHERE e, se desejar, referenciar os prazos em células externas para não precisar digitá-los manualmente na string de consulta.

Se você quiser passar essas linhas filtradas para uma função personalizada (por exemplo, um script do Apps Script), pode usar a saída de QUERY como entrada para essa função, já que ela retorna uma matriz normal que as funções personalizadas podem processar linha por linha.

CONSULTA versus outras ferramentas: quando usar fórmulas e quando usar ETL

É verdade que a função QUERY resolve uma enorme quantidade de casos de uso, mas também é verdade que, quando os fluxos de dados se tornam complexos (múltiplas fontes, atualizações frequentes, muitas regras de transformação), gerenciar tudo exclusivamente com fórmulas pode se tornar... difícil de manter e propenso a erros, e se você trabalha com arquivos do Excel é bom saber. Como evitar que o Excel trave ao lidar com planilhas grandes.

Em cenários mais avançados, faz sentido usar ferramentas ou conectores ETL que integram dados em tempo real ao Google Sheets e permitem transformações sem a necessidade de escrever uma única fórmula. Plataformas como o Coupler.io, por exemplo, permitem importar dados de outras planilhas, CRMs, bancos de dados ou aplicativos SaaS, ocultar/exibir colunas, definir filtros e opções de classificação e adicionar visualmente colunas calculadas.

Essas soluções têm vantagens claras: você economiza tempo, reduz o risco de cometer erros em fórmulas de consulta complexas e mantém a organização. dados atualizados automaticamente (por exemplo, a cada 15 minutos) e, em geral, você facilita o trabalho com os dados para outros usuários menos técnicos, sem que eles precisem aprender a linguagem de consulta.

Ainda assim, dominar o comando QUERY continua sendo altamente recomendável: ele oferece controle preciso sobre o que acontece na planilha, treina você em uma sintaxe muito próxima à do SQL (o que prepara você para migrar para data warehouses como o BigQuery) e, em muitos contextos, é a opção mais rápida para criar relatórios robustos sem instalar nada adicional.

Resumindo, a função QUERY no Google Sheets é uma das ferramentas mais flexíveis para manipular dados em uma planilha: Ela combina filtragem avançada, classificação, agregações, tabelas dinâmicas, formatação e mesclagem de intervalos em uma única fórmula.Tudo isso é feito com uma sintaxe inspirada em SQL. Seja começando com uma tabela simples ou várias planilhas interligadas, ela permite modelar dados complexos, automatizar relatórios e, no processo, adquirir uma base sólida em linguagens de consulta que será muito útil ao trabalhar com bancos de dados mais robustos no futuro.

Artigo relacionado:
Como usar o Excel