Dictionary

Power Query

Power Query is de transformatietaal van Microsoft voor data. Je gebruikt hem visueel in Power BI, Excel en Fabric Dataflows, met M als onderliggende taal. Eén keer de stappen opbouwen, daarna herhaalt Power Query ze bij elke refresh.

Wat is Power Query?

Power Query is de transformatielaag die Microsoft bovenop zowat al zijn data-tools heeft gezet. Je vindt hem in Power BI, Excel, Microsoft Fabric (als Dataflows Gen2), Power Apps en Dynamics 365. Overal waar je data binnenhaalt uit een bron en ze moet opschonen, herstructureren of combineren voor je ze gebruikt, doe je dat met Power Query.

De kracht ervan zit in de combinatie van een visuele editor en een echte taal eronder. Je klikt kolommen samen, filtert rijen weg en hernoemt velden, en Power Query bouwt op de achtergrond een expressie op in de M-taal. Die expressie draait deterministisch bij elke refresh: elke keer opnieuw, dezelfde volgorde, dezelfde uitkomst.

Je kan Power Query vergelijken met een keukenrobot. Je bouwt één keer het recept op (snijden, mengen, garen), en daarna produceert het toestel bij elke refresh hetzelfde eindgerecht zonder dat je opnieuw hoeft na te denken.

Wat maakt Power Query sterk?

Non-destructief
De brondata verandert nooit. Power Query bouwt een rij transformatiestappen die je kan aanpassen, verwijderen of herordenen zonder iets te verliezen.

Toegankelijk via clicks
Business-gebruikers kunnen 80 procent van hun werk doen zonder één regel code. Filteren, samenvoegen, kolommen splitsen, datatypes wijzigen: alles via de editor.

Krachtig via code
Zodra je de clicks ontgroeid bent, staat M klaar voor complexere logica: loops, recursie, custom functies, foutafhandeling, dynamische bronnen.

Query folding
Power Query probeert je stappen terug te vertalen naar de oorspronkelijke brontaal (SQL, OData, KQL). Transformaties die kunnen gefoldet worden, draaien op de bron zelf en niet lokaal. Dat scheelt enorm in prestaties bij grote datasets.

Brede connectoren
Meer dan 150 bronsystemen worden ondersteund: SQL-databases, SharePoint, REST-API's, SAP, Salesforce, lokale bestanden, webpagina's. Voor wat ontbreekt kan je een custom connector schrijven.

De M-taal

M (officieel Power Query Formula Language) is functioneel en expressie-gebaseerd. Elke query is één grote expressie met een reeks let-bindingen en een in-resultaat.

let
  Bron = Sql.Database("server", "db"),
  Klanten = Bron{[Schema="dbo", Item="Klant"]}[Data],
  ActieveKlanten = Table.SelectRows(Klanten, each [Status] = "Actief")
in
  ActieveKlanten

M is hoofdlettergevoelig, typebewust en heeft ingebouwde datatypes voor tabellen, records, lijsten en functies. Het voelt vreemd aan voor SQL- of DAX-schrijvers, maar is bewust consistent: één paradigma door de hele taal heen.

In 95 procent van de gevallen hoef je geen M te schrijven. Maar bij custom functies, dynamische parameters, iteratief ophalen van paginaresultaten of geavanceerde foutafhandeling ben je er snel bij.

Power Query versus DAX

Nieuwe Power BI-gebruikers verwarren Power Query en DAX vaak. Beide zijn formule-talen in Power BI, maar ze doen totaal andere dingen.

Power Query (M) bereidt data voor bij de refresh. Vorm, opschonen, combineren, denormaliseren. Het resultaat landt in de tabellen van je semantisch model.

DAX rekent op die tabellen tijdens het bekijken van het rapport. Measures, berekende kolommen, tijdsintelligentie. Het werkt alleen met data die Power Query al heeft klaargezet.

Vuistregel: wat eenmaal per refresh gebeurt hoort in Power Query, wat interactief per visual moet herrekend worden hoort in DAX. Zware berekeningen achter de refresh leggen kost altijd minder dan dezelfde logica in DAX.

Dataflows Gen2 in Fabric

In Microsoft Fabric keert Power Query terug als Dataflows Gen2. Het is dezelfde editor, dezelfde M-taal, maar met twee belangrijke verschillen:

  • Output naar OneLake: een Dataflow Gen2 schrijft het resultaat weg als Delta-tabel, bruikbaar door de rest van Fabric (Lakehouse, Warehouse, Notebooks, Power BI).

  • Hogere schaalbaarheid: Dataflows Gen2 draaien op Spark-compute in plaats van de single-machine engine van Power BI dataflows Gen1.

Teams die al Power Query in Power BI gebruikten, kunnen hun transformaties vaak 1 op 1 meenemen naar Fabric en profiteren meteen van betere prestaties en hergebruik.

Valkuilen

Query folding negeren
Wie stappen in de verkeerde volgorde zet, breekt query folding. Een filter na een gemapte berekening of een merge met een tekstbestand zet plots alles lokaal op de laadmachine. Controleer via View Native Query of Power Query de folding nog kan volgen.

Transformaties die in de bron thuishoren
Heavy-duty denormalisatie, grote joins en historische berekeningen horen vaak in een upstream ETL/ELT-laag, niet in Power Query. Gebruik Power Query voor de laatste mijl, niet voor heel je datapijplijn.

Veel kleine queries in plaats van één grote
Power Query voert queries parallel uit, wat de bron kan belasten met tientallen gelijktijdige verbindingen. Groepeer queries of gebruik een staging-aanpak voor grote refreshes.

Geen bronversiecontrole
M-code zit verstopt in een PBIX of Dataflow. Bij Power BI Projects (PBIP) en Dataflows Gen2 krijg je wel exporteerbare M-scripts. Voor kritieke transformaties is Git-versiebeheer een vereiste, geen luxe.

Laatst Bijgewerkt: April 23, 2026 Terug naar Woordenboek
Trefwoorden
power query m language power bi excel fabric dataflows data transformation etl self-service query folding dataflow gen2