PowerBI Tutorials

De Tutorials van Masterclass 3 PowerBI zijn geknipt en geupload op basis van het Masterclassprogramma Data & Analyse 2020.

Deze pagina blijft een Work in Progress en wordt aangevuld mede op basis van vragen die we van jullie krijgen en extra uitleg die we geven tijdens de spreekuren. Je kunt je via deze site direct inschrijven!

De slides behorende bij Masterclass 3 evenals de gebruikte trainingsdataset vind je in Teams onder bestanden in het kanaal voor Masterclass 3.

Behoefte aan meer (online) training?

Datacamp is een goed opgezet platform waar je jezelf online kunt trainen in PowerBI maar bijvoorbeeld ook in Python, R en SQL. Je doet er makkelijk basiskennis en verdieping op in al deze tools en talen die je leert toepassen op analyse en data scie…

Datacamp is een goed opgezet platform waar je jezelf online kunt trainen in PowerBI maar bijvoorbeeld ook in Python, R en SQL. Je doet er makkelijk basiskennis en verdieping op in al deze tools en talen die je leert toepassen op analyse en data science vragen. Betaald lidmaatschap - advies: begin met het gratis aanbod om te zien of het werkt!

Inhoudsopgave

 

Nieuwe vragen voor Tutorials? Stel ze in Teams en veel succes!

 

Introductie

Introductie - PowerBI in het proces van Data naar Analyse

PowerBI is gereedschap voor Data Analisten. Een rol die je zelf ook hebt - zelfs al voelt dat nog niet altijd zo. Ook met Excel en zonder alle kennis en vaardigheden is iedereen wel eens bezig met het analyseren van gegevens. In deze video leggen we je in uit welke stappen van het proces van Data naar Analyse PowerBI je leven makkelijker kan maken.

PowerBI is ook in een omgeving waar je veel zelf moet doen een goed stuk gereedschap en aan het einde van de video behandelen we nog de verschillende componenten van PowerBI. Desktop, PowerBI.com en Mobile

 

De snelste weg om PowerBI onder de knie te krijgen

PowerBI leren kan een uitdagende opgave zijn maar is goed te doen als je het slim aanpakt. In deze video leggen we je uit welke stappen nodig zijn en in welke volgorde je die het beste kunt doorlopen.

 

PowerBI Desktop - overzicht van de drie belangrijkste schermen

Voordat we op elk scherm afzonderlijk ingaan, een kort overzicht van de drie schermen die je in PowerBI tegenkomt zodra je de applicatie opent.

 

PowerBI Desktop - het rapportscherm

Voordat je hier bent - eerst nog even wat werk doen aan het voorbereiden van de data maar uiteindelijk maak je hier waar je voor kwam. Dashboards, rapporten, analyses. Hier geef je antwoord op je analysevragen.

 

PowerBI Desktop - het datascherm en PowerQuery

Hier gebeurt het belangrijkste werk om straks je analyses en visualisaties als een zonnetje te laten lopen: het binnenhalen en voorbereiden van de data. Het mooie aan PowerBI is dat wanneer je eenmaal hebt bepaald wat er met een bepaalde databron moet gebeuren je elke keer op refresh kunt klikken zodra er nieuwe gegevens in je databron hebt ontvangen. Je analyses en visualisaties worden dan meteen geupdate met de laatste gegevens. Geen macro’s, koffie en regendansjes meer dus om je data voor te bereiden.

 

PowerBI Desktop - het datamodelscherm

Hier leg je de relaties tussen de verschillende tabellen en daarmee bepaal je welke analyses en visualisaties mogelijk worden. Als een visualisatie in het Rapportscherm een gekke uitkomst geeft: controleer dan altijd eerst even naar je datamodel en de filterrichting in het datamodelscherm. Vaak is het probleem in dit scherm al op te lossen.

 

Demonstraties

CBS demonstratie

