Slik bruker du Google Sheets QUERY-funksjon – standardklausuler og et alternativt verktøy

  • Dele Denne
Michael Brown

Hvis du har fulgt denne bloggen en stund, husker du kanskje QUERY-funksjonen for Google Sheets. Jeg nevnte det som en mulig løsning for et par tilfeller. Men de er langt fra nok til å avdekke dets fulle potensial. I dag er det på høy tid at vi blir ordentlig kjent med denne regnearksuperhelten. Og gjett hva – ett like bemerkelsesverdig verktøy vil også være der :)

Visste du at Google Sheets QUERY-funksjonen anses å være den kraftigste i regneark? Dens særegne syntaks favoriserer titalls forskjellige operasjoner. La oss prøve å bryte ned delene for å lære dem en gang for alle, skal vi?

    Syntaks for Google Sheets QUERY-funksjonen

    Ved første øyekast er Google Sheets QUERY bare en annen funksjon med 1 valgfrie og 2 nødvendige argumenter:

    =QUERY(data, query, [headers])
    • data er området som skal behandles. Obligatorisk. Alt er krystallklart her.

      Merk. Bare én liten påminnelse her etablert av Google: hver kolonne bør inneholde én type data: tekstlig, numerisk eller boolsk. Hvis det er forskjellige typer, vil QUERY fungere med den som forekommer mest. Andre typer vil bli betraktet som tomme celler. Merkelig, men husk det.

    • spørring er måten å behandle dataene på. Obligatorisk. Det er her all moroa begynner. Google Sheets QUERY-funksjonen bruker et spesielt språk for dette argumentet: Google Visualization APIkriterier
    • velg en plass for resultatet
    • sett inn resultatet som både QUERY-formel eller som verdier

    Jeg tuller ikke, se selv. Selv om denne GIF-en ble fremskyndet, tok det meg mindre enn et minutt å finjustere alle kriteriene og få resultatet:

    Hvis du er nysgjerrig nok, her er en detaljert video som viser hvordan tillegget fungerer:

    Jeg håper du vil gi tillegget en sjanse og få det fra Google Workspace Marketplace. Ikke vær sjenert og del tilbakemeldingen din, spesielt hvis det er noe du ikke liker.

    Ta også gjerne en titt på opplæringssiden eller startsiden.

    Spørringsspråk. Det er skrevet på en måte som ligner på SQL. I utgangspunktet er det et sett med spesielle klausuler (kommandoer) som brukes til å fortelle funksjonen hva den skal gjøre: velge, gruppere etter, begrense osv.

    Merk. Hele argumentet må omsluttes av doble anførselstegn. Verdier skal på sin side pakkes inn i anførselstegn.

  • overskrifter er valgfritt når du trenger å angi antall overskriftsrader i dataene dine. Utelat argumentet (som jeg gjør nedenfor), og Google Sheets QUERY vil anta det basert på innholdet i tabellen din.
  • La oss nå grave dypere inn i klausulene og hva de gjør.

    Klausuler brukt i Google Sheets QUERY-formler

    Søkespråket består av 10 klausuler. De kan skremme ved første øyekast, spesielt hvis du ikke er kjent med SQL. Men jeg lover at når du blir kjent med dem, vil du få et kraftig regnearkvåpen til din disposisjon.

    Jeg skal dekke hver setning og gi formeleksempler ved å bruke denne listen over imaginære elever og deres papirfag :

    Ja, jeg er en av de rare som synes Pluto burde være en planet :)

    Tips. Flere klausuler kan brukes i én Google Sheets QUERY-funksjon. Hvis du hekker dem alle, sørg for å følge rekkefølgen på utseendet deres i denne artikkelen.

    Velg (alle eller spesifikke kolonner)

    Den aller første klausulen – velg – brukes til å fortelle hvilke kolonner du må returnere med Google Sheets QUERYfra et annet ark eller tabell.

    Eksempel 1. Velg alle kolonner

    For å hente hver eneste kolonne, bruk velg med en stjerne – velg *

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

    Tips. Hvis du utelater parameteren select , vil Google Sheets QUERY returnere alle kolonner som standard:

    =QUERY(Papers!A1:G11)

    Eksempel 2. Velg spesifikke kolonner

    For å trekke bare visse kolonner , liste dem etter velg -leddet:

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

    Tips. Kolonnene av interesse vil bli kopiert i samme rekkefølge som du nevner dem i formelen:

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

    Google Sheets QUERY – Where-klausul

    Google Ark QUERY hvor brukes til å sette betingelsene mot dataene du ønsker å få. Det fungerer med andre ord som et filter.

    Hvis du bruker denne klausulen, vil QUERY-funksjonen for Google Sheets søke etter verdier i kolonner etter verdier som oppfyller betingelsene dine og hente alle treff tilbake til deg.

    Tips. Hvor kan fungere uten velg -leddet.

    Som vanlig, for å spesifisere betingelser, er det sett med spesielle operatorer for deg:

    • enkle sammenligningsoperatorer ( for numeriske verdier ): =, , >, >=, <, <=
    • komplekse sammenligningsoperatorer ( for strenger ): inneholder, starter med, slutter med, matcher, != (tilsvarer ikke / er ikke lik), som .
    • logiske operatorer for å kombinere flere forhold : og, eller, ikke .
    • operatorer for blank/ ikke tom : er null, er ikke null .

    Tips. Hvis du er opprørt eller bekymret for å måtte forholde deg til et så stort antall operatører igjen, føler vi deg. Våre Multiple Vlookup-treff vil finne alle treff og bygge QUERY-formler i Google Sheets for deg om nødvendig.

    La oss se hvordan disse operatorene oppfører seg i formler.

    Eksempel 1. Hvor med tall

    Jeg vil legge til hvor i Google Sheets SPØRR ovenfra for å få informasjon om de planetene som har mer enn 10 måner:

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

    Tips. Jeg nevnte også kolonne F for å hente bare for å sikre at kriteriet er oppfylt. Men det er helt valgfritt. Du trenger ikke å inkludere kolonner med betingelser i resultatet:

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

    Eksempel 2. Hvor med tekststrenger

    • Jeg vil se alle rader der karakteren er enten F eller F+ . Jeg vil bruke inneholder -operatoren for det:

      =QUERY(Papers!A1:G11,"select A,B,C,G where G contains 'F'")

      Merk. Ikke glem å omgi teksten din med anførselstegn.

    • For å få alle rader med bare F , erstatt inneholder med et likhetstegn (=):

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

    • For å sjekke papirene som ennå ikke skal leveres (der karakteren mangler), sjekk kolonne G for tomme felter:

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

    Eksempel 3. Hvor med datoer

    Gjett hva: Google Sheets QUERY har til og med klart å temme datoer!

    Siden regneark lagrer datoer som serienumre, må du vanligvisty til hjelp av spesielle funksjoner som DATO eller DATOVERDI, ÅR, MÅNED, TID, osv.

    Men QUERY har funnet veien rundt datoer. For å angi dem riktig, skriv inn ordet dato og legg deretter til selve datoen formatert som åååå-mm-dd: dato '2020-01-01'

    Her er formelen min for å få alle rader med en taledato før 1. januar 2020:

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

    Eksempel 4. Kombiner flere betingelser

    For å bruke en viss tidsperiode som et kriterium, må du kombinere to betingelser.

    La oss prøve å hente de papirene som ble levert høsten 2019. Det første kriteriet bør være en dato på eller etter 1. september 2019 , den andre — på eller før 30. november 2019 :

    =QUERY(Papers!A1:G11,"select A,B,C where B>=date '2019-09-01' and B<=date '2019-11-30'")

    Eller, jeg kan velge papirer basert på disse parameterne:

    • før 31. desember 2019 ( B )
    • ha enten A eller A+ som karakter ( G inneholder 'A' )
    • eller B/B+ ( G inneholder 'B' )

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

    Tips. Hvis hodet ditt er i ferd med å eksplodere allerede, ikke gi opp ennå. Det er et verktøy som er perfekt i stand til å bygge alle disse formlene for deg, uansett antall kriterier. Hopp rett til slutten av artikkelen for å bli kjent med den.

    Google Sheets QUERY – Grupper etter

    Google Sheets QUERY gruppe etter -kommandoen brukes til å sette sammen rader. Du bør imidlertid bruke noen aggregerte funksjoner for å oppsummere dem.

    Merk. Grupper etter må alltid følge velg -leddet.

    Dessverre er det ingenting å gruppere i tabellen min, da det ikke er noen gjentakende verdier. Så la meg justere det litt.

    Anta at alle papirene skal utarbeides av kun 3 elever. Jeg kan finne den høyeste karakteren hver elev fikk. Men siden det er bokstaver, er det MIN-funksjonen jeg skal bruke på kolonne G:

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

    Merk. Hvis du ikke bruker en aggregert funksjon med noen kolonne i velg -leddet (kolonne A i mitt eksempel), må du duplisere dem alle i gruppen med klausul.

    Google Sheets QUERY – Pivot

    Google Sheets QUERY pivot -klausulen fungerer omvendt, om jeg kan si det. Den transponerer data fra én kolonne til en rad med nye kolonner, og grupperer andre verdier tilsvarende.

    For de av dere som arbeider med datoer, kan det være en virkelig oppdagelse. Du vil kunne få et raskt blikk på alle de forskjellige årene fra den kildekolonnen.

    Merk. Når det gjelder pivot , bør hver kolonne som brukes i select -leddet dekkes med en aggregert funksjon. Ellers bør det nevnes i gruppen ved kommando etter pivot .

    Husk at tabellen min nå bare nevner 3 elever. Jeg skal få funksjonen til å fortelle meg hvor mange rapporter hver elev har laget:

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

    Google Sheets QUERY – Bestill etter

    Denne er ganske enkel :) Den er vant tilsorter resultatet etter verdiene i visse kolonner.

    Tips. Alle tidligere klausuler er valgfrie når du bruker orden etter . Jeg bruker velg for å returnere færre kolonner for demonstrasjonsformål.

    La oss gå tilbake til den opprinnelige tabellen min og sortere rapportene etter taledato.

    Denne neste Google Sheets QUERY-formelen vil gi meg kolonnene A, B og C, men vil samtidig sortere dem etter dato i kolonne B:

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

    Grense

    Hva om jeg fortalte deg, trenger du ikke å ta med hver rad inn i resultatet? Hva om jeg fortalte deg at Google Sheets QUERY bare kan trekke en viss mengde av de første treffene den finner?

    Vel, limit -setningen er laget for å hjelpe deg med det. Den begrenser antall rader som skal returneres med det gitte tallet.

    Tips. Bruk gjerne limit uten andre tidligere klausuler.

    Denne formelen vil vise de første 5 radene der kolonnen med karakterer inneholder et merke (er ikke tom):

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

    Offset

    Denne klausulen er på en måte motsatt av den forrige. Mens limit gir deg antallet rader du spesifiserer, hopper offset over dem og henter resten.

    Tips. Offset krever heller ingen andre klausuler.

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

    Hvis du prøver å bruke både limit og offset , vil følgende skje:

    1. Offset vil hoppe over rader i begynnelsen.
    2. Limit vil returnere et antall avfølgende rader.

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

    Av 11 rader med data (den første er en overskrift og QUERY-funksjonen i Google Sheets gjør en god jobb med å forstå det), hopper offset over den første 3 rader. Limit returnerer 3 neste rader (fra og med den fjerde):

    Google Sheets QUERY – Label

    Google Sheets QUERY label kommando lar deg endre overskriftsnavn på kolonnene.

    Tips. Andre klausuler er valgfrie for etikett også.

    Sett etiketten først, etterfulgt av kolonne-IDen og et nytt navn. Hvis du endrer navn på noen få kolonner, skiller du hvert nye par av kolonneetiketter med et komma:

    =QUERY(Papers!A1:G11,"select A,B,C label A 'Name', B 'Date'")

    Format

    format -leddet gjør det mulig å endre formatet til alle verdier i en kolonne. For det trenger du et mønster som står bak ønsket format.

    Tips. Formatklausulen kan også spilles alene i Google Sheets QUERY.

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

    Tips. Jeg nevnte noen datoformater for Google Sheets QUERY i dette blogginnlegget. Andre formater kan hentes direkte fra regneark: Format > Nummer > Flere formater > Egendefinert tallformat .

    Alternativer

    Denne brukes til å angi noen tilleggsinnstillinger for utfallsdataene.

    For eksempel vil en kommando som ingen_verdier kun returnere formaterte celler.

    Den raskeste måten å bygge QUERY-formler – Multiple Vlookup Matches

    Hvor kraftig QUERY-funksjonen i Google Sheets er,det kan kreve en læringskurve å få tak i. Det er én ting å illustrere hver setning separat på et lite bord, og en helt annen ting er å prøve å bygge alt riktig med noen få klausuler og en mye større tabell.

    Det er derfor vi bestemte oss for å kle Google Sheets QUERY opp i en brukervennlig grensesnitt og gjør det til et tillegg.

    Hvorfor er flere VLOOKUP-treff bedre enn formler?

    Vel, med tillegget er det absolutt ikke nødvendig :

    • finn ut noe om disse klausulene . Det er veldig enkelt å lage mange komplekse forhold i tillegget: så mange du trenger til tross for bestillingen for å hente så mange treff du trenger.

      Merk. For øyeblikket ble følgende klausuler inkorporert i verktøyet: select, where, limit, og offset . Hvis oppgaven din krever andre klausuler også, vennligst kommenter nedenfor – kanskje du hjelper oss å forbedre oss ;)

    • vet hvordan du skriver inn operatorer : bare velg den fra en rullegardinliste.
    • pusle over den riktige måten å legge inn dato og klokkeslett på . Tillegget lar deg legge dem inn som du pleide, basert på lokaliteten for regnearket ditt.

      Tips. Det er alltid et hint tilgjengelig i verktøyet med eksempler på forskjellige datatyper.

    Som en bonus vil du kunne:

    • forhåndsvise både resultat og formelen
    • gjør raske justeringer til

    Michael Brown er en dedikert teknologientusiast med en lidenskap for å forenkle komplekse prosesser ved hjelp av programvareverktøy. Med mer enn ti års erfaring i teknologibransjen, har han forbedret ferdighetene sine i Microsoft Excel og Outlook, samt Google Sheets og Docs. Michaels blogg er dedikert til å dele sin kunnskap og ekspertise med andre, og gir enkle å følge tips og veiledninger for å forbedre produktivitet og effektivitet. Enten du er en erfaren profesjonell eller nybegynner, tilbyr Michaels blogg verdifull innsikt og praktiske råd for å få mest mulig ut av disse viktige programvareverktøyene.