Power Query: Pivotera data (exempel)

I det här inlägget ska vi titta på hur man kan använda Power Query för att bland annat pivotera data. Vi ska läsa in en Excel-fil och transformera data, visualisera och dra slutsatser. Du kan själva ladda ner filen och följa inlägget. Se video nedan eller följ i texten.



Power Query är den del av Power BI som hanterar inläsning och transformation av data. Vi hämtar data från olika datakällor, transformerar data vid behov, visualiserar med grafer och tabeller och låter användare ta del av rapporter.



Vi kan börja med att hämta data från EU:s statistiktjänst Eurostat. Här samlar EU all möjlig data från medlemsländer. I det här exemplet ska vi titta på arbetslöshet. Besök denna sida: https://ec.europa.eu/eurostat/databrowser/view/lfsa_urgan/default/table?lang=en


Den viktiga delen för oss är den datatabell vi ser längst ner på sidan. Här kan vi se arbetslöshet per land och år. Värdena är i %.


Vi väljer att ladda ner filen som ett Spreadsheet till vår dator så att vi sedan kan läsa in den i Power BI. Filen laddas ner och läggs bland dina nedladdade filer.



Nu kan vi öppna filen i Excel och se hur vårt data ser ut. Vi kan se att filen innehåller en del metadata på den översta och understa raderna - det här är inte en del av data och vi kommer att behöva ta bort de raderna vid inläsning. Vi har också en kolumnn mellan varje årskolumn. Dessa kolumner innehåller inte heller data och vi vill ta bort dem när vi läser in informationen.



Läsa in data

Starta nu Power BI och välj att läsa in Excel-filen. Det kan man göra genom att klicka på den stora knappen för "Import data from Excel", men man kan även välja olika datakällor på menyfilksområdet Home.



Efter att vi valt Excel-filen att läsa in så får vi upp en ruta med de olika ark som finns i filen. Vi vill läsa data från Sheet 1 så vi kryssar för rutan på den raden. Vi kan sedan välja att läsa in data direkt eller att transformera data. Eftersom vi vill ta bort rader med mer så väljer vi att transformera. Nu öppnas Power Query.



Ta bort rader

Det första vi ska göra är att ta bort de rader med metadata som finns överst och underst i filen. Detta ska vi göra med funktionen "Remove Top Rows" respektive "Remove Bottom Rows". Funktionerna ger oss en möjlighet att säga hur många rader som ska tas bort från ettdera hållet.


Tittar vi på den övre delen av filen kan vi se att det är nio rader innan vår data börjar. Vår data börjar när vi ser årsvärdena 2012/2013/2014 osv i kolumnerna.



Vi klickar därför på Remove Rows, väljer Remove Top Rows och anger värdet 9.



Nu kan vi se att rätt rader försvunnit från vår data. Det här är en av fördelarna med att transformera data i Power Query - vi kan steg för steg se hur vår data förändras och direkt få feedback om förändringen är korrekt.


Gör nu på motsvarande sätt för att ta bort de understa sex raderna. Klicka på Remove Rows, välj Remove Bottom Rows och ange värdet 6. Nu ska filen bara innehålla de rader vi är intresserade av - 41 rader i den fil jag laddat ner.


Nästa steg blir att lyfta upp första radens värden som kolumnrubriker. På första raden har vi årsvärden 2012/2013/2014 osv och dessa vill vi ha som namn på kolumnerna. Vi klickar därför på Use First Row as Header.



Nu har första radens värden flyttats upp som kolumnrubriker.


Filtrera rader

Nu ska vi ta bort lite rader från vårt data som vi inte vill ha med. Det handlar om första raden "Geo (Labels)" som inte motsvarar ett land eller region samt en del av jämförelsevärdena med EU-snitt.


Detta kan vi enkelt göra genom att klicka på filterknappen vid den första kolumnen som just nu heter TIME. Klicka ur "GEO (Labels)" och alla jämförelsevärden utom "European Union - 27 countries (from 2020). De rader vi klickar ur försvinner från data när vi klickar OK.





Byta ut värden

Vi har två rader med data som har långa beskrivningar "Germany (until 1990 former territory of the FRG)" samt "European Union - 27 countries (from 2020)". Dessa kan vi korta ner så att de blir enklare att läsa och stämmer bättre med längden av övriga länder.


