Visste du att Google Sheets, som även kallas för Google Kalkylark har en Query-funktion?
Query-funktionalitet finns tillgänglig i Sheets, och det är den i särklass mest kraftfulla funktionen du kan använda dig av.
Query-funktionen använder sig av pseudo-SQL-kod, som är ett programmeringsspråk som man använder sig av för att kommunicera med databaser. Det tar en stund att lära sig Query-funktionen i Google Kalkylark, men när du väl gjort så kommer du bli varse om att den kan användas till precis vad som helst.
Lär dig allt om Query i Google Kalkylark
Steg 1: Detta är måldokumentet. Skapa ett eget och likvärdigt dokument om du så önskar.
Steg 2: Markera hela tabellen genom att ange CTRL + A (för Windows) eller CMD + A (för MacOS).
Läs mer: Så kan du söka efter många domännamn samtidigt
Steg 3: Klicka på Data och välj därefter Named ranges varpå du tas till en ny vy.
Steg 4: Döp cellerna till stader, så att du kan referera till dem på ett enkelt sätt. Klicka därefter på Done.
Steg 5: Den Pseudo-SQL-kod man använder sig av när man arbetar med en Query är uppbyggd enligt följande:
=QUERY(stader,"din Pseudo-SQL-kod här",1)
Eller mer specifikt:
- =Query: Formeln.
- stader: De celler du refererar till.
- ”din Pseudo-SQL-kod här” = De regler som ska gälla.
Då sätter vi igång på allvar, håll i hatten!
Spegla alla celler med en Query-förfrågan i Google Sheets
Steg 6: Markera en cell till höger om tabellen, förslagsvis F1. Hämta alla tabelldata genom att uppge:
=QUERY(stader,"SELECT *",1)
Påminnelse: Kommandot SELECT * ser till att du hämtar alla data från alla kolumner.
Du får tack vare detta kommando ta del av en identisk, det vill säga speglad tabell.
Du har nu skrivit och exekverat ditt första Query-kommando i Google Kalkylark, och förtjänar därför en klapp på axeln.
Snyggt jobbat!
Så visar du utvalda kolumner
Steg 7: För att endast ta fram specifika kolumner måste du modifiera formeln en aning. Använd dig av denna formel:
=QUERY(stader,"SELECT B, D",1)
För att visa upp alla data från kolumnerna Tätort samt Befolkning.
Du sätter upp villkor med WHERE-klausulen
Steg 8: Med klausulen WHERE kan du specificera villkor för den data som ska visas upp. För att endast ta fram svenska städer med över 100 000 invånare kan du använda dig av den Query-sträng som anges nedan:
=QUERY(stader,"SELECT B, D WHERE D > 100000",1)
Steg 9: Nu ska vi använda oss av WHERE-klausulen för att visa upp samtliga av de städer i tabellen som är belägna i Stockholms län, och det gör vi med hjälp av denna formeln:
=QUERY(stader,"SELECT B, C, D WHERE C = 'Stockholms län' ",1)
Så här ser tabellen ut efter att du uppgett den kodsträng som återfinns ovan.
Mer djupgående förklaring: Vi tar fram data från kolumnerna B, C och D med hjälp av SELECT. Därefter sätter vi upp ett villkor för kolumnen C, som inkluderar alla städer som är belägna i Stockholms län.
ORDER BY-klausulen
Klausulen ORDER BY är behjälplig för att sortera data, och ska alltid uppges efter både SELECT och WHERE.
Steg 10: Nu ska vi använda oss av ORDER BY för att sortera städerna utefter invånarantalet. ASC innebär att du sorterar från lågt till högt, och DESC medför att du sorterar från högt till lågt. Nedan uppger vi en kodsträng som visar upp de mest befolkningsrika städerna först.
=QUERY(stader,"SELECT B, C, D ORDER BY D DESC",1)
Som väntat är det fortfarande Stockholm, Göteborg och Malmö som har de högsta invånarantalen.
Om du istället vill visa upp städerna i bokstavsordning är det nedanstående sträng som gäller:
=QUERY(stader,"SELECT B, C, D ORDER BY B ASC",1)
Nu är det uppstyrt och fint – Borås först och Örebro sist!
LIMIT-klausulen
Med villkoret LIMIT uppger du hur många celler du vill visa. LIMIT uppges alltid efter SELECT, WHERE och ORDER BY.
Steg 11: Ange följande LIMIT-baserade sträng för att enbart visa upp 5 resultat.
=QUERY(stader,"SELECT B, C, D ORDER BY D ASC LIMIT 5",1)
Query-kommandot och matematiska formler
Det går utmärkt att få svar på enklare matematiska formler med hjälp av en QUERY-sträng. Nu ska vi ta reda på hur folkrika de svenska städerna är i förhållande till hela Sveriges population, som i skrivande stund uppgår till 10 327 589 medborgare.
Steg 12: Vi ska nu dividera alla data i kolumn C med 10 327 589, och därefter lägga till * 100 för att bli varse om den procentsats som gäller. Formeln lyder:
=QUERY(stader,"SELECT B, C, (D/10327589*100) ",1)
Mer specifikt delar vi värdet i kolumn D (stadens befolkning) med hela Sveriges befolkning, och multiplicerar resultatet med 100 för att få rätt procentsats.
Tillägg: Jag har justerat dokumentet för att endast ett decimaltecken ska visas upp.
LABEL-klausulen
Den cell som befinner sig till höger om Län är ganska bedrövlig. Där ska det ju stå något beskrivande såsom Befolkning i %, och inte en massa konstiga siffror. Detta problem löser vi med hjälp av klausulen LABEL, vars villkor ska placeras sist i kodsträngen.
Steg 13: Använd kodsträngen nedan för att göra tabellen såväl snyggare som mer begriplig:
=QUERY(stader,"SELECT B, C, (D/10327589) *100 LABEL (D/10327589) * 100 'Befolkning i %'",1)
Aggregerade funktioner
I en Google Kalkylark-Query kan du även använda dig av matematiska funktioner för att exempelvis räkna ut max- minimi- och medelvärden.
Steg 14: Med den kodsträng som anges nedan räknar vi ut max- minimi- och medelvärden för kolumn D, där befolkningsmängden uppges.
=QUERY(stader,"SELECT max(D), min(D), avg(D)",1)
GROUP BY-klausulen
Klausulen GROUP BY är lite knepig, men har du kommit så här långt så löser du detta med. Med GROUP BY kan du sammanfatta data i grupper, för att exempelvis kunna räkna ut hur många städer som återfinns i tabellens alla län.
Steg 15: Fyll i den kodsträng som uppges nedan för att räkna ut hur många städer som återfinns i varje län.
=QUERY(stader,"SELECT C, count(B) GROUP BY C",1)
Tillägg: Notera att en räknefunktion likt COUNT, MIN eller MAX måste återfinnas innan GROUP BY-klausulen för att formeln ska fungera.
Slutprovet – använd det du lärt dig
Nu ska du använda dig av nästan samtliga av de funktioner du lärt dig hitintills.
Steg 16: Uppge formeln nedan för att visa hur många städer som inkluderas i varje län, hur många som bor i den minsta respektive största staden samt vad medelbefolkningen för varje län ligger på. Avslutningsvis begränsar du tabellen till 5 celler i djupled.
=QUERY(stader,"SELECT C, count(B), min(D), max(D), avg(D) GROUP BY C ORDER BY avg(D) DESC LIMIT 5",1)
För att göra koden mer begriplig kan du även modifiera radbrytningarna för Query-koden:
=QUERY(stader,"SELECT C, count(B), min(D), max(D), avg(D) GROUP BY C ORDER BY avg(D) DESC LIMIT 5",1)
Resultatet blir dock detsamma, oavsett hur många radbrytningar du gör.
Nu har du lärt dig en hel del om Query-funktionen, och min förhoppning är att du ansett att guiden varit lärorik. Om det är någonting som är oklart, prata gärna mer om saken i kommentarsfältet nedan.
Källor
Läs mer: Googles dokumentation om Query-kommandot
Fler guider på Teknikguiden:
Läs mer: Så fungerar IMPORTRANGE i Google Sheets
Läs mer: Så fungerar ARRAY-formler i Google Sheets
Läs mer: Så fungerar FILTER i Google Sheets
Läs mer: Så fungerar LOOKUP i Google Sheets
Läs mer: Så fungerar MATCH i Google Sheets
Läs mer: Så använder du COUNT i Google Sheets
Läs mer: Lär dig INDEX i Google Sheets
Lämna en kommentar