Naar inhoud
hulpbij
hulpbijsheets

QUERY-fout in Google Sheets oplossen (2026)

Los een QUERY-fout in Google Sheets op. Controleer de querytekst, kolomnotatie, gegevenstypen, aanhalingstekens en het aantal koprijen.

De melding Unable to parse query string for Function QUERY parameter 2 betekent dat de QUERY-functie geldig is, maar de querytekst in het tweede argument niet. Test eerst met select * en voeg daarna kolommen en clauses één voor één terug, in de verplichte volgorde en met identifiers die bij het data-argument passen.

Welke laag geeft de fout?

De officiële QUERY-documentatie beschrijft drie argumenten:

=QUERY(data;query;[headers])

Het scheidingsteken kan in jouw bestand een komma zijn. De drie rollen blijven hetzelfde:

  1. data is het bereik of de array waarop je zoekt.
  2. query is tekst in de Google Visualization API Query Language.
  3. headers is het aantal koprijen bovenaan data.

Deze opbouw bevat twee talen. De buitenste formule volgt de syntaxis van Google Sheets. Alleen de tekst in parameter 2 volgt de querytaal.

  • Formula parse error: Sheets kan de buitenste formule niet lezen. Denk aan een verkeerd argumentscheidingsteken, ontbrekend haakje of niet-afgesloten dubbele quote. Gebruik dan de handleiding voor een algemene Formula parse error.
  • Unable to parse query string ... PARSE_ERROR: de buitenste formule is geaccepteerd, maar parameter 2 bevat ongeldige querytaal.
  • ... NO_COLUMN: de query verwijst naar een kolomidentifier die de gekozen datatabel niet heeft.
  • Onvolledige of lege uitkomst zonder parsefout: controleer gegevenstypen, voorwaarden en het headerargument.

Verpak de formule dus niet direct in IFERROR. Daarmee verdwijnt nuttige foutinformatie terwijl de query onhersteld blijft.

Stappenplan: QUERY parameter 2 repareren

1. Bewaar de volledige fouttekst en de invoer

Kopieer de formule naar een notitie of werk in een lege testcel. Noteer de exacte tekst na parameter 2, vooral PARSE_ERROR, NO_COLUMN en de positie die de melding noemt.

Controleer daarna of data het bedoelde bereik bevat. Een query die kolom D gebruikt terwijl het data-argument alleen A2:C100 omvat, kan die kolom niet vinden. Kijk ook of de bronformule zelf een fout bevat. Bij een importprobleem start je met IMPORTRANGE-fouten oplossen, niet met het herschrijven van de querytekst.

2. Vervang parameter 2 tijdelijk door select *

Maak de query zo klein mogelijk:

=QUERY(A1:D100;"select *";1)

Werkt dit, dan zijn de buitenste formule, het data-argument en de basisuitvoer bruikbaar. De fout zit in een clause of identifier die je hebt weggehaald.

Werkt select * niet, controleer dan eerst:

  • of het bereik bestaat;
  • of de argumentscheiding bij de spreadsheetinstellingen past;
  • of parameter 2 als tekst tussen dubbele aanhalingstekens staat;
  • of het resultaatgebied voldoende leeg is.

Een geldige query kan meerdere cellen vullen. Zie je een overschrijfconflict, volg dan de aanpak voor een arrayresultaat dat niet is uitgevouwen.

3. Kies A/B-notatie of Col-notatie

Google vermeldt dat QUERY zowel Col-notatie als letteridentifiers kan accepteren. Welke identifier je nodig hebt, hangt af van de datatabel die parameter 1 aanlevert.

Bij een rechtstreeks werkbladbereik gebruik je de werkbladletters:

=QUERY(A1:D100;"select A, D where C = 'Open'";1)

De zichtbare koppen, zoals Klant, Status of Bedrag, zijn labels en geen identifiers. Schrijf dus niet automatisch select Klant.

Bij een samengestelde array of de tabeluitvoer van een andere functie gebruik je doorgaans Col1, Col2 en verder. De telling begint bij de eerste kolom van die aangeleverde tabel:

=QUERY(IMPORTRANGE(F1;"Data!A:D");"select Col1, Col4 where Col3 = 'Open'";1)

Gebruik niet tegelijk A en Col2 voor dezelfde invoertabel. Geeft de fout NO_COLUMN: Col4, controleer dan of parameter 1 werkelijk vier kolommen teruggeeft. Wijzig niet blind naar een hogere of lagere Col-waarde.

De QUERY-functiepagina bevestigt beide notaties. De querytaalreferentie benadrukt bovendien dat een query kolomidentifiers gebruikt, niet de getoonde labels.

4. Zet clauses in de verplichte volgorde

