Power BI Masterclass

Leer Power BI van beginner tot expert - DAX, Power Query, data modeling, dashboard design en AI visuals

Master Power BI in 15 Uur

De complete masterclass voor Power BI - Leer data transformatie met Power Query, geavanceerde DAX formules, data modeling en professionele dashboard design.

15+ uur
Video Content
25
Praktijk Oefeningen
Certificaat
Na Voltooiing
PL-300
Certificering Prep

Les 1: Power BI Fundamentals

90 minuten Beginner Inclusief Demo

Wat is Power BI? Het Complete Analytics Platform

Power BI is Microsoft's business intelligence en data visualisatie platform waarmee je data kunt transformeren, modelleren en visualiseren in interactieve dashboards en rapporten.

Key Insight

Power BI bestaat uit drie hoofdcomponenten: Power BI Desktop (gratis ontwikkelingstool), Power BI Service (cloud service voor delen en samenwerken), en Power BI Mobile (apps voor iOS en Android).

Power BI Architecture & Components

Data Sources

Excel, SQL, APIs, Cloud services

Power Query

ETL & data transformatie

Data Model

Relaties, star schema

DAX

Berekeningen & measures

Visualizations

Charts, tables, custom visuals

Power BI Service

Delen, samenwerken, gateways

Power BI vs Andere BI Tools

Feature Power BI Tableau Qlik Sense Excel
Prijs ✅ Gratis Desktop, €9.99/maand Pro ❌ €70/maand (Creator) ❌ €30/maand ✅ Onderdeel van Office 365
Microsoft Integration ✅ Uitstekend (Excel, Teams, Azure) ❌ Beperkt ❌ Beperkt ✅ Perfect
Learning Curve ✅ Matig (vooral DAX) ❌ Steil (M taal, complex) ❌ Steil (Scripting) ✅ Makkelijk (basis)
Data Modeling ✅ Uitstekend (in-memory) ❌ Beperkt ✅ Goed (associative) ❌ Zeer beperkt
AI Features ✅ Uitstekend (Copilot, AutoML) ✅ Goed (Einstein) ✅ Matig ❌ Zeer beperkt
Community & Resources ✅ Enorm (Microsoft ecosystem) ✅ Groot ✅ Matig ✅ Enorm

Pro Tip: Wanneer Power BI Kiezen?

Kies Power BI wanneer je: (1) Al in Microsoft ecosystem zit, (2) Goedkope oplossing nodig hebt, (3) Geavanceerde data modeling wil, (4) Sterke DAX berekeningen nodig hebt, (5) Veel wil integreren met Excel/Azure.

Je Eerste Power BI Rapport: Complete Demo

Power Query M - sales_transform.m

// Stap 1: Data laden van Excel
let
    Bron = Excel.Workbook(File.Contents("C:\Data\Sales.xlsx"), null, true),
    Sales_Sheet = Bron{[Item="Sales",Kind="Sheet"]}[Data],
    
    // Stap 2: Headers promoveren
    Headers = Table.PromoteHeaders(Sales_Sheet, [PromoteAllScalars=true]),
    
    // Stap 3: Data types instellen
    ChangedType = Table.TransformColumnTypes(Headers,{
        {"OrderID", Int64.Type},
        {"OrderDate", type date},
        {"CustomerID", Int64.Type},
        {"ProductID", Int64.Type},
        {"Quantity", Int64.Type},
        {"UnitPrice", Currency.Type},
        {"TotalAmount", Currency.Type},
        {"Region", type text},
        {"SalesPerson", type text}
    }),
    
    // Stap 4: Berekende kolom toevoegen
    AddYearMonth = Table.AddColumn(ChangedType, "YearMonth", 
        each Date.ToText([OrderDate], "YYYY-MM"), type text),
    
    // Stap 5: Filters toepassen
    FilteredRows = Table.SelectRows(AddYearMonth, each [TotalAmount] > 0),
    
    // Stap 6: Ongeldige data verwijderen
    RemoveNulls = Table.SelectRows(FilteredRows, each 
        not List.Contains({null, ""}, [CustomerID])),
    
    // Stap 7: Sorteren
    SortedRows = Table.Sort(RemoveNulls,{{"OrderDate", Order.Descending}})
