M-formuletaal

Power Query voor gevorderden in Excel

Lyndsay Girard

Performance Analytics Consultant

Geavanceerde editor

  • Geschreven in de M-formuletaal (M-code)
    • Hoofdlettergevoelig
  • Let-expressies hebben twee delen:
    • "let"- en "in"-clausule
    • Kommagescheiden lijst met variabelen of stapnamen
      • Elke stap bouwt voort op de vorige stap via de naam
    • De stap na de "in"-clausule is de zichtbare query-uitvoer
let
    Source = ""
in
    Source
Power Query voor gevorderden in Excel

Geavanceerde editor

let
    MyTable = Table.FromRecords({
    [ID = 1, Name = "A", Result = 10],
    [ID = 2, Name = "B", Result = 5]})
in
    MyTable

Let-expressie met 1 stap

Power Query voor gevorderden in Excel

Geavanceerde editor

let
    MyTable = Table.FromRecords({
    [ID = 1, Name = "A", Result = 10],
    [ID = 2, Name = "B", Result = 5]}),
    #"Sorted Rows" = Table.Sort(MyTable,{{"Result", Order.Ascending}})
in
    #"Sorted Rows"

Let-expressie met 2 stappen

Power Query voor gevorderden in Excel

Geavanceerde editor

let
    MyTable = Table.FromRecords({
    [ID = 1, Name = "A", Result = 10],
    [ID = 2, Name = "B", Result = 5]}),
    #"Sort" = Table.Sort(MyTable,{{"Result", Order.Ascending}}),
    #"Lower" = Table.TransformColumns(#"Sort",{{"Name", Text.Lower, type text}})
in
    #"Lower"

Let-expressie met 3 stappen

Power Query voor gevorderden in Excel

Waardetypen

Primitief

  • Enkelvoudige waarde (bijv. getal, logisch, tekst of null)
    [ID = 1, Name = "A"]
    

Gestructureerd

  • Lijst
  • Record
  • Tabel
  • Functie
Power Query voor gevorderden in Excel

Gestructureerde waardetypen

Lijst:

  • Geordende reeks waarden met één kolom, vanaf index 0
    List = {1,2,3}
    

Record:

  • Structuur met één rij en meerdere kolommen
    Record = [Column1=1,Column2=2]
    

Tabel:

  • Combinatie van meerdere rijen en kolommen
    Table = #table({"Column A","Column B"},
          {{1,10},{2,20}})
    
Power Query voor gevorderden in Excel

Ingebouwde M-functies

Functie:

  • Waarde die, na aanroep met argumenten, een nieuwe waarde oplevert
  • Tabelfuncties
  • Lijstfuncties
  • Getalfuncties
  • Recordfuncties
  • Datumfuncties
  • Tijdfuncties
  • Duurfuncties
  • ... en veel meer!
1 https://learn.microsoft.com/en-us/powerquery-m/power-query-m-function-reference
Power Query voor gevorderden in Excel

Aangepaste functies

  • Complexe berekeningen
  • Hergebruik
  • Parameterisatie
  • Prestatie-optimalisatie

 

  Syntaxis aangepaste functie:

= (Variable as Data Type, Variable as Data Type) => (Output Expression)
Power Query voor gevorderden in Excel

Aangepaste functies

Eenvoudig voorbeeld aangepaste functie:

let
    MyFunction = (x) => x + 1
in
    MyFunction(10)

     

Ch3_simple_custom_function.png

Power Query voor gevorderden in Excel

Queryparameters

  • Plaatshouders om waarden dynamisch aan een query door te geven
    • Maakt queries flexibeler en herbruikbaar
      • Dynamische filters
      • Aangepaste functies

Hand adjusting slider buttons, changing application settings on the screen. Customizing user interface with toggle switch

Power Query voor gevorderden in Excel

Laten we oefenen!

Power Query voor gevorderden in Excel

Preparing Video For Download...