Hoe Google Sheets QUERY-functie gebruiken - standaardclausules en een alternatief hulpmiddel

  • Deel Dit
Michael Brown

Als je deze blog al een tijdje volgt, herinner je je misschien de QUERY-functie voor Google Sheets. Ik noemde het als een mogelijke oplossing voor een paar gevallen. Maar dat is lang niet genoeg om het volledige potentieel ervan bloot te leggen. Vandaag is het de hoogste tijd om deze spreadsheetsuperheld goed te leren kennen. En raad eens - een even opmerkelijke tool zal er ook zijn :)

Wist u dat de QUERY-functie van Google Sheets wordt beschouwd als de krachtigste functie in spreadsheets? De eigenaardige syntaxis ervan bevordert tientallen verschillende bewerkingen. Laten we proberen de onderdelen ervan op te splitsen om ze voor eens en altijd te leren, zullen we?

    Syntaxis van Google Sheets QUERY-functie

    Op het eerste gezicht is Google Sheets QUERY gewoon een functie met 1 optioneel en 2 verplichte argumenten:

    =QUERY(data, query, [headers])
    • gegevens is het te verwerken bereik. Vereist. Alles is glashelder hier.

      Opmerking. Slechts één klein geheugensteuntje hier, vastgesteld door Google: elke kolom moet één type gegevens bevatten: tekstueel, of numeriek, of booleaans. Als er verschillende types zijn, zal QUERY werken met het type dat het meest voorkomt. Andere types worden beschouwd als lege cellen. Vreemd, maar hou dat in gedachten.

    • query is de manier om de gegevens Vereist. Hier begint de pret. De QUERY-functie van Google Sheets gebruikt een speciale taal voor dit argument: Google Visualisatie API Querytaal Het is geschreven op een vergelijkbare manier als SQL. In principe is het een reeks speciale clausules (commando's) die worden gebruikt om de functie te vertellen wat te doen: selecteren, groeperen door, beperken, enz.

      Opmerking: het hele argument moet tussen dubbele aanhalingstekens staan. De waarden moeten op hun beurt tussen aanhalingstekens staan.

    • kopteksten is optioneel voor wanneer u het aantal koprijen in uw gegevens moet aangeven. Laat het argument weg (zoals ik hieronder doe), en Google Sheets QUERY zal het aannemen op basis van de inhoud van uw tabel.

    Laten we nu dieper ingaan op de clausules en wat ze doen.

    Clausules gebruikt in Google Sheets QUERY-formules

    Querytaal bestaat uit 10 clausules. Ze kunnen op het eerste gezicht afschrikken, vooral als je niet bekend bent met SQL. Maar ik beloof je, als je ze eenmaal leert kennen, krijg je een krachtig spreadsheetwapen tot je beschikking.

    Ik ga elke clausule behandelen en formulevoorbeelden geven aan de hand van deze lijst van denkbeeldige studenten en hun papieren onderwerpen:

    Ja, ik ben een van die mafkezen die denken dat Pluto een planeet zou moeten zijn :)

    Tip: binnen één Google Sheets QUERY-functie kunnen meerdere clausules worden gebruikt. Als u ze allemaal nestelt, zorg er dan voor dat u de volgorde van hun verschijnen in dit artikel aanhoudt.

    Selecteren (alle of specifieke kolommen)

    De allereerste zin - selecteer - wordt gebruikt om te vertellen welke kolommen u met Google Sheets QUERY moet teruggeven vanuit een ander blad of een andere tabel.

    Voorbeeld 1. Selecteer alle kolommen

    Om elke kolom op te halen, gebruik je selecteer met een sterretje - select *

    =QUERY(Papers!A1:G11,"select *")

    Tip. Als u de selecteer parameter, retourneert Google Sheets QUERY standaard alle kolommen:

    =QUERY(Papers!A1:G11)

    Voorbeeld 2. Selecteer specifieke kolommen

    Om alleen bepaalde kolommen te trekken, vermeldt u ze na de selecteer clausule:

    =QUERY(Papers!A1:G11, "select A,B,C")

    Tip. De kolommen van belang worden gekopieerd in dezelfde volgorde waarin u ze in de formule noemt:

    =QUERY(Papers!A1:G11, "select C,B,A")

    Google Sheets QUERY - Waar-clausule

    Google Sheets QUERY waarbij wordt gebruikt om de voorwaarden te stellen aan de gegevens die u wilt verkrijgen. Met andere woorden, het werkt als een filter.

    Als u deze clausule gebruikt, zal de QUERY-functie voor Google Sheets kolommen zoeken naar waarden die aan uw voorwaarden voldoen en alle overeenkomsten naar u terughalen.

    Tip. Waar kan functioneren zonder de selecteer clausule.

    Zoals gebruikelijk zijn er, om de voorwaarden te specificeren, reeksen speciale exploitanten voor jou:

    • eenvoudige vergelijkingsoperatoren ( voor numerieke waarden ): =,>,>=, <, <=.
    • complexe vergelijkingsoperatoren ( voor snaren ): bevat, begint met, eindigt met, komt overeen, != (komt niet overeen / is niet gelijk aan), zoals .
    • logische operatoren naar verschillende voorwaarden combineren : en, of, niet .
    • exploitanten voor leeg / niet leeg : is nul, is niet nul .

    Tip. Als u boos of bezorgd bent dat u weer met zo'n enorm aantal operatoren te maken krijgt, voelen we u. Onze Meerdere Vlookup-matches vinden alle matches en bouwen indien nodig QUERY-formules in Google Sheets voor u.

    Laten we eens kijken hoe deze operatoren zich gedragen in formules.

    Voorbeeld 1. Waar met nummers

    Ik zal toevoegen waarbij naar mijn Google Sheets QUERY van hierboven om de info te krijgen over de planeten die meer dan 10 manen hebben:

    =QUERY(Papers!A1:G11,"selecteer A,B,C,F waar F>=10")

    Tip. Ik noemde ook kolom F om op te halen om er zeker van te zijn dat aan het criterium is voldaan. Maar dat is volledig optioneel. Je hoeft geen kolommen met voorwaarden op te nemen in het resultaat:

    =QUERY(Papers!A1:G11,"select A,B,C where F>=10")

    Voorbeeld 2. Waar met tekststrings

    • Ik wil alle rijen zien waar het cijfer ofwel F of F+ Ik zal de bevat operator voor dat:

      =QUERY(Papers!A1:G11,"selecteer A,B,C,G waar G 'F' bevat")

      Opmerking. Vergeet niet uw tekst te omringen met aanhalingstekens.

    • Om alle rijen met F alleen, vervang gewoon bevat met een gelijkheidsteken (=):

      =QUERY(Papers!A1:G11,"selecteer A,B,C,G waar G="F"")

    • Om de nog te leveren papieren te controleren (waar het cijfer ontbreekt), controleer de kolom G voor losse flodders:

      =QUERY(Papers!A1:G11,"select A,B,C,G where G is null")

    Voorbeeld 3. Waar met data

    Raad eens: Google Sheets QUERY heeft zelfs data weten te temmen!

    Aangezien spreadsheets datums opslaan als volgnummers, moet u gewoonlijk een beroep doen op speciale functies zoals DATUM of DATEVALUE, JAAR, MAAND, TIJD, enz.

    Maar QUERY heeft zijn weg gevonden rond datums. Om ze correct in te voeren, typ je gewoon het woord datum en dan de datum zelf toevoegen, geformatteerd als jjjj-mm-dd: datum "2020-01-01

    Hier is mijn formule om alle rijen te krijgen met een Spreekdatum vóór 1 januari 2020:

    =QUERY(Papers!A1:G11,"selecteer A,B,C waar B

    Voorbeeld 4. Combineer verschillende voorwaarden

    Om een bepaalde periode als criterium te gebruiken, moet u twee voorwaarden combineren.

    Laten we proberen die papieren terug te vinden die in de herfst van 2019 zijn afgeleverd. Het eerste criterium moet een datum zijn op of na 1 september 2019 de tweede - op of voor 30 november 2019 :

    =QUERY(Papers!A1:G11,"selecteer A,B,C waar B>=datum '2019-09-01' en B<=datum '2019-11-30'")

    Of ik kan papieren selecteren op basis van deze parameters:

    • vóór 31 december 2019 ( B )
    • hebben A of A+ als cijfer ( G bevat "A )
    • of B/B+ ( G bevat "B )

    =QUERY(Papers!A1:G11,"selecteer A,B,C,G waar B

    Tip: als je hoofd nu al op het punt staat te ontploffen, geef dan nog niet op. Er is een hulpmiddel dat perfect in staat is om al deze formules voor je te maken, ongeacht het aantal criteria. Ga meteen naar het einde van het artikel om het te leren kennen.

    Google Sheets QUERY - Groeperen op

    Google Sheets QUERY groep door commando wordt gebruikt om rijen samen te voegen. U moet echter enkele aggregatiefuncties gebruiken om ze samen te vatten.

    Let op. Groep door moet altijd de selecteer clausule.

    Helaas valt er niets te groeperen in mijn tabel, want er zijn geen terugkerende waarden. Dus laat ik het een beetje aanpassen.

    Stel, alle werkstukken worden door slechts 3 studenten gemaakt. Ik kan het hoogste cijfer van elke student vinden. Maar omdat het letters zijn, moet ik de MIN-functie toepassen op kolom G:

    =QUERY(Papers!A1:G11,"select A,min(G) group by A")

    Opmerking. Als u geen aggregaatfunctie gebruikt met een kolom in de selecteer clausule (kolom A in mijn voorbeeld), moet u ze allemaal dupliceren in de groep door clausule.

    Google Sheets QUERY - Pivot

    Google Sheets QUERY pivot clausule werkt andersom, als ik het zo mag zeggen. Hij transponeert gegevens van een kolom naar een rij met nieuwe kolommen en groepeert andere waarden dienovereenkomstig.

    Voor degenen onder u die met datums werken, kan het een echte ontdekking zijn. U krijgt een snelle blik op alle verschillende jaren uit die bronkolom.

    Let op. Als het gaat om pivot elke kolom gebruikt in de selecteer clausule moet worden afgedekt met een aggregaatfunctie. Anders moet het worden vermeld in de groep door commando na uw pivot .

    Vergeet niet dat mijn tabel nu slechts 3 studenten vermeldt. Ik laat de functie me vertellen hoeveel rapporten elke student heeft gemaakt:

    =QUERY(Papers!A1:G11,"select count(G) pivot A")

    Google Sheets QUERY - Ordenen op

    Deze is vrij eenvoudig :) Hij wordt gebruikt om het resultaat te sorteren op de waarden in bepaalde kolommen.

    Tip. Alle voorgaande clausules zijn optioneel bij gebruik van bestellen door Ik gebruik selecteer om minder kolommen terug te geven voor demonstratiedoeleinden.

    Laten we teruggaan naar mijn oorspronkelijke tabel en rapporten sorteren op spraakdatum.

    Deze volgende Google Sheets QUERY formule zal me de kolommen A, B en C bezorgen, maar zal ze tegelijkertijd sorteren op datum in kolom B:

    =QUERY(Papers!A1:G11,"select A,B,C order by B")

    Grens

    Wat als ik u zou vertellen dat u niet elke rij in het resultaat hoeft op te nemen? Wat als ik u zou vertellen dat Google Sheets QUERY slechts een bepaald aantal van de eerste matches die het vindt kan ophalen?

    Nou, de limiet Het beperkt het aantal te retourneren rijen met het opgegeven getal.

    Tip. Gebruik gerust limiet zonder andere voorgaande clausules.

    Deze formule toont de eerste 5 rijen waarin de kolom met cijfers een cijfer bevat (niet leeg is):

    =QUERY(Papers!A1:G11,"select A,B,C,G where G is not null limit 5")

    Offset

    Deze clausule is een beetje tegengesteld aan de vorige. Terwijl... limiet krijgt u het aantal rijen dat u opgeeft, offset slaat ze over en haalt de rest op.

    Tip. Offset heeft ook geen andere clausules nodig.

    =QUERY(Papers!A1:G11,"select A,B,C,G where G is not null offset 5")

    Als je beide probeert te gebruiken limiet en offset zal het volgende gebeuren:

    1. Offset zal rijen aan het begin overslaan.
    2. Grens zal een aantal van de volgende rijen teruggeven.

    =QUERY(Papers!A1:G11,"select A,B,C,G where G is not null limit 3 offset 3")

    Van de 11 rijen gegevens (de eerste is een koptekst en de QUERY-functie in Google Sheets begrijpt dat goed) slaat offset de eerste 3 rijen over. Limit geeft 3 volgende rijen terug (vanaf de 4e):

    Google Sheets QUERY - Label

    Google Sheets QUERY label kunt u de kopnamen van de kolommen wijzigen.

    Tip. Andere clausules zijn facultatief voor label ook.

    Zet de label eerst, gevolgd door de kolom-ID en een nieuwe naam. Als u enkele kolommen hernoemt, scheidt u elk nieuw kolom-label door een komma:

    =QUERY(Papers!A1:G11,"selecteer A,B,C label A 'Naam', B 'Datum'")

    Formaat

    De formaat maakt het mogelijk het formaat van alle waarden in een kolom te wijzigen. Daarvoor is een patroon nodig dat achter het gewenste formaat staat.

    Tip. De formaatclausule kan ook solo spelen in de Google Sheets QUERY.

    =QUERY(Papers!A1:G11,"select A,B,C limit 3 format B 'mm-dd, yyyy, ddd'")

    Tip: in deze blogpost heb ik enkele datumformaten voor Google Sheets QUERY genoemd. Andere formaten kunnen rechtstreeks uit spreadsheets worden gehaald: Formaat> Getal> Meer formaten> Aangepast getalformaat .

    Opties

    Deze wordt gebruikt om enkele extra instellingen voor de uitkomstgegevens in te stellen.

    Bijvoorbeeld een commando als geen_waarden geeft alleen geformatteerde cellen.

    De snelste manier om QUERY-formules te maken - Meerdere Vlookup-matches

    Hoe krachtig de QUERY-functie in Google Sheets ook is, het kan een leercurve vergen om er grip op te krijgen. Het is één ding om elke clausule afzonderlijk te illustreren in een kleine tabel, en helemaal iets anders om te proberen alles correct op te bouwen met een paar clausules en een veel grotere tabel.

    Daarom hebben we besloten Google Sheets QUERY in een gebruiksvriendelijke interface te gieten en er een add-on van te maken.

    Waarom meerdere VLOOKUP-matches beter zijn dan formules?

    Nou, met de add-on is er absoluut niet nodig :

    • uitzoeken iets over die clausules Het is heel eenvoudig om in de add-on veel complexe voorwaarden te maken: zoveel als je nodig hebt, ondanks hun volgorde om zoveel mogelijk overeenkomsten op te halen als je nodig hebt.

      Opmerking. Momenteel zijn de volgende clausules in het instrument opgenomen: select, where, limit, en offset Als uw taak ook andere clausules vereist, geef dan hieronder commentaar - misschien helpt u ons dan om het te verbeteren ;)

    • weten hoe operators invoeren : kies gewoon uit een drop-down lijst.
    • puzzelen over de juiste manier om datum en tijd in te voeren Met de add-on kunt u ze invoeren zoals u gewend bent, gebaseerd op de locale van uw spreadsheet.

      Tip. Er is altijd een hint beschikbaar in de tool met voorbeelden van verschillende datatypes.

    Als een bonus zul je in staat zijn om:

    • voorbeeld zowel de resultaat en de formule
    • maak snelle aanpassingen aan uw criteria
    • kies een plaats voor het resultaat
    • plaats het resultaat als zowel QUERY-formule of als waarden

    Hoewel deze GIF versneld is, kostte het me minder dan een minuut om alle criteria te verfijnen en het resultaat te krijgen:

    Als je nieuwsgierig genoeg bent, is hier een gedetailleerde video die laat zien hoe de add-on werkt:

    Ik hoop dat u de add-on een kans geeft en hem koopt via de Google Workspace Marketplace. Wees niet verlegen en deel uw feedback, vooral als er iets is dat u niet bevalt.

    Bekijk ook eens de tutorial pagina of de homepage.

    Michael Brown is een toegewijde technologieliefhebber met een passie voor het vereenvoudigen van complexe processen met behulp van softwaretools. Met meer dan tien jaar ervaring in de technische industrie heeft hij zijn vaardigheden in Microsoft Excel en Outlook, evenals Google Spreadsheets en Documenten aangescherpt. Michael's blog is gewijd aan het delen van zijn kennis en expertise met anderen, met eenvoudig te volgen tips en tutorials voor het verbeteren van de productiviteit en efficiëntie. Of je nu een doorgewinterde professional of een beginner bent, Michaels blog biedt waardevolle inzichten en praktisch advies om het meeste uit deze essentiële softwaretools te halen.