De demonstratie van de uitvoering van de optionele opdracht 3 (uit het lesplan Masterclass 3) waarin je CBS gegevens gaat plotten op een kaart van Nederland op Posctcode 3 niveau. (de eerste drie cijfers van de postcode). Link naar de verschillende sites die in de demonstratie gebruikt worden onder de video.

TIP: Als je de dataset voor de eerste keer hebt gedownload, kijk dan even deze korte uitleg over hoe je voorkomt dat je elke keer bij refresh 30 minuten moet wachten :-)

Gebruikte en handige links:

  • Gegevens downloaden: CBS heeft een flinke verzameling interessante data die je soms op postcodeniveau maar vooral ook op regio / gemeenteniveau kunt downloaden. Slim koppelen van gegevens geeft je veel mogelijkheden!

  • Site waar je kaarten kunt ophalen met actuele postcodevlakken: https://hub.arcgis.com/datasets/esrinl-content::postcodevlakken-pc-3?geometry=-13.375%2C49.722%2C24.001%2C54.442 (hier download je de shapefile die je in de volgende stap omzet)

  • Shapefiles ombouwen naar het topoJSON formaat dat PowerBI graag gebruikt: https://mapshaper.org/

  • Via deze site kun je besluiten een bestand te kopen met de Nederlandse postcodes en gemeentenamen zoals die door CBS gebruikt worden. Afhankelijk van het detailniveau dat je wilt - Basis is in principe voldoende - betaal je eenmalig een bedrag (€ 39,- op dit moment) of periodiek. Voor de meeste analysetoepassingen is af en toe, jaarlijks bijvoorbeeld, een up to date bestand ophalen prima. https://geocatalogus.nl/dataset/bag-cbs-adressen-basis

 

DIM_Date: dimensietabel voor doorsnedes op datum

Omdat het zo'n ontzettend handig hulpmiddel is om je analyses en visualisaties op een makkelijke manier te kunnen bekijken vanuit verschillende datumgerelateerde dimensies: dag, week, maand, kwartaal, kalenderjaar, boekjaar, seizoen. Er zijn een paar manieren om het voor elkaar te krijgen: in de video laten we je zien hoe het werkt en wat je ermee voor elkaar kunt krijgen. Onder de video vindt je de code die je in PowerQuery kunt gebruiken om daar een tabel te maken. Eén van onze voorkeursmanieren. Met links naar een paar alternatieve manieren om het voor elkaar te krijgen.

In de video laten we het ondermeer zien aan de hand van code die je in PowerQuery kunt gebruiken. Voordeel daarvan is dat je een echte tabel creëert die je in PowerQuery kunt beheren. (Een uitvoerig artikel van Reza Rad over Date Dimensions: link - de code die daar gebruikt wordt kun je direct uit dit bestand halen)

Alternatieve benadering in DAX is te vinden in de uitleg van Guy in a Cube https://www.youtube.com/watch?v=gyvhM5eiT0U

Hij legt daar bovendien de formule CALENDARAUTO uit die best handig is. Aan de hand van de datums die voorkomen in je model bepaalt die formule het begin en het einde van de reeks die aangemaakt moet worden. Je datumtabel wordt dan bovendien uitgebreid als je bijvoorbeeld nieuwe data met nieuwe datums erin toevoegt. Een voorbeeld van de DAX code:

DIM_Date =
ADDCOLUMNS (
ADDCOLUMNS (
SELECTCOLUMNS (
CALENDARAUTO (1);
"Calendar[Date]"; [Date]
);
"Year"; YEAR ( Calendar[Date] );
"Month Number"; MONTH ( Calendar[Date] );
"Month"; FORMAT ( Calendar[Date]; "mmmm" );
"Year Month"; FORMAT ( Calendar[Date]; "mmm yy" )
);
"Year Month Number"; [Year] * 12 + [Month Number] - 1
)

Als je je overigens afvraagt wat het nut is van year month number (maandnummer vanaf het begin van de jaartelling :-) ... probeer dan maar eens data te groeperen per maand terwijl die in een aparte kolom staat ... dat zorgt ervoor dat alle juli data - ongeacht het jaar - bij elkaar genomen wordt en dat wil je natuurlijk niet. Groeperen op Year Month Number zorgt ervoor dat het netjes bij de juiste maand blijft.

