Megosztás a következőn keresztül:


A Power Query M-függvények ismertetése

A Power Query M képletnyelvében a függvény egy bemeneti értékkészletből egyetlen kimeneti értékre való leképezés. A függvényt először a függvényparaméterek elnevezésével, majd a függvény eredményének kiszámításához adja meg. A függvény törzse a goes-to (=>) szimbólumot követi. Opcionálisan a paraméterek és a függvény visszatérési értéke is megadható a típusadatok között. A függvények definiálása és meghívása egy let utasítás törzsében történik. A paraméterek és/vagy a visszatérési érték implicit vagy explicit lehet. Az implicit paraméterek és/vagy visszatérési értékek bármilyen típusúak. Bármely típus hasonló más nyelvek objektumtípusához. Az M összes típusa bármelyik típusból származik.

A függvények olyan értékek, mint egy szám vagy egy szöveges érték, és ugyanúgy belefoglalhatók a sorba, mint bármely más kifejezés. Az alábbi példa egy függvényt mutat be, amely egy Add változó értéke, amelyet aztán meghív vagy végrehajt több más változóból. Függvény meghívásakor olyan értékkészletet határoz meg, amely logikailag helyettesíti a függvény törzskifejezésén belül a szükséges bemeneti értékeket.

Példa – Explicit paraméterek és visszatérési érték

let  
    AddOne = (x as number) as number => x + 1,  
    //additional expression steps  
    CalcAddOne = AddOne(5)  
in  
    CalcAddOne  

Példa – Implicit paraméterek és visszatérési érték

let  
    Add = (x, y) => x + y,  
    AddResults =   
        [  
            OnePlusOne = Add(1, 1),     // equals 2  
            OnePlusTwo = Add(1, 2)      // equals 3  
    ]  
in  
    AddResults  

Az 5-nél nagyobb lista első elemének megkeresése, ellenkező esetben null értékű

let  
    FirstGreaterThan5 = (list) =>   
        let   
            GreaterThan5 = List.Select(list, (n) => n> 5),  
            First = List.First(GreaterThan5)  
        in  
            First,  
    Results =   
    [  
            Found    = FirstGreaterThan5({3,7,9}),  // equals 7  
            NotFound = FirstGreaterThan5({1,3,4})   // equals null  
    ]  
in  
    Results  

A függvények rekurzív módon használhatók. A függvény rekurzív hivatkozásához az azonosító előtagja @.

let   
    fact = (num) => if num = 0 then 1 else num * @fact (num-1)   
in   
    fact(5) // equals 120  

Minden kulcsszó

Az egyes kulcsszavak egyszerű függvények egyszerű létrehozására szolgálnak. "minden ..." a "(_) => ..." _ paramétert tartalmazó függvény-aláíráshoz tartozó szintaktikai cukor.

Mindegyik hasznos lehet a keresési operátorral kombinálva, amely alapértelmezés szerint a _ értékre van alkalmazva
Például mindegyik [CustomerID] ugyanaz, mint az egyes _[CustomerID], ami megegyezik a (_) => _[CustomerID] azonosítóval

Példa – Mindegyik használata táblasorszűrőben

Table.SelectRows(  
      Table.FromRecords({  
            [CustomerID = 1, Name = "Bob", Phone = "123-4567"],  
            [CustomerID = 2, Name = "Jim", Phone = "987-6543"] ,  
            [CustomerID = 3, Name = "Paul", Phone = "543-7890"] ,  
            [CustomerID = 4, Name = "Ringo", Phone = "232-1550"]  
      }),   
      each [CustomerID] = 2  
)[Name]  
  
// equals "Jim"