Utnyttja kraften i QUERY-funktionen i Google Sheets
Behöver du analysera och hantera data i Google Sheets? Då är QUERY-funktionen ditt bästa verktyg! Denna funktion ger dig möjligheten att utföra kraftfulla databassökningar direkt i ditt kalkylblad, vilket gör att du kan hitta och filtrera data precis som du önskar. Här går vi igenom hur du kan bemästra denna användbara funktion.
Förstå och använda QUERY-funktionen
QUERY-funktionen är inte svår att lära sig, särskilt om du har erfarenhet av databaser och SQL. Den liknar SQL i sitt format och ger dig samma möjligheter att söka och filtrera data direkt i dina Google Sheets.
En typisk QUERY-formel ser ut så här: =QUERY(data, fråga, rubriker)
. Här ersätter du ”data” med ditt cellområde, som till exempel "A2:D12"
eller "A:D"
. ”Fråga” ersätts med den sökfråga du vill utföra.
Argumentet ”rubriker” är valfritt och anger hur många rader med rubriker du har i början av ditt dataområde. Om du till exempel har en rubrik som sträcker sig över två rader, säg ”Förnamn” på A1 och ”Namn” på A2, anger du att QUERY ska använda de två första raderna som en sammanhängande rubrik.
I exemplet nedan ser vi ett kalkylblad som heter ”Personallista” i Google Sheets. Det innehåller en lista över medarbetare med information om namn, anställningsnummer, födelsedatum och om de har genomfört obligatorisk utbildning.
Nu vill vi på ett annat blad skapa en lista över alla medarbetare som inte har genomfört sin obligatoriska utbildning. Listan ska innehålla deras anställningsnummer, förnamn, efternamn samt uppgift om de genomgått utbildningen eller inte.
För att göra detta, kan vi använda formeln =QUERY('Personallista'!A2:E12, "SELECT A, B, C, E WHERE E = 'Nej'")
. Denna formel hämtar information från cellområdet A2 till E12 på bladet ”Personallista”.
Precis som en vanlig SQL-fråga, använder QUERY ”SELECT” för att välja kolumner som ska visas och ”WHERE” för att definiera sökkriterierna. I det här fallet visas kolumnerna A, B, C och E, och endast rader där värdet i kolumn E (”Genomförd utbildning”) är ”Nej” visas.
Bilden visar att fyra medarbetare inte har genomfört utbildningen. QUERY-funktionen har hämtat denna information och visat motsvarande kolumner, med namn och anställningsnummer, i en separat lista.
Vi har nu använt ett specifikt cellområde i vårt exempel. Om vi ändrar formeln till att omfatta hela kolumnerna A till E, A2:E
, kommer listan automatiskt uppdateras när nya medarbetare läggs till. Och om någon genomgår utbildningen, kommer detta också att synas i listan.
Formeln blir då =QUERY('Personallista'!A2:E, "SELECT A, B, C, E WHERE E = 'Nej'")
. Denna formel ignorerar rubriken ”Anställda” som finns i cell A1.
Lägger vi till en elfte medarbetare, Christine Smith, som inte har genomfört utbildningen i den första listan, uppdateras QUERY-formeln och visar den nya medarbetaren automatiskt.
Avancerade QUERY-formler
QUERY-funktionen är mycket flexibel. Du kan kombinera den med logiska operationer (som AND och OR) eller andra Google Sheets-funktioner (som COUNT). Du kan också använda jämförelseoperatorer (större än, mindre än och så vidare) för att filtrera data efter numeriska värden.
Jämförelseoperatorer i QUERY
Jämförelseoperatorer som ”mindre än”, ”större än” eller ”lika med” kan kombineras med QUERY för att filtrera data. Vi lägger till en kolumn (F) till vår ”Personallista”, som anger hur många utmärkelser varje medarbetare vunnit.
Med QUERY kan vi nu söka efter de medarbetare som har vunnit minst en utmärkelse med formeln =QUERY('Personallista'!A2:F12, "SELECT A, B, C, D, E, F WHERE F > 0")
.
Här använder vi operatorn ”>” (större än) för att hitta alla medarbetare som har ett värde över noll i kolumn F.
Exemplet visar att åtta medarbetare har vunnit minst en utmärkelse. Tre av de elva medarbetarna har inte vunnit något pris.
AND och OR i QUERY
Du kan använda de logiska operatorerna AND och OR för att lägga till flera sökkriterier i din QUERY-formel.
Ett bra exempel för att använda AND är att söka efter data mellan två datum. I vår personalista kan vi exempelvis lista alla medarbetare som är födda mellan 1980 och 1989.
Detta kräver att vi använder jämförelseoperatorer ”större än eller lika med” (>=) och ”mindre än eller lika med” (<=).
Formeln ser ut så här: =QUERY('Personallista'!A2:E12, "SELECT A, B, C, D, E WHERE D >= DATE '1980-1-1' and D <= DATE '1989-12-31'")
.
Listan visar tre medarbetare, födda 1980, 1986 och 1983, som uppfyller kriterierna.
Vi kan även använda OR för att få ett liknande resultat. Samma data kan användas, men genom att byta datum och använda OR kan vi visa alla medarbetare som inte är födda på 1980-talet.
Formeln blir då: =QUERY('Personallista'!A2:E12, "SELECT A, B, C, D, E WHERE D < DATE '1980-1-1' or D > DATE '1989-12-31'")
.
Av de ursprungliga tio medarbetarna är tre födda på 1980-talet. Listan visar de återstående sju, som är födda före eller efter de angivna datumen.
COUNT i kombination med QUERY
Istället för att bara söka och visa data kan vi kombinera QUERY med andra funktioner, till exempel COUNT, för att bearbeta och analysera information. Låt oss säga att vi vill räkna hur många anställda som genomfört respektive inte genomfört den obligatoriska utbildningen.
Då använder vi formeln =QUERY('Personallista'!A2:E12, "SELECT E, COUNT(E) group by E")
.
Med fokus på kolumn E (”Genomförd utbildning”) räknar QUERY-funktionen med hjälp av COUNT antalet gånger varje typ av värde (”Ja” eller ”Nej”) förekommer. I vår lista har sex medarbetare genomfört utbildningen och fyra inte.
Du kan enkelt anpassa denna formel och kombinera den med andra Google Sheets-funktioner, som till exempel SUM.