LET OP: PowerBI gaat op verschillende plekken verschillend om met het gebruik van komma’s of punt komma’s in formules. Onhandig als je code kopieert van een site - maargoed. In Advanced Editor worden komma’s gebruikt, In Nederland wordt voor DAX over het algemeen punt komma gebruikt. Afhankelijk van de regio instellingen op je pc.

 

Een werkend datamodel maken van één groot bestand

Onderstaande video behandelt een veelvoorkomend probleem dat handig is om goed op te kunnen lossen. Belangrijk, niet moeilijk én je gaat er veel plezier van hebben. Doorsnedes worden namelijk supereenvoudig om te maken!

Je krijgt van de leverancier of van iemand anders één excel met daarin álle informatie … handig toch? Niet voor een werkende analyse. Een goed werkend datamodel heeft een stervorm (zie bijvoorbeeld ook de video over datamodellen) waarin een feitentabel in het midden staat met verschillende dimensietabellen eromheen. Dat is best makkelijk om te maken - over 10 minuten weet je alles!

 

Tutorials

PowerQuery - tabellen wel of niet opnemen in de refresh

De CBS gegevens uit het voorgaande voorbeeld zijn een goed voorbeeld van een grote dataset. Met 4GB kan het makkelijk 20 minuten of langer duren voordat die binnen is. Als je daar elke keer op zou moeten wachten als je op Refresh / verversen klikt wordt dat natuurlijk al snel vervelend. Gelukkig heb je daar invloed op. Via de properties van een tabel in PowerQuery kun je aangeven of je hem wel of niet wilt meenemen in de update. Voor een relatief statische dataset als die van het CBS is het bijvoorbeeld niet nodig om daar telkens de laatste versie van te hebben.

 

GET DATA - meerdere bestanden uit één folder tegelijk inlezen

Een goede tutorial - dit keer een die al bestond, in het Engels - waarin je leert om meerdere bestanden uit één folder in te lezen. Handig in onze context bijvoorbeeld voor bijvoorbeeld jaarlijkse momentopnames van ledenaantallen.

 

PowerBI Desktop - DAX en Measures

Zodra je datamodel klaar is wordt het tijd om met visualisaties aan de slag te gaan om bijvoorbeeld een dashboard te bouwen. Het kan dan nog steeds gebeuren dat je meer informatie uit je data wilt halen. Je wilt bijvoorbeeld een grafiek maken van de gemiddelde van de afdracht per vereniging. Als dat veld nog niet beschikbaar is in je datamodel kun je dat in je rapportscherm altijd nog extra maken. Het kán natuurlijk ook in je datamodel toegevoegd worden maar dat wil je niet altijd.

Extra velden die je in je rapportscherm berekend heten Measures. Die schrijf je in een taal die DAX heet. (Data Analysis eXpressions) DAX heeft iets weg van excelformules … maar toch weer net anders. Je krijgt het snel genoeg onder de knie. Je hoeft er ook niet meteen in te duiken want PowerBI heeft een behoorlijk aantal Quick Measures al voorbereid zodat je er geen letter voor hoeft te coderen.

 

PowerQuery - Append: rijen toevoegen aan een bestaande tabel

Als je eenmaal een rapportage gemaakt hebt op basis van de ledengegevens tot en met het kalenderjaar 2019 … dan wil je niet al je werkopnieuw doen zodra de ledengegevens voor het kalenderjaar 2020 eraan toegevoegd moeten worden. Dat hoeft ook niet. Met de functie Append Query plak je het nieuwe kalenderjaar gewoon onder de bestaande tabel.

Append betekent zoveel als de brontabel langer maken door er nieuwe regels onder te plakken. Alle bewerkingen die je daarna doet om de data voor te bereiden voor analyse worden dan automatisch ook gedaan voor de nieuwe volledige tabel.

 

PowerQuery - Merge Query: kolommen toevoegen aan een bestaande tabel