in
    SortedRows

// Stap 8: Parameters voor hergebruik
RegionalSettings = [
    CurrencySymbol = "€",
    DecimalSeparator = ",",
    ThousandSeparator = "."
],

// Stap 9: Function voor herhaalbare transformaties
CleanCurrencyColumn = (table as table, columnName as text) as table =>
    let
        ReplaceSymbols = Table.ReplaceValue(table,
            each Record.Field(_, columnName),
            each Text.Replace(Text.Replace(_, "€", ""), ".", ""),
            Replacer.ReplaceText,
            {columnName}
        ),
        ToNumber = Table.TransformColumnTypes(ReplaceSymbols,
            {{columnName, Currency.Type}}
        )
    in
        ToNumber
        

DAX Voorbeelden: Je Eerste Measures & Calculated Columns

DAX - sales_measures.dax

// ========================
// BASICS MEASURES
// ========================

// Totale verkopen (basis measure)
Total Sales = SUM(Sales[TotalAmount])

// Aantal orders (COUNTROWS)
Total Orders = COUNTROWS(Sales)

// Aantal unieke klanten (DISTINCTCOUNT)
Unique Customers = DISTINCTCOUNT(Sales[CustomerID])

// Gemiddelde order waarde (AVERAGE)
Average Order Value = AVERAGE(Sales[TotalAmount])

// ========================
// TIME INTELLIGENCE
// ========================

// Verkopen dit jaar (TOTALYTD)
Sales YTD = TOTALYTD(
    [Total Sales],
    'Date'[Date],
    "31/12"  // Jaareinde
)

// Verkopen vorig jaar (SAMEPERIODLASTYEAR)
Sales Previous Year = 
CALCULATE(
    [Total Sales],
    SAMEPERIODLASTYEAR('Date'[Date])
)

// YoY groei percentage
Sales YoY Growth = 
DIVIDE(
    [Total Sales] - [Sales Previous Year],
    [Sales Previous Year],
    0
)

// Rolling 12 maanden (TRAILING 12 MONTHS)
Sales Rolling 12M = 
CALCULATE(
    [Total Sales],
    DATESINPERIOD(
        'Date'[Date],
        MAX('Date'[Date]),
        -12,
        MONTH
    )
)

// ========================
// CONDITIONAL MEASURES
// ========================

// Verkopen alleen voor premium klanten
Premium Sales = 
CALCULATE(
    [Total Sales],
    Customer[Segment] = "Premium"
)

// Verkopen boven €1000 (high-value orders)
High Value Sales = 
CALCULATE(
    [Total Sales],
    Sales[TotalAmount] > 1000
)

// Percentage van totale verkopen
Premium Sales % = 
DIVIDE(
    [Premium Sales],
    [Total Sales],
    0
)

// ========================
// RANKING & TOP N
// ========================

// Rangschikking van producten op verkopen
Product Sales Rank = 
RANKX(
    ALL(Product[ProductName]),
    [Total Sales],
    ,
    DESC,
    Dense
)

// Top 5 producten identificeren
Is Top 5 Product = 
VAR CurrentProductSales = [Total Sales]
VAR Top5Products = 
    TOPN(
        5,
        VALUES(Product[ProductName]),
        [Total Sales]
    )
RETURN
    IF(
        SELECTEDVALUE(Product[ProductName]) IN Top5Products,
        "Top 5",
        "Other"
    )

// ========================
// DYNAMIC FORMATTING
// ========================

// Voorwaardelijke opmaak op basis van target
Sales vs Target = 
VAR SalesAmount = [Total Sales]
VAR TargetAmount = [Sales Target]
RETURN
    SalesAmount - TargetAmount

// Format als € of %
Sales vs Target Formatted = 
VAR Difference = [Sales vs Target]
VAR TargetAmount = [Sales Target]
VAR Percentage = DIVIDE(Difference, TargetAmount, 0)
RETURN
    IF(
        ABS(Percentage) < 0.01,  // Kleine verschillen
        FORMAT(Difference, "€#,##0"),
        FORMAT(Percentage, "0.0%")
    )

// ========================
// AI-POWERED MEASURES
// ========================

