Excel eller Power Pivot – Vilken teknik ska jag välja?

För en tid sedan hade vi förmånen att arbeta tillsammans med en kund med ett intressant projekt. Vi skulle först göra ett rapportsystem endast med hjälp av Excel och vanliga pivottabeller och pivotdiagram. Vi skulle sedan göra ytterligare ett system, identiska med det tidigare, men där vi i stället använde Power Pivot. Det blev i slutändan en intressant jämförelse mellan de båda lösningarna med en del skillnader mellan arkitektur, utvecklingstid, prestanda och vidareutvecklingspotential.

 
Båda lösningarna utgick från grunddata i en Excel-fil. Vi använde även Power Query i båda fallen för att strukturera datan inför vidare bearbetning.

 

Lösningen med Excel

I den rena Excel-lösningen var resultatet av Power Query-frågan en stor tabell som innehöll all data. Detta är ett krav när man arbetar med traditionella pivottabeller. Den stora tabellen låg i ett, för användarna, dolt blad och utifrån den tabellen kunde vi sedan göra diverse rapporter med pivottabeller, pivotdiagram och utsnitt.

 
Efter ett tag ville kunden göra mer avancerade uträkningar än vad som går att ställa in i en pivottabell. T.ex. villa man räkna ut ett medelvärde som sträckte sig över en större period än vad som var filtrerat av pivottabellen och utsnitten. Vi behövde då modifiera lösningen och lägga till ytterligare ett antal beräkningsblad. Dessa blad, som också var dolda för användarna, innehöll i sig pivottabeller och uträkningar (Excel-formler) för att få fram det vi ville. Källdatan för slutrapporterna behövde då pekas om från att gå direkt mot den stora tabellen till de individuella deluträkningarna.

 
Lösningen fungerade och kunden var nöjd, men till följd stötte vi också på vissa svårigheter. Ett exempel var antalet utsnitt/filter som behövdes i rapporterna. I och med att vi gått från att i slutrapporten peka på en stor datasamling, till flera deluträkningar var datasamlingen inte längre enhetlig. Ville vi nu t.ex. ha ett utsnitt på månad behövdes två likadana utsnitt i stället för ett (olika diagram och tabeller var kopplade till olika källdata). Denna konsekvens gällde inte genomgående men förekom ett par gånger.

 
Andra utmaningar som vi hade var att lösningens arkitekturella enkelhet försvann. Den blev relativt komplex så det gällde att ha tungan rätt i munnen när nya förändringar behövde göras. Komplexa lösningar brukar ta längre tid att göra förändringar i och vidareutveckla, men det leder också till att risken för fel blir större.

 

Lösningen med Power Pivot

Nästa steg blev alltså att rapportmässigt göra en identisk lösning, fast istället för en ren Excel-lösning använde vi en Power Pivot-datamodell. I praktiken innebar detta att i stället för att ladda all data till en stor tabell i ett Excel-blad, kunde vi i stället lagra allt i datamodellen. Vi kunde alltså göra oss av med de blad som innehåll såväl den stora tabellen som deluträkningarna.

 
Det första man slås av när man gör detta är hur mycket lättare filen blir. Enligt Microsoft så komprimeras data i en Power Pivot-datamodell ned till en tiondel av ursprungsstorleken jämfört med lagring i Excel-blad. I verkligheten kan man inte hävda att fallet alltid är så men den komprimeras åtminstone till mycket stor del. Så har man en fil på 50 MB så kan man grovt räknat få ner filstorleken till ca 5-10 MB genom att flytta data från Excel till Power Pivot. Behöver man synkronisera en sådan fil med webben eller skicka via e-post så är det inte svårt att förstå fördelarna.

 
I och med att Power Pivot arkitekturellt ger helt andra möjligheter kunde vi dela upp den stora tabellen till mindre logiska delar/tabeller (s.k. faktatabeller och dimensionstabeller). Och på grund av att tabellerna är sammankopplade med relationer kan man fortsätta se all data som en enhet, ur ett pivottabellsperspektiv.

 
Samtliga deluträkningsblad ersättes med beräkningar i frågespråket Data Analysis Expressions (DAX). DAX tillåter mycket mer avancerade uträkningar utan att behöva göra avkall på en god och enkel systemarkitektur.

 

Jämförelse av arkitektur och utvecklingstid

Om man inte behöver några andra uträkningar än vad som går att ställa in i en pivottabell, så blir arkitekturen inte mer komplex i Excel jämfört med Power Pivot. Används det senare så finns även möjligheten att dela upp en stor tabell i mindre och mer logiska tabeller, vilket kan vara bra både för förståelsen och för prestandan. Ju mer avancerade uträkningar man gör desto stökigare blir en Excel-lösning medan en Power Pivot-datamodell kan hållas i princip intakt.

 
Utvecklingstiden för enkla rapporter är ungefär densamma i de två fallen. Ju mer avancerade uträkningar man lägger till, desto mer springer tiden i väg för en ren Excel-lösning. Mot slutet räknade vi till att vidareutveckling i Excel-lösningen tog ca 3 gånger så lång tid som i Power Pivot-lösningen. Detta gäller förstås när man behärskar båda tekniker lika bra.

 

Jämförelse prestanda

Den datamängd som datorn behöver hålla i minnet påverkar prestandan när man hanterar och arbetar med filen. I och med att Power Pivot har en mycket effektiv datakomprimering avlastar man datorns resurser avsevärt. Det märks bl.a. när man öppnar filen eller när man interagerar med olika rapportfilter. Det kanske inte är märkbart när datamängden är liten, men på större datasamlingar är skillnaden påtaglig. Vad en större datamängd är beror på många faktorer. Men pratar vi om ett par hundra tusen rader lagrade i ett Excel-blad, så börjar vi närma oss gränsen för vad Excel klarar av.

 
I rena Excel-lösningar är det inte ovanligt att se stora datamängder som är uppbyggda av Excel-formler. Att ha så många formler som automatiskt ska uppdateras är också en varningsklocka och en anledning att överväga Power Pivot.

 

Slutsats – Excel vs Power Pivot

Är det en enkel rapport och man klarar sig med de inbyggda funktionerna i pivottabeller och pivotdiagram, så spelar det mindre roll vilken teknik man väljer. Men frågan Excel vs Power Pivot aktualiseras då man vill ha en kraftfullare lösning. Då man i starten av ett projekt inte alltid vet vad som komma skall, så väljer jag personligen alltid Power Pivot om möjlighet finns. På så sätt vet jag att vi skapar en grund som vi inte kommer att växa ur. Med denna teknik vinner vi också kortare utvecklingstid (dvs. lägre utvecklingskostnader), bättre prestanda och enormt mycket större potential i vad vi kan göra i form av modellering och beräkningar till underliggande rapporter.

Post A Reply