De querytaal lijkt op SQL, maar is een eigen, beperktere taal. Volgens Google moet deze volgorde worden gebruikt:

  1. select
  2. where
  3. group by
  4. pivot
  5. order by
  6. limit
  7. offset
  8. label
  9. format
  10. options

Deze query staat bijvoorbeeld verkeerd omdat order by vóór where komt:

select A, D order by D where C = 'Open'

De geldige volgorde is:

select A, D where C = 'Open' order by D

Voeg geen from-clause toe. De querytaalreferentie vermeldt dat from uit deze taal is verwijderd. Parameter 1 van QUERY is al de databron.

5. Controleer quotes binnen en buiten parameter 2

De volledige query staat meestal tussen dubbele aanhalingstekens van de Sheets-formule. Gebruik binnen die query bij voorkeur enkele rechte aanhalingstekens voor tekst:

=QUERY(A1:D100;"select A, D where C = 'Open'";1)

Hier zijn "select ..." de grenzen van parameter 2 en zijn 'Open' de grenzen van de tekstliteral in de querytaal. Gekrulde quotes uit een tekstverwerker zijn geen veilige vervanging.

Een getal krijgt geen quotes:

where D >= 100

Een booleaanse waarde is true of false, eveneens zonder tekstquotes. Tekstwaarden en identifiers zijn hoofdlettergevoelig volgens de querytaalreferentie. where C = 'Open' hoeft daarom geen rijen met open te vinden.

6. Schrijf datums als queryliteral

Een datum in de querytekst gebruikt het woord date en de vaste vorm yyyy-MM-dd:

=QUERY(A1:D100;"select A, D where B >= date '2026-01-01'";1)

Schrijf dus niet de zichtbare Nederlandse datum 01-01-2026 als losse querywaarde. De querytaal definieert ook aparte literals voor datetime en timeofday.

Komt de grensdatum uit cel F1, bouw dan alleen de literal dynamisch op:

=QUERY(A1:D100;"select A, D where B >= date '"&TEXT(F1;"yyyy-MM-dd")&"'";1)

Controleer vooraf of kolom B en F1 echte datumwaarden zijn. Een tekstdatum die eruitziet als een datum is nog niet automatisch van het type date.

7. Controleer aggregaties en group by

Gebruik je sum, avg, count, min of max, dan gelden extra regels. Iedere geselecteerde kolom die niet wordt geaggregeerd, moet ook in group by staan:

=QUERY(A1:D100;"select C, sum(D) where A is not null group by C";1)

select C, D group by C is niet geldig als D niet is gegroepeerd of geaggregeerd. Gebruik in order by bij een aggregatie dezelfde berekening als dat nodig is, bijvoorbeeld order by sum(D) desc.

Voeg de aggregatie pas toe nadat select C, D of een andere eenvoudige selectie werkt. Daarmee scheid je een kolomprobleem van een groeperingsregel.

8. Normaliseer gemengde kolomtypen

Google Sheets bepaalt voor QUERY één type per bronkolom. Bij gemengde typen bepaalt het meerderheidstype het type voor de query; waarden van minderheidstypen worden als null behandeld.

Een bedragkolom met vooral getallen en enkele teksten zoals onbekend kan die teksten dus leeg laten lijken. Een datumkolom met vooral tekst en enkele echte datums reageert mogelijk niet zoals verwacht op een date-voorwaarde. Dit is geen PARSE_ERROR, maar het kan na syntactisch herstel een onvolledig resultaat geven.

Los dit vóór QUERY op:

  • maak bedragen consequent numeriek;
  • gebruik één echte datumstructuur;
  • verwijder toelichting uit een getalkolom;
  • zet codes met voorloopnullen bewust als tekst;
  • controleer foutwaarden in het bronbereik.

Zie je bij conversie een foutwaarde, gebruik dan de diagnose voor #VALUE! in Google Sheets. Maskeer gemengde brontypen niet met een brede IFERROR.

9. Stel het headerargument expliciet in

Het derde argument is het aantal koprijen bovenaan het data-argument, niet het rijnummer van je werkblad.

  • 0: het bereik begint direct met gegevens;
  • 1: de eerste rij van het bereik is één koprij;
  • 2: de eerste twee rijen vormen koppen.

Als het argument ontbreekt of -1 is, probeert Sheets het aantal te raden. Dat kan bruikbaar zijn bij duidelijke data, maar bemoeilijkt diagnose. Een verkeerd aantal kan de eerste gegevensrij als kop behandelen, een koprij als data meenemen en de typebepaling beïnvloeden.

Zet tijdens het testen daarom bewust 0 of 1:

=QUERY(A2:D100;"select A, D";0)

