Innehållsförteckning
Om du har följt den här bloggen ett tag kommer du kanske ihåg QUERY-funktionen för Google Sheets. Jag nämnde den som en möjlig lösning för ett par fall. Men det är långt ifrån tillräckligt för att avslöja dess fulla potential. Idag är det hög tid att lära känna den här superhjälten för kalkylblad ordentligt. Och gissa vad - ett lika anmärkningsvärt verktyg kommer också att finnas där :)
Visste du att Google Sheets QUERY-funktion anses vara den mest kraftfulla funktionen i kalkylblad? Dess märkliga syntax ger tiotals olika operationer. Låt oss försöka bryta ner dess delar för att lära oss dem en gång för alla, eller hur?
Syntax för Google Sheets QUERY-funktionen
Vid första anblicken är Google Sheets QUERY bara en funktion med 1 valfritt och 2 obligatoriska argument:
=QUERY(data, fråga, [rubriker])- uppgifter är det intervall som ska bearbetas. krävs. Allt är kristallklart här.
Observera: En liten påminnelse från Google: varje kolumn ska innehålla en typ av data: text, numerisk eller boolesk. Om det finns olika typer kommer QUERY att arbeta med den som förekommer mest. Andra typer kommer att betraktas som tomma celler. Märkligt, men kom ihåg det.
- fråga är sättet att bearbeta uppgifter ... Krävs. Det är här allt det roliga börjar. Google Sheets QUERY-funktion använder ett särskilt språk för detta argument: Google Visualization API frågespråk Det är skrivet på ett sätt som liknar SQL. I princip är det en uppsättning särskilda klausuler (kommandon) som används för att tala om för funktionen vad den ska göra: välj, gruppera efter, begränsa osv.
Observera: Hela argumentet måste omslutas av dubbla citattecken. Värden ska i sin tur omslutas av citattecken.
- rubriker är valfritt när du behöver ange antalet rubrikrader i dina data. Om du utelämnar argumentet (som jag gör nedan) kommer Google Sheets QUERY att anta det baserat på innehållet i din tabell.
Låt oss nu gå djupare in på klausulerna och vad de gör.
Klausuler som används i Google Sheets QUERY-formler
Sökspråket består av 10 klausuler. De kan skrämma vid första anblicken, särskilt om du inte är bekant med SQL. Men jag lovar att när du väl lär känna dem kommer du att få ett kraftfullt kalkylbladsvapen till ditt förfogande.
Jag kommer att ta upp varje klausul och ge exempel på formler med hjälp av denna lista över imaginära studenter och deras pappersämnen:
Japp, jag är en av dem som tycker att Pluto borde vara en planet :)
Tips: Flera klausuler kan användas i en Google Sheets QUERY-funktion. Om du bäddar in alla klausulerna, se till att du följer den ordning de visas i den här artikeln.
Välj (alla eller vissa kolumner)
Den allra första bestämmelsen - Välj - används för att ange vilka kolumner du ska återge med Google Sheets QUERY från ett annat ark eller en annan tabell.
Exempel 1. Välj alla kolumner
För att hämta varje enskild kolumn använder du Välj med en asterisk - välj *
=QUERY(Papers!A1:G11, "select *")
Tips: Om du utelämnar Välj parametern returnerar Google Sheets QUERY som standard alla kolumner:
=QUERY(Papper!A1:G11)
Exempel 2. Välj specifika kolumner
Om du bara vill ta fram vissa kolumner listar du dem efter Välj klausul:
=QUERY(Papers!A1:G11, "select A,B,C")
Tips: De intressanta kolumnerna kopieras i samma ordning som du nämner dem i formeln:
=QUERY(Papers!A1:G11, "select C,B,A")
Google Sheets QUERY - klausul om var
Google Sheets FRÅGA där används för att ställa in villkoren för de data som du vill få fram. Med andra ord fungerar den som ett filter.
Om du använder den här klausulen kommer QUERY-funktionen för Google Sheets att söka i kolumnerna efter värden som uppfyller villkoren och hämta alla matchningar till dig.
Tips. Var kan fungera utan Välj klausul.
Som vanligt finns det särskilda uppsättningar av särskilda operatörer för dig:
- enkla jämförelseoperatörer ( för numeriska värden ): =, , ,>,>=, <, <=
- komplexa jämförelseoperatörer ( för strängar ): innehåller, börjar med, slutar med, matchar, != (matchar inte / är inte lika med), som .
- logiska operatörer för att kombinera flera villkor : och, eller, eller, inte .
- operatörer för tom / inte tom : är noll, är inte noll .
Tips: Om du är upprörd eller orolig över att behöva hantera ett så stort antal operatörer igen, förstår vi dig. Våra matchningar för flera Vlookup-analyser hittar alla matchningar och bygger upp formuleringar för QUERY i Google Sheets åt dig om det behövs.
Låt oss se hur dessa operatörer beter sig i formler.
Exempel 1. Var med siffror
Jag kommer att lägga till där till min Google Sheets QUERY från ovan för att få information om de planeter som har fler än 10 månar:
=QUERY(Papers!A1:G11, "välj A,B,C,F där F>=10")
Tips: Jag nämnde också kolumn F som ska hämtas för att säkerställa att kriteriet är uppfyllt. Men det är helt frivilligt. Du behöver inte inkludera kolumner med villkor i resultatet:
=QUERY(Papers!A1:G11, "välj A,B,C där F>=10")
Exempel 2. Var med textsträngar
- Jag vill se alla rader där betyget är antingen F eller . F+ . Jag kommer att använda innehåller operatör för detta:
=QUERY(Papers!A1:G11, "välj A,B,C,G där G innehåller 'F'")
Glöm inte att omge texten med citationstecken.
- För att få fram alla rader med F bara, byt bara ut innehåller med ett likhetstecken (=):
=QUERY(Papers!A1:G11, "välj A,B,C,G där G="F"")
- För att kontrollera de papper som ännu inte har levererats (där betyg saknas), kontrollera kolumnen G för blanketter:
=QUERY(Papers!A1:G11, "select A,B,C,G where G is null'")
Exempel 3. Var med datum
Gissa vad: Google Sheets QUERY har till och med lyckats tämja datum!
Eftersom kalkylblad lagrar datum som serienummer måste du vanligtvis använda dig av specialfunktioner som DATE eller DATEVALUE, YEAR, MONTH, TIME osv.
Men QUERY har hittat ett sätt att hantera datum. För att skriva in dem på rätt sätt skriver du bara ordet datum och sedan lägga till datumet i form av yyyy-mm-dd: datum "2020-01-01
Här är min formel för att få fram alla rader med ett taldatum före den 1 januari 2020:
=QUERY(Papers!A1:G11, "select A,B,C where B
Exempel 4: Kombinera flera villkor
För att använda en viss tidsperiod som kriterium måste du kombinera två villkor.
Låt oss försöka hitta de artiklar som levererades under hösten 2019. Det första kriteriet bör vara ett datum. den 1 september 2019 eller senare , den andra - senast den 30 november 2019 :
=QUERY(Papers!A1:G11, "välj A,B,C där B>=datum '2019-09-01' och B<=datum '2019-11-30'")
Eller så kan jag välja artiklar utifrån dessa parametrar:
- före den 31 december 2019 ( B
) - har antingen A eller A+ som betyg ( G innehåller "A". )
- eller B/B+ ( G innehåller "B". )
=QUERY(Papers!A1:G11, "select A,B,C,G where B
Tips: Om ditt huvud är på väg att explodera, ge inte upp än. Det finns ett verktyg som kan skapa alla dessa formler åt dig, oavsett antalet kriterier. Hoppa direkt till slutet av artikeln för att lära känna det.
Google Sheets QUERY - Gruppera efter
Google Sheets FRÅGA gruppera sig genom används för att sammanfoga rader, men du bör använda vissa aggregeringsfunktioner för att sammanfatta dem.
Observera. Gruppera efter måste alltid följa den Välj klausul.
Tyvärr finns det inget att gruppera i min tabell eftersom det inte finns några återkommande värden. Låt mig justera den lite.
Anta att alla papper ska utarbetas av endast tre elever. Jag kan hitta det högsta betyget som varje elev fick. Men eftersom de är bokstäver är det MIN-funktionen jag ska tillämpa på kolumn G:
=QUERY(Papers!A1:G11, "select A,min(G) group by A")
Observera: Om du inte använder en aggregeringsfunktion med någon kolumn i Välj klausul (kolumn A i mitt exempel), måste du duplicera dem alla i gruppera sig genom klausul.
Google Sheets QUERY - Pivot
Google Sheets FRÅGA sväng klausulen fungerar tvärtom, om jag får säga så: den överför data från en kolumn till en rad med nya kolumner och grupperar andra värden i enlighet med detta.
För dig som arbetar med datum kan det vara en riktig upptäckt. Du kan få en snabb överblick över alla olika årtal från den källkolumnen.
Observera: När det gäller sväng , varje kolumn som används i Välj klausulen bör täckas med en aggregerad funktion. Annars bör den nämnas i gruppera sig genom efter ditt sväng .
Kom ihåg att min tabell nu endast innehåller tre elever. Jag ska låta funktionen berätta hur många rapporter varje elev har gjort:
=QUERY(Papers!A1:G11, "select count(G) pivot A")
Google Sheets QUERY - Ordna efter
Den här är ganska lätt :) Den används för att sortera resultatet efter värdena i vissa kolumner.
Tips: Alla föregående klausuler är valfria när du använder Beställning av . Jag använder Välj för att återge färre kolumner i demonstrationssyfte.
Låt oss gå tillbaka till min ursprungliga tabell och sortera rapporterna efter taldatum.
Nästa formel för Google Sheets QUERY ger mig kolumnerna A, B och C, men sorterar dem samtidigt efter datum i kolumn B:
=QUERY(Papers!A1:G11, "select A,B,C order by B")
Begränsning
Tänk om jag berättade att du inte behöver ta med varje rad i resultatet? Tänk om jag berättade att Google Sheets QUERY bara kan ta med en viss mängd av de första träffarna som hittas?
Tja, den gräns Den begränsar antalet rader som ska returneras med det angivna antalet.
Tips: Använd gärna gräns utan andra tidigare klausuler.
Formeln visar de fem första raderna där kolumnen med betyg innehåller ett betyg (inte är tom):
=QUERY(Papers!A1:G11, "select A,B,C,G where G is not null limit 5")
Offset
Den här klausulen är lite motsatsen till den föregående. gräns ger dig det antal rader som du anger, Offset hoppar över dem och hämtar resten.
Tips. Offset kräver inte heller några andra klausuler.
=QUERY(Papers!A1:G11, "select A,B,C,G where G is not null offset 5")
Om du försöker använda både gräns och Offset kommer följande att hända:
- Offset hoppar över rader i början.
- Begränsning kommer att ge ett antal av följande rader.
=QUERY(Papers!A1:G11, "select A,B,C,G where G is not null limit 3 offset 3")
Av 11 datarader (den första är en rubrik och QUERY-funktionen i Google Sheets är bra på att förstå det) hoppar offset över de tre första raderna. Limit returnerar tre nästa rader (med början från den fjärde):
Google Sheets QUERY - Etikett
Google Sheets FRÅGA etikett kan du ändra rubriknamnen på kolumnerna.
Tips. Andra klausuler är frivilliga för etikett också.
Sätt in etikett först, följt av kolumn-ID och ett nytt namn. Om du byter namn på ett fåtal kolumner ska du separera varje nytt par av kolumn-märkning med ett kommatecken:
=QUERY(Papers!A1:G11, "select A,B,C label A 'Name', B 'Date'")
Format
format klausulen gör det möjligt att ändra formatet för alla värden i en kolumn. För detta behöver du ett mönster som står bakom det önskade formatet.
Tips: Formatklausulen kan också spela solo i Google Sheets QUERY.
=QUERY(Papers!A1:G11, "select A,B,C limit 3 format B 'mm-dd, yyyy, ddd'")
Tips: Jag nämnde några datumformat för Google Sheets QUERY i det här blogginlägget. Andra format kan hämtas direkt från kalkylblad: Format> Nummer> Fler format> Anpassat nummerformat .
Alternativ
Denna används för att göra ytterligare inställningar för utfallsdata.
Ett sådant kommando är till exempel no_values returnerar endast formaterade celler.
Det snabbaste sättet att bygga QUERY-formler - Flera Vlookup-matchningar
Hur kraftfull QUERY-funktionen i Google Sheets än är, kan det krävas en inlärningskurva för att få grepp om den. Det är en sak att illustrera varje klausul separat i en liten tabell, och en helt annan att försöka bygga upp allting korrekt med några få klausuler och en mycket större tabell.
Därför bestämde vi oss för att ge Google Sheets QUERY ett användarvänligt gränssnitt och göra det till ett tillägg.
Varför är flera VLOOKUP-matchningar bättre än formler?
Med tillägget finns följande absolut inget behov av att :
- räkna ut något om dessa klausuler Det är väldigt enkelt att skapa många komplexa villkor i tillägget: så många som du behöver för att få fram så många träffar som du behöver.
Anmärkning: För närvarande har följande klausuler införlivats i verktyget: Välj, var, begränsa, och Offset Om din uppgift också kräver andra klausuler kan du kommentera nedan - du kanske hjälper oss att förbättra den ;)
- vet hur man ange operatörer : välj bara en från en rullgardinslista.
- fundera över den korrekta sätt att ange datum och tid Med tillägget kan du skriva in dem som du brukade göra, baserat på ditt kalkylblads lokalområde.
Tips: I verktyget finns det alltid en ledtråd med exempel på olika datatyper.
Som en bonus kan du göra följande:
- förhandsgranskning både den resultatet och formeln
- göra snabba justeringar till dina kriterier
- välja en plats för resultatet
- infoga resultatet som både QUERY-formeln eller som värden
Jag skojar inte, se själv. Även om GIF:en är snabbare tog det mig mindre än en minut att finjustera alla kriterier och få fram resultatet:
Om du är nyfiken nog finns här en detaljerad video som visar hur tillägget fungerar:
Jag hoppas att du ger tillägget en chans och hämtar det från Google Workspace Marketplace. Var inte blyg och dela med dig av din feedback, särskilt om det är något du inte gillar.
Du kan också gärna kolla in deras handledningssida eller hemsidan.