M-formuletaal

Gevorderde Power Query 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
Gevorderde Power Query 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

Gevorderde Power Query 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

Gevorderde Power Query 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

Gevorderde Power Query in Excel

Waardetypen

Primitief

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

Gestructureerd

  • Lijst
  • Record
  • Tabel
  • Functie
Gevorderde Power Query 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}})
    
Gevorderde Power Query 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
Gevorderde Power Query in Excel

Aangepaste functies

  • Complexe berekeningen
  • Hergebruik
  • Parameterisatie
  • Prestatie-optimalisatie

 

  Syntaxis aangepaste functie:

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

Aangepaste functies

Eenvoudig voorbeeld aangepaste functie:

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

     

Ch3_simple_custom_function.png

Gevorderde Power Query 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

Gevorderde Power Query in Excel

Laten we oefenen!

Gevorderde Power Query in Excel

Preparing Video For Download...