Business Intelligence

Allsvenskan i Power BI

Det finns många sajter med fotbollsstatistik men där navigeringsmöjligheterna är begränsade, liksom hur mycket data som visas. Vanligast är att visa hur ställningen ser ut efter den senaste omgången i Allsvenskan. Vill man se hela resan, från första omgången och till den senaste eller den sista, då finns inte detta tillgängligt. Jag bestämde mig för att göra det möjligt i Power BI och här ser ni resultatet.

Klicka på symbolen ⤢  för att öppna i fullskärm

Rapportscenario

För att kunna följa Allsvenskan över hela säsongen och varje enskild omgång bestämde jag mig för att bygga en modell i Power BI med hjälp av den tillgängliga data som finns om varje omgång.

För att vinna Allsvenskan krävs det i snitt minst två poäng per omgång. Med dagens 16 lag blir det 30 omgångar och minst 60 poäng, eftersom inga lag möter sig själva. En intressant analys är att se hur pass nära ett lag ligger på detta mål. Här är en graf över detta som visar MFF:s utveckling under 2017.

Ackumulerade poäng per omgång är också intressant direkt i en graf och som underlag till ett plottdiagram där det går att visa utvecklingen per omgång med en sk play axis. Här är diagrammet med MFF som val.

I Allsvenskan spelas de flesta matcher under samma omgång på olika datum och för att data inte skall spridas ut på för många datum har det sista datumet i varje omgång använts för samtliga matcher, istället för speldagen.
Beräkningen görs i DAX och ser ut så här: AckPoäng = TOTALYTD(SUM(Poäng); Tabellnamn[Datum] .

Plottdiagrammet ser ut som bilden nedan men alla bubblor rör sig dynamiskt vid varje ny omgång. Ackumulerade poäng finns på x-axeln och snittpoäng per omgång på y-axeln. Storleken på bubblorna är antalet poäng per omgång.

Beräkningen för snittpoängen per omgång är ackumulerade poäng per match dividerat med omgångens nummer.

Ett sista problem är att kunna ranka varje lag efter varje omgång baserat på ackumulerade poäng. Detta görs med DAX-funktionen RANKX.
RankPositionTabell = IF(HASONEVALUE(Matcher[Poäng]);RANKX(ALL(Matcher[Lag]);Matcher[AckPoäng]))

Den första funktionen, samt IF() runt RANKX är för kontroll av beräkningen. Resultatet finns i den andra tabellen tll höger och gäller för MFF. Resultatet visas per omgångens sista matchdatum. Tabellen till vänster visar hur datamodellen ser ut efter två poster per match-logiken har lagts till. Den innehåller alla hemma och bortamatcher för laget i kolumnen längst till vänster. Datumet i tabellen till vänster är speldagen.

Relaterade sidor: Business Intelligence

Dela inlägget