Om du använder Excel på jobbet känner du förmodligen till den här dialogrutan på ett frustrerande sätt:
Du har förmodligen också arbetat med ett kalkylblad som var smärtsamt långsamt att redigera, där varje klick åtföljdes av att skärmen frös i 10 sekunder och att dödshjulet snurrade runt.
Det är oftast stora filer eller arbetsböcker fulla av formler som ligger bakom. Excel kan hantera upp till en miljon rader, men när du arbetar med ett stort dataset eller gör tunga analyser – tillämpar formler på en massa celler, kopplar ihop flera kalkylblad eller ansluter till andra arbetsböcker – saktar det ner långt innan du når radgränsen.
Excel har en annan svaghet som kan leda till ineffektivitet: dess struktur är för flexibel. Det kanske låter lite galet – flexibilitet är en av anledningarna till att folk älskar Excel. Eftersom varje cell är en egen enhet har du stor frihet att lägga till fotnoter, slå ihop celler eller rita upp ett mönster för nålstickning.
Och om en cell lätt kan manipuleras är det svårare att lita på integriteten hos kalkylbladet som helhet. Excels flexibilitet gör det nästan omöjligt att upprätthålla konsistens och noggrannhet i stora datamängder. Oavsett hur vaksam du är, oavsett hur många gånger du finkammar ett kalkylblad efter stavfel och trasiga formler, kan du ändå missa något.
Det finns ofta ett bättre verktyg för uppgiften.
- Oh, hej, SQL
- Kalkylblad, möt relationsdatabas
- Språnget från formler till förfrågningar
- Fri arbetsbok: Du är på väg!
Oh, hej, SQL
Den data du arbetar med i Excel måste komma någonstans ifrån. Den platsen är en databas. Även när du hämtar data från något som inte känns tekniskt (tänk Google Analytics, Stripe eller Salesforce), frågar du bakom kulisserna i en databas.
Hur många webbbesök fick vi i januari? Hur hög är vår andel av avhopp från betalningstrappan för den produkt som vi just har lanserat? Vilka säljare bygger mer pipeline än andra? Detta är alla förfrågningar på mänskligt, inte datorspråk. Som Excel-användare kan du förmodligen tänka dig hur du skulle kunna skriva dessa frågor som formler om du hade rätt dataset.
Så hur frågar du direkt efter en databas i stället? I de flesta fall använder man SQL (förkortning för Structured Query Language). SQL talar om för en databas vilka data du vill visa och manipulera med beräkningar.
Om du flyttar några av dina inledande beräkningar till SQL kan du minska mängden data som du exporterar. Och med en mindre datamängd är det mindre troligt att du stöter på prestandaproblem med Excel.
När du blir mer bekväm med SQL kan du flytta mer och mer av din analys till SQL tills du når den punkt där Excel blir undantaget och inte regeln. SQL-databaser kan hantera enorma datamängder utan att drabbas av prestandaproblem och har en ordnad struktur som skyddar dina dators integritet.
Att lära sig ett nytt språk kan låta skrämmande – liksom att använda verktyg som helt enkelt känns mer tekniska. Men som Excel-användare vet du redan mer om SQL än du kanske tror.
Spreadsheet, möt relationsdatabas
En databas är en organiserad samling av data. Det finns många olika typer av databaser, men den specifika typ av databas som SQL kan kommunicera med kallas en relationsdatabas.
På samma sätt som en Excel-arbetsbok består av kalkylblad består en relationsdatabas av tabeller, som den nedan.
Tabeller har rader och kolumner precis som ett kalkylblad, men i en tabell kan du inte interagera med varje cell (eller ”värde” i databasterminologin) enskilt. Om du vill utesluta Ralph Abernathys hemstad från den översta raden i tabellen ovan kan du inte bara radera den. Du måste utesluta hela raden eller hela kolumnen ”hometown”.
Anledningen till att du inte kan ändra celler i farten är att en databas har en rigid struktur. Värdena i varje rad är bundna till varandra som en enda enhet. Varje kolumn måste ha ett unikt namn och kan bara innehålla en viss typ av data (”heltal”, ”text”, ”datum” osv.).
Excels flexibla struktur kanske låter ganska bra just nu, men vänta lite. Eftersom en databas har en så strikt struktur är det lättare att skydda dataintegriteten. Med andra ord är det mycket mindre sannolikt att du får inkonsekvenser och fel. Och det betyder att du kan lita mycket mer på dina data.
Språnget från formler till frågor
Det vanligaste sättet att manipulera data i Excel är att använda formler. En formel består av en eller flera funktioner som talar om för Excel vad det ska göra med data i en cell. Du kan till exempel addera numeriska värden med hjälp av SUM(A1:A5)
eller göra ett genomsnitt av dem med hjälp av AVERAGE(A1:A5)
.
SQL-ekvivalenten till en formel är en fråga. Förfrågan för att återge tabellen ovan ser ut så här:
SELECT player_name, hometown, state, weight FROM benn.college_football_players
SELECT
och FROM
är de två grundläggande beståndsdelarna i alla SQL-förfrågningar: SELECT
anger de datakolumner du vill ha och FROM
anger i vilken tabell de finns. Du kan faktiskt välja att visa alla kolumner genom att lägga till en asterisk (*) efter SELECT
, så här:
SELECT * FROM benn.college_football_players
Denna fråga skulle visa alla kolumner i tabellen benn.college_football_players
, så att du kan få en uppfattning om hur hela datasetet ser ut. När du vet vad du behöver kan du snabbt klippa bort kolumnerna för att minska datasetets storlek.
Likt formler består frågor av funktioner som specificerar datamanipulationer. Frågor kan också innehålla klausuler, operatörer, uttryck och några andra komponenter, men vi ska inte gå in på detaljerna här. Det du behöver veta är att du kan använda SQL för att manipulera data på i stort sett samma sätt som du gör i Excel.
Tag till exempel funktionen IF
. Du använder IF
för att skapa villkorliga påståenden som filtrerar data eller lägger till nya data baserat på regler som du definierar. Here’s what an IF
function looks like when you apply it to a cell:
=IF(logical_test, value_if_true, )
You could read that as IF <some condition is met> THEN <display this value> OTHERWISE <display a different value>
. The OTHERWISE
portion, which is shown as , is optional.
The SQL equivalent of IF
is CASE
. They have very similar syntax:
CASE WHEN <condition 1 is met> THEN <display value 1> ELSE <display a different value> END
CASE
statements are considerably easier to read than IF
statements because SQL queries have multiple lines. This structure is ideal for an IF
statement with multiple conditions. For instance, if you want to add two categories based on existing data in Excel, you have to nest one IF statement inside another IF statement. When you add a lot of conditions, things get ugly quickly. Men i SQL kan du bara lägga till ett nytt villkor som en annan rad.
I SQL kan vi lägga till flera villkor med hjälp av uppgifterna om collegefotboll från ovan. Vi ska lägga till en kolumn som delar in fotbollsspelarna i fyra viktgrupper. Här är frågan:
Och så här ser resultattabellen ut:
Inte alltför svårt, eller hur? IF
-angivelsen för detta skulle vara en mardröm.
Du kanske tänker, men hur blir det med diagram och grafer? Hur är det med den grafik som gör min rapport till en rapport? Ett alternativ är att manipulera data i SQL, exportera dem och skapa diagram i Excel.
Om du vill hoppa över exportsteget kan du dock med vissa SQL-program (som Mode) bygga diagram ovanpå dina frågeresultat. Dessa diagram är kopplade direkt till din databas, så varje gång du kör en fråga på nytt uppdateras dina resultat och visualiseringar automatiskt.
Mode Analytics
Gratis arbetsbok: The Excel User’s Quick Start Guide to SQL
We’ve put together a workbook of six go-to Excel tasks and their SQL counterparts. Each lesson contains an example dataset and detailed instructions. You’ll learn how to do the following Excel functions in SQL:
- Arithmetic
IF
- Filtering
VLOOKUP
-
SUM
COUNT
, andAVG
- Grouped aggregation (pivot tables)
As you gain SQL knowledge, it’s helpful to know where to focus your learning and how to navigate your company’s data.
Pick tutorials geared toward data analysis
There are a lot of SQL resources, but not all of them are focused on data analysis.
Engineers and database administrators use SQL to create, update, and delete tables in databases. They can upload a whole new table or delete one permanently from the database. These are very different tasks from how you’ll use SQL (at least until you fall so in love with data that you make a career switch to analytics).
Don’t get bogged down in SQL tutorials that are designed for database management. Hone in on query-focused tutorials. Here are some SQL lessons to start out with:
- Retrieving data
- Filtering data and making simple calculations
- Using multiple filters at once
- Ordering your results
- Aggregating data
- Counting unique values in a column
- Conditional logic
- Joining datasets
If you find yourself in tutorials talking about things like:
CREATE TABLE
DROP TABLE
CREATE DATABASE
DROP DATABASE
…har du gått ner i fel kaninhål.
Öva med företagets data
Om du gör analyser på jobbet finns det egentligen ingen ersättning för att använda företagets data för att lära sig SQL. Du kan utforska företagets datastruktur och lära dig tekniska begrepp samtidigt. Det du plockar upp kommer att vara omedelbart tillämpbart på ditt jobb.
För att göra det måste du förstå hur ditt företags data är organiserad. Var lagras produkt- och marknadsföringsdata? Om du vill titta på de konton som omsattes förra månaden, vilken eller vilka tabeller ska du söka i?
De flesta företag har ett analysteam som dagligen arbetar med företagets data. Dessa personer kommer att kunna besvara dina frågor eller hänvisa dig till användbar dokumentation. Det finns ett ömsesidigt fördelaktigt förhållande här: om du frågar efter data på egen hand minskar du analysteamets backlog av dataförfrågningar. Garanterade Brownie Points.
Ett antal Mode-kunder har till och med inrättat regelbundna utbildningssessioner där analytiker lär kollegor SQL med hjälp av deras interna data. Responsen har varit överväldigande positiv från båda grupperna! Låt oss veta om du funderar på att inrätta detta på ditt företag. Vi delar gärna med oss av våra erfarenheter.
Du är på väg!
Har du lust att komma igång? Ladda ner vår kostnadsfria snabbstartguide för Excel-användare och titta på vår SQL-handledning!