// Voorbeeld met AI visuals (Quick Insights)
// Power BI kan automatisch patronen detecteren
// Gebruik: Home tab → Quick Insights

// ========================
// PERFORMANCE OPTIMALISATIE
// ========================

// Gebruik VARIABLES voor betere performance
Optimized Sales Calculation = 
VAR TotalRevenue = SUM(Sales[TotalAmount])
VAR TotalCost = SUM(Sales[CostAmount])
VAR TotalQuantity = SUM(Sales[Quantity])
RETURN
    DIVIDE(TotalRevenue - TotalCost, TotalQuantity, 0)

// ========================
// DUTCH SPECIFIC FORMATTING
// ========================

// Nederlands geld formaat met euro teken
Sales Formatted NL = 
FORMAT(
    [Total Sales],
    "€ #,##0.00;€ -#,##0.00;€ 0.00"
)

// Nederlandse datum formaten
Last Order Date NL = 
FORMAT(
    MAX(Sales[OrderDate]),
    "dd-MM-yyyy"
)

// Nederlandse duizend/miljoen afkortingen
Sales Abbreviated NL = 
VAR Value = [Total Sales]
RETURN
    SWITCH(
        TRUE(),
        Value >= 1000000, FORMAT(Value / 1000000, "0.0") & "M",
        Value >= 1000, FORMAT(Value / 1000, "0.0") & "K",
        FORMAT(Value, "0")
    ) & " €"

// ========================
// REAL-WORLD BUSINESS SCENARIO
// ========================

// Nederlandse BTW berekening (21%)
Sales Excluding VAT = 
DIVIDE([Total Sales], 1.21)

// Kwartaal performance vs vorig jaar
Sales Growth QoQ = 
VAR CurrentQuarter = [Total Sales]
VAR PreviousQuarter = 
    CALCULATE(
        [Total Sales],
        DATEADD('Date'[Date], -1, QUARTER)
    )
RETURN
    DIVIDE(
        CurrentQuarter - PreviousQuarter,
        PreviousQuarter,
        0
    )

// Customer segmentation gebaseerd op RFM
Customer Segment = 
VAR Recency = DATEDIFF(MAX(Sales[OrderDate]), TODAY(), DAY)
VAR Frequency = [Total Orders]
VAR Monetary = [Total Sales]
RETURN
    SWITCH(
        TRUE(),
        Recency <= 30 && Frequency >= 10 && Monetary >= 5000, "Champions",
        Recency <= 60 && Frequency >= 5, "Loyal Customers",
        Monetary >= 10000, "High Value",
        "Need Attention"
    )
        
Executive Sales Dashboard
Total Sales
€4.2M
+12% YoY
Orders
42,158
+8% YoY
Customers
2,415
+15% YoY
Avg Order
€99.63
+4% YoY
Monthly Sales Trend
Top Products
Product A €850K
Product B €720K
Sales by Region

Oefening: Bouw Je Eerste Dashboard

Scenario: Je werkt voor een Nederlandse retail keten met 50 winkels. Je krijgt:

  • Excel bestand met dagelijkse sales (100k+ rijen)
  • Product catalogus met categorieën en prijzen
  • Winkel locaties en metadata
  • Promotie kalender

Opdracht: Bouw een Power BI dashboard met:

  1. KPI's voor totale omzet, orders, gemiddelde orderwaarde
  2. Time intelligence: YTD, YoY groei, rolling 12 maanden
  3. Top 10 producten en categorieën
  4. Geografische weergave per winkel
  5. Segmentatie op klanttype (nieuw/terugkerend)
  6. What-if analyse voor prijsveranderingen

Real-World Case: Albert Heijn

Uitdaging: Albert Heijn had gefragmenteerde rapportages in Excel, trage refreshes, en geen real-time inzichten in winkels.

Oplossing met Power BI:

  • Gecentraliseerd data warehouse met Azure Synapse
  • Real-time Power BI dashboards per winkel
  • AI-powered forecasting voor voorraadbeheer
  • Mobile dashboards voor store managers
  • Power BI Premium voor enterprise sharing

Resultaat: 80% reductie in rapportage tijd, real-time inzicht in voorraad, 15% minder voedselverspilling door betere forecasting, en self-service analytics voor 500+ managers.