Merge en Append zijn veelgebruikte bewerkingen. Append hebben we hierboven al uitgelegd: nieuwe regels plakken onder aan een bestaande tabel. De tabel wordt dan langer.

Merge is een vergelijkbare bewerking. Hier gaat het om het toevoegen van kolommen uit een andere tabel aan een bestaande tabel. De tabel wordt dus breder. Zo kun je twee gegevenssets combineren tot één meer volledige tabel. Handig bijvoorbeeld om een dimensietabel voor personen uit te breiden met een consistent geschreven kolom met de woonplaatsen.

 

PowerQuery - Keep & Remove rows: rijen bewaren of verwijderen

Opschonen van je data is één van de eerste dingen die je doet om een goed werkend datamodel te krijgen. Lege regels of duplicaten verwijderen uit een tabel is daar een goed voorbeeld van. Lege regels of duplicaten kunnen een oorzaak zijn van - ongewenste - many to many relaties in je datamodel. Opruimen hiervan helpt dat probleem vaak meteen oplossen.

 

PowerQuery - Advanced Editor: diep doordringen in wat de tool doet

Ok - dit is echt alléén om af en toe naar te kijken. We verwachten níet dat je hier ook werkelijk meteen in gaat coderen. Dat hoeft ook absoluut niet. We laten zien dat de stappen die je doorloopt tijdens het voorbewerken van je dataset onder Applied Steps staan én volledig in code terug te lezen zijn in de Advanced Editor. Daar een keer meelezen met de stappen helpt je zeker om beter te begrijpen wat er gebeurt - zeker als er iets níet gebeurt waar je wel op had gerekend. Kijk er af en toe in om er bekend mee te raken.

Schrijven komt óf nooit óf over een jaar of wat. Enige uitzondering: af en toe heeft iemand al code geschreven die je op het internet vindt die je kunt gebruiken om iets specifieks voor elkaar te krijgen. Dat is Copy Paste … geen écht schrijven, dus dat telt niet, toch?

 

PowerQuery - Detect Data Type: juiste data type kiezen

PowerBI doet dit in principe automatisch en meestal ook goed. Controleer altijd wat er gedaan is. Onverwachte of ongewenste datatypen kunnen een aanwijzing zijn dat er ergens een fout zit in de data én soms kies je liever voor een ander datatype.

Een voorbeeld hiervan zijn relatienummers. Door PowerBI vaak als een getal geïnterpreteerd. Klopt … maar je hoeft er niet mee te rekenen. Twee relatienummers optellen is een onzinnige bewerking. Daar kun je dan beter een datatype tekst van maken.

 

PowerQuery - Pivot / Unpivot: inzichten door meerdere dimensies te combineren

Draaitabellen kom je overal tegen - vooral heel vaak in rapporten. Het is een manier van samenvatten van gegevens waarbij twee dimensies met elkaar vergeleken worden. Soms wil je die gegevens ook in je eigen rapporten hergebruiken.

Met een draaitabel kun je alleen niet meteen iets in PowerBI. Sebastiaan laat je zien wat er dan misgaat én hoe je dat op kunt lossen.

 

PowerQuery - Fill Pivot: manier om ontbrekende kenmerken aan te vullen

Een eenvoudige bewerking om te zorgen dat alle regels van een kolom netjes met de juiste waarde gevuld zijn. Makkelijk verhaal - korte video.

 

PowerQuery - Replace Values: manier om consistentie te verbeteren

Waarden vervangen. Een manier om je dataset op een eenvoudige manier op te schonen of de consistentie te verbeteren. Denk bijvoorbeeld aan het consistent maken van de schrijfwijze door alle waarden om te zetten in lowercase, of bijvoorbeeld een spatie in je postcodes te vervangen door niets zodat alles op dezelfde manier geschreven is. Dat laatste voorbeeld én het resultaat ervan zie je in deze video.

 

PowerQuery - GroupBy