Hier begint het data-argument op rij 2 en zegt 0 dat rij 2 gewone data bevat.

10. Bouw de query clause voor clause terug

Start met select *. Voeg vervolgens toe en controleer na iedere stap:

  1. de gewenste select-kolommen;
  2. één eenvoudige where-voorwaarde;
  3. extra voorwaarden met expliciete haakjes;
  4. group by of pivot;
  5. order by;
  6. limit en offset;
  7. label en format.

De eerste toevoeging die de fout terugbrengt, bevat de oorzaak. Test daarna ook nul, één en meerdere passende rijen en controleer of de laatste kolom en koprij correct worden teruggegeven.

Veelgemaakte fouten

  • De zichtbare kolomkop als identifier gebruiken. Status is meestal een label; gebruik de passende letter of Col-identifier.
  • A/B- en Col-notatie mengen. Kies identifiers die bij de exacte tabel uit parameter 1 horen.
  • Een SQL-voorbeeld met from kopiëren. De Google Visualization-querytaal gebruikt hier geen from.
  • Clauses in vrije volgorde zetten. where hoort vóór group by en order by; label en format komen later.
  • Tekst en datums hetzelfde schrijven. Een datumliteral heeft date 'yyyy-MM-dd' nodig.
  • Het headerargument als werkbladrij lezen. Het is een telling van koprijen binnen het geselecteerde data-argument.
  • Gemengde datatypen negeren. Minderheidstypen worden voor QUERY als null behandeld.
  • Een QUERY-PARSE_ERROR als algemene formulefout behandelen. Repareer parameter 2 apart nadat de buitenste formule geldig is.

Officiële bronnen

Bekijk na herstel de Google Sheets-hub voor de overige foutdecoders en praktische handleidingen.

Veelgestelde vragen

Wat betekent 'Unable to parse query string for Function QUERY parameter 2'?
Google Sheets heeft de QUERY-functie zelf gelezen, maar kan het tweede argument niet verwerken als geldige Google Visualization API Query Language. Controleer de querytekst op kolom-ID's, clausevolgorde, aanhalingstekens, datums en ontbrekende woorden.
Wat is het verschil tussen QUERY PARSE_ERROR en Formula parse error?
Bij PARSE_ERROR in QUERY parameter 2 is de buitenste Sheets-formule geldig en zit de fout in de querytekst. Bij een algemene Formula parse error kan Sheets de formule zelf niet lezen, bijvoorbeeld door een verkeerd argumentscheidingsteken, ontbrekend haakje of niet-afgesloten buitenste tekst.
Hoe los ik NO_COLUMN op in Google Sheets QUERY?
Controleer of de genoemde kolom binnen het data-argument bestaat en gebruik een identifier die bij dat argument past. Bij een rechtstreeks werkbladbereik zijn letters zoals A en B gebruikelijk. Bij een samengestelde array of functie-uitvoer gebruik je doorgaans Col1, Col2 en verder, geteld vanaf de eerste invoerkolom.
Mag ik kolomkoppen gebruiken in een QUERY-query?
Nee. De zichtbare koptekst is een label en geen kolomidentifier. Gebruik de letter of Col-notatie die bij het data-argument hoort. Met de label-clause kun je de kop van het resultaat wel een gewenste tekst geven.
Hoe schrijf ik een datum in een Google Sheets QUERY?
Gebruik in de querytaal het woord date gevolgd door een tekenreeks in de vorm yyyy-MM-dd, bijvoorbeeld where B >= date '2026-01-01'. De datum moet in de bronkolom ook werkelijk als datum of numerieke datumwaarde worden herkend.
Waarom verdwijnen sommige waarden uit een QUERY-resultaat?
Wanneer één bronkolom gemengde typen bevat, bepaalt volgens Google het meerderheidstype het kolomtype voor QUERY. Waarden met een minderheidstype worden voor de query als null behandeld. Normaliseer de bronkolom naar tekst, getal of datum voordat je filtert of aggregeert.
Wat vul ik in bij het derde QUERY-argument voor headers?
Vul het aantal koprijen bovenaan het geselecteerde databereik in. Gebruik 0 als het bereik direct met gegevens begint en 1 bij één koprij. Als je het argument weglaat of -1 gebruikt, probeert Sheets het aantal te raden, wat bij onduidelijke data een verkeerde uitkomst kan geven.

Lees ook

Hulp nodig bij jouw situatie?

Kom je er niet uit? Stuur kort wat context, wat je wilt bereiken en waar je vastloopt. Vraag een offerte aan als je wilt dat ik het voor je oplos.

w.bouwmeester@bouwmeesterconsultancy.nl · +31 6 28963636