Högerklicka på respektive värde, välj "Replace values" och ange ett kortare namn - jag väljer "Germany" respektive "European Union".



Pivotera data

Nu har vi kolumner för varje år av data, men när man läser in data i Power BI vill man oftast ha den på ett radformat. Det vill säga vi vill ha en kolumn för land, en kolumn för år och en kolumn för arbetslöshetsvärdet. Detta gör vi för att kunna använda År som en dimension i grafer etc.


Det finns två alternativ när man ska pivotera data - antingen markerar man de kolumner som ska pivoteras eller de kolumner som inte ska pivoteras. I vårt fall ska alla kolumner utom TIME pivoteras och det är därför enklare att välja TIME och pivotera de övriga.


Markera TIME-kolumnen genom att klicka på dess rubrik. Byt till menyflikområdet Transform och klicka på pilen till höger om "Unpivot Columns". Välj alternativet "Unpivot Other Columns".



Nu ändras vår data så att det som tidigare var olika kolumner har blivit olika rader.



Döpa om kolumner

Nu vill vi sätta bättre rubriker på våra kolumner. Man kan enkelt döpa om en kolumn genom att dubbelklicka på namnet och skriva in ett nytt namn. Döp om kolumnerna så att:


TIME -> Region

Attribute -> Year

Value -> Unemployment



Filtrera bort rader som inte hör till data

Varannan rad i vår data har skapats av de kolumner som låg mellan årskolumnerna. Vi kan nu enkelt ta bort dessa genom att klicka på filterknappen på Year och välja bara de rader som har korrekta årsvärden.


Datatyper & inläsning

Vi ska nu se över vilka datatyper våra kolumner har. Man ser det bland annat på ikonen till vänster om varje kolumnerrubrik.



ABC betyder att kolumnen tolkas som text. Det passar bra för vår region, men våra år brukar vi hantera som numeriska värden. Klicka därför på ikonen till vänster om Year och välj Whole Number.


Unemployment är tolkad som en blandad kolumn - både text och tal. Detta beror på att kolumnen kan innehålla ett kolon som värde på vissa rader. Kolon tolkas som en text. I den datatabell vi läst in markerar kolon i en cell att värdet saknas. Vi väljer att ta bort dessa rader genom att filtrera värdena i kolumnen. Klicka på filterknappen, scrolla längst ner i listan av värden och kryssa ur kolon-värdet. Nu kan vi ändra formatet till Decimal Number.


Nu är vi klara att läsa in vår data. Gå till menyfliksområdet Home och klicka på Close & Apply.


Skapa grafer och gör analys

Vi börjar med att lägga ut ett slicer-objekt på sidan. Slicer-objekt låter användare göra urval på värden för att filtrera rapporten. Dra sedan fältet Region från Fields till höger till det tomma slicer-objektet. Om du vill kan du flytta objektet och ändra dess storlek till något du tycker passar.


Sedan ska vi skapa en linjegraf. Det är viktigt att avmarkera slicer-objektet innan man trycker på knappen för att skapa en linjegraf då annars slicer-objektet görs om till en linjegraf. Så klicka någonstans i bakgrunden på arbetsytan och klicka sedan på linjegrafsobjektet.

Nu ska ett nytt tomt objekt ha skapats på arbetsytan. Dra nu Year till X-axis, Region till Legend och Unemployment till Y-axis. Nu ska du se en graf med en linje per region över tid.


För att kunna läsa ut något ur grafen behöver vi fokusera på Sverige och EU-snittet. Klicka på "European Union" i slicer-objektet och håll därefter ned control och klicka på Sweden. Genom att hålla ner control kan vi välja två värden att jämföra.



Som vi nu kan se har Sverige legat under EU-snittet för arbetslöshet i många år, men de senaste åren har arbetslösheten i Sverige ökat medan den i EU minskat.



För att spara din rapport som vanligt i Windows-applikationer antingen trycka på diskett-ikonen eller välja Save från File-menyn. I den fil som sparas finns en kopia av data inläst, Power Query-logiken samt de grafiska objekt du sparade.

 

Skriven av: Morgan Kejerhag

Morgan Kejerhag har arbetat med beslutsstöd sedan 2005 och är en av Sveriges mest erfarna Qlik-konsulter. Under åren har Morgan arbetat med flertalet multinationella bolag där han lett arbetet i att bygga upp stora miljöer såväl som små kunder. LinkedIn Kontaktuppgifter