De QUERY-functie in Google Sheets brengt de kracht van SQL naar je spreadsheet. In een enkele cel filter, sorteer en groepeer je grote hoeveelheden data zonder dat je rijen handmatig hoeft te selecteren.
De opbouw is =QUERY(bereik; querytekst). Het bereik is je data en de querytekst is een opdracht in de Google Visualisatie-querytaal. Die taal lijkt sterk op SQL, maar verwijst naar kolommen met letters zoals A, B en C in plaats van met kolomnamen.
De basisclausules
Een query bestaat uit clausules die je achter elkaar zet. De volgorde ligt vast: eerst select, dan where, dan group by, dan order by en als laatste limit.
| Clausule | Wat doet het | Voorbeeld |
|---|---|---|
select |
Kiest kolommen | select A, B |
where |
Filtert rijen | where C > 100 |
group by |
Groepeert | group by A |
order by |
Sorteert | order by B desc |
limit |
Beperkt het aantal | limit 10 |
Een complete query ziet er zo uit: =QUERY(A1:D100; "select A, C where C > 100 order by C desc limit 5"). Dit toont de vijf rijen met de hoogste waarde in kolom C.
Querytekst tussen aanhalingstekens
Zet de querytekst altijd tussen aanhalingstekens en gebruik kolomletters, niet de koptekst. Sheets kent de kolommen alleen via hun letter binnen het opgegeven bereik. Gebruik je een Nederlandse locale, dan scheid je de argumenten met een puntkomma; in een Engelse locale met een komma.
Filteren en groeperen
De where-clausule filtert op voorwaarden. De group by-clausule vat samen, bijvoorbeeld om de omzet per regio op te tellen.
Omzet per regio optellen
- Zet de regio's in kolom A en de bedragen in kolom B.
- Klik in een lege cel.
- Typ
=QUERY(A1:B100; "select A, sum(B) group by A order by sum(B) desc"). - Druk op Enter. Sheets toont per regio het opgetelde bedrag, van hoog naar laag.
Regel voor group by
In een group by-query moet elke kolom in de select ofwel in de group by staan ofwel een aggregatie zijn zoals sum, avg, count of max. Anders geeft Sheets een foutmelding over een onjuiste groepering.
QUERY combineren met andere functies
QUERY wordt nog krachtiger in combinatie met andere functies, bijvoorbeeld om data uit een ander bestand te halen of om op datum en tekst te filteren.
Met IMPORTRANGE. Wikkel IMPORTRANGE in QUERY: =QUERY(IMPORTRANGE("sheet-url"; "Blad1!A:D"); "select Col1, Col3 where Col3 > 100"). Let op dat je hier Col1 en Col3 gebruikt in plaats van letters.
Met een datumfilter. Filter op datum met het date-trefwoord: =QUERY(A1:C100; "select A, C where B > date '2026-01-01'") toont alleen rijen na die datum. De notatie is altijd jaar-maand-dag.
Met tekst zoeken. Gebruik contains of like: =QUERY(A1:B100; "select A where A contains 'Amsterdam'") filtert op een tekstdeel.
IMPORTRANGE gebruikt Col-verwijzingen
Combineer je QUERY met IMPORTRANGE, dan verwijs je naar kolommen met Col1, Col2 enzovoort in plaats van met A, B. Dat is een veelgemaakte fout die een lege of foutieve uitkomst geeft.
Veelvoorkomende valkuilen
Een paar dingen die vaak misgaan bij QUERY:
- Gemengde datatypes in een kolom. Staan er getallen en tekst door elkaar in dezelfde kolom, dan negeert QUERY soms een deel van de waarden. Maak de kolom consistent of dwing het type af.
- Koptekst meegeteld. Voeg eventueel
label-clausules toe of geef een extra argument mee voor het aantal kopregels, zodat je kop niet als data wordt behandeld. - Hoofdletters in trefwoorden. De clausules zelf zijn niet hoofdlettergevoelig, maar tekstwaarden bij
containsen=wel.Amsterdamis niet hetzelfde alsamsterdam.
Welke taal gebruikt de QUERY-functie?
De Google Visualisatie-querytaal. Die lijkt op SQL met clausules als select, where, group by en order by, maar verwijst naar kolommen met letters.
Hoe filter ik op een datum in QUERY?
Gebruik het date-trefwoord met de notatie jaar-maand-dag, bijvoorbeeld where B > date '2026-01-01'. Zet de datum tussen enkele aanhalingstekens binnen de querytekst.
Kan ik QUERY op data uit een ander bestand gebruiken?
Ja, wikkel IMPORTRANGE in QUERY. Verwijs dan naar kolommen met Col1, Col2 in plaats van letters, en geef de andere spreadsheet eenmalig toegang.
Waarom werkt mijn group by niet?
Elke geselecteerde kolom moet in de group by staan of een aggregatie zijn. Een gewone kolom zonder sum, count of avg buiten de group by geeft een fout.
Moet ik een puntkomma of een komma gebruiken tussen de argumenten?
Dat hangt af van je locale. Een Nederlandse spreadsheet gebruikt een puntkomma tussen bereik en querytekst, een Engelse een komma. Binnen de querytekst scheid je kolommen altijd met een komma.
De QUERY-functie is een van de krachtigste tools in Sheets voor rapportage. Begin met een eenvoudige select en where, en voeg group by en order by toe zodra je samenvattingen nodig hebt.