Power BI Visualization Gallery

Bar & Column Charts

Voor vergelijkingen tussen categorieën

Best voor: Sales per region, Product performance
Line Charts

Voor trends over tijd

Best voor: Sales trends, Growth metrics
Pie & Donut Charts

Voor proportionele verdelingen

Best voor: Market share, Budget allocation
Maps & Geospatial

Voor geografische data

Best voor: Regional sales, Store locations
AI Visuals

Voor geavanceerde analyses

Best voor: Forecasting, Anomaly detection

Power BI Knowledge Check

Vraag 1: Wat is het verschil tussen Power BI Desktop en Power BI Service?

A. Desktop is voor ontwikkeling, Service is voor delen/publiceren
B. Desktop is alleen voor Windows, Service voor Mac
C. Desktop heeft meer visuals dan Service
D. Service is gratis, Desktop kost geld

Vraag 2: Wat doet de CALCULATE functie in DAX?

A. Wijzigt de filtercontext van een berekening
B. Berekenent het gemiddelde van een kolom
C. Creëert een nieuwe tabel
D. Converteert tekst naar getallen

Vraag 3: Wat is Power Query in Power BI?

A. ETL tool voor data transformatie en cleaning
B. Een programmeertaal voor visuals
C. Een cloud service voor data opslag
D. Een AI tool voor forecasting

Power BI Carrière Kansen in Nederland

Power BI is de #1 gevraagde BI skill in Nederland. Gemiddelde salarissen (2024):

€40K - €55K
Junior Power BI Analyst
€55K - €75K
Power BI Developer
€70K - €95K+
Senior Power BI Consultant
€85K - €120K+
BI Architect

Tip: PL-300 Power BI Data Analyst certificering verhoogt je salaris met 20-30%. Nederlandse organisaties hebben enorme vraag naar Power BI experts.

Power BI Certificering Pad

Na deze masterclass ben je klaar voor:

PL-300: Power BI Data Analyst

Prepare, model, visualize and analyze data

DA-100: Analyzing Data

Data visualization and reporting (oudere certificering)

Microsoft Certified: Fabric

End-to-end analytics with Power BI and Fabric

Advanced DAX Specialist

Industry recognition for DAX expertise

Power BI Licensing Calculator

Power BI heeft verschillende licentie modellen. Bereken jouw kosten:

10 gebruikers

Geschatte maandelijkse kosten:

€99.90

Inclusief: Rapport creatie, delen & samenwerken, 8x daily refresh, 10GB storage

Power BI Learning Resources

Sample Datasets & PBIX

Complete Power BI bestanden met realistische data voor oefeningen en portfolio projects.

Download Samples

DAX Cheat Sheets

Complete DAX referentie gids met formules voor time intelligence, filtering en advanced scenarios.

Download Cheat Sheets

Dashboard Templates

Professionale dashboard templates voor sales, finance, HR en marketing.

Download Templates

NL Power BI Community

Sluit je aan bij de Nederlandse Power BI User Group (meetups, workshops, networking).

Word Lid

Jouw Power BI Learning Journey

Na deze masterclass kun je door naar:

Actuele Power BI Vacatures

Bekijk onze Power BI vacatures voor de nieuwste kansen bij Nederlandse top organisaties zoals banken, overheden, retail en consultancy.

Power BI vs Tableau vs Qlik - Dutch Market

Criterium Power BI Tableau Qlik Sense Google Looker
Marktaandeel NL ✅ 65% (dominant) 20% (zakelijk) 10% (niche) 5% (groeiend)
Kosten (per gebruiker/maand) €9.99 (Pro) €70+ (Creator) €30+ (Business) €25+ (Standard)
Learning Resources NL ✅ Uitstekend (veel NL content) Matig (veel Engelstalig) Beperkt Zeer beperkt
Microsoft Integratie ✅ Perfect Matig Beperkt Slecht
Vacatures in NL (2024) ✅ 850+ 120+ 45+ 30+
Toekomstperspectief ✅ Zeer sterk (Microsoft ecosystem) Stabiel (Salesforce) Afnemend Groeiend (Google Cloud)

In Nederland is Power BI de duidelijk marktleider met de meeste vacatures en beste carrièreperspectieven.