Data aggregeren of samenvatten is een vrij veel voorkomende bewerking. Je wilt bijvoorbeeld niet weten wat elk individueel lid aan afdracht betaalde in 2020 maar wél wat er per vereniging aan afdrachten is betaald, of per maand, of … kortom: een samenvatting.

Wanneer je die samenvatting alvast wilt doen in de tabellen waar je later mee gaat werken dan doe je dat met behulp van de knop Group By. Je zou het ook later kunnen doen in je rapportagescherm door er met een DAX formule een Measure van te maken. Hoe dat werkt leggen we uit in deze video.

Waarom zou je dit hier in PowerQuery alvast willen doen in plaats van met DAX in het rapportscherm? Als je het in PowerQuery voorbereid kunnen alle gebruikers ongeacht hun vaardigheidsniveau er gebruik van maken. Als je het in het rapportscherm gaat doen reken je op iets meer vaardigheden van degene die daar de data gaat analyseren.

 

PowerQuery - Add conditional columns

Een nieuwe kolom vullen met waarden op basis van uiteenlopende condities. Een hele fijne functie om bijvoorbeeld van een kolom met zes verschillende omschrijvingen een kolom te maken met netjes één omschrijving. Of bijvoorbeeld een kolom met competitiecategorie te maken voor iedereen die binnen een bepaalde leeftijdsgroep valt. Er zijn veel toepassingen voor te bedenken.

Als je het wilt gebruiken voor het opschonen van data: wel eerst even nadenken of je het probleem ook kunt oplossen door met een standaardreferentietabel te werken. Bijvoorbeeld de schrijfwijze van de woonplaats is misschien ook via het veld postcode en een standaardtabel van het kadaster op te schonen. Wat overblijft kun je met een Conditional Column altijd nog opschonen.

 

PowerQyery - Duplicate columns

Soms gewoon handig om de oorspronkelijke kolom te bewaren en een kopie te gaan bewerken. Houdt het overzichtelijk en voorkomt dat er informatie verloren gaat.

 

PowerQuery - Split columns

Straatnaam en huisnummer samen in één veld? Split Column kan je een goed stuk op weg helpen. Je kiest voor het splitsen op basis van een bepaalde lengte vanaf het begin of einde van de waarde of bijvoorbeeld op basis van een delimiter. Dat kan een komma, puntkomma, spatie zijn. Iets dat duidelijk herkenbaar is in de waarden die je probeert te splitsen ver meerdere kolommen.

In het geval van straatnaam en huisnummer heb je notoir lastige gevallen zoals Plein 1945 met huisnummer 3 :-) maar het is in ieder geval winst als je alleen nog een paar uitzonderingen hoeft op te lossen. (Bedenk in dit geval bijvoorbeeld eens hoe je met een Conditional Column een voorselectie kunt maken op de uitzonderingsgevallen)

 

PowerQuery - Merge columns

Kolommen samenvoegen kun je bijvoorbeeld doen om samengestelde sleutels te maken - een manier om te zorgen dat je een link kunt leggen tussen twee tabellen. Als je bijvoorbeeld van twee tabellen één complete tabel wilt maken:

  • Tabel 1: bevat de kenmerken achternaam, geslacht, geboortedatum en e-mail

  • Tabel 2: bevat de kenmerken achternaam, geslacht, geboortedatum, bondsnummer en een postadres.

Door in beide tabellen een Merge Column te maken waarin je achternaam, geslacht en geboortedatum combineert krijg je een - redelijk - unieke sleutel waarna je beide tabellen kunt combineren. Je komt er na combineren vanzelf achter of de sleutel inderdaad uniek is of dat er nog steeds dubbelingen ontstaan. Jansen, m, 7 juli 2001 zou best eens vaker voor kunnen komen. Samengestelde sleutels helpen je soms wel maar kunnen lastig zijn om perfect te krijgen.

 

PowerQuery - Date & Time

Handig om van een kolom met geboortedatum bijvoorbeeld een geboortejaar of leeftijd te maken. Eén van de functies waarmee je met een druk op de knop je data verrijkt voor extra doorsnedes en inzicht.