Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam bahasa rumus Power Query M, fungsi adalah pemetaan dari sekumpulan nilai input ke satu nilai output. Fungsi ditulis dengan terlebih dahulu menamai parameter fungsi, lalu memberikan ekspresi untuk menghitung hasil fungsi. Isi fungsi mengikuti simbol masuk ke (=>). Secara opsional, informasi jenis dapat disertakan pada parameter dan nilai pengembalian fungsi. Fungsi didefinisikan dan dipanggil dalam isi pernyataan let . Parameter dan/atau nilai pengembalian bisa implisit atau eksplisit. Parameter implisit dan/atau nilai pengembalian adalah jenis apa pun. Ketik apa pun mirip dengan jenis objek dalam bahasa lain. Semua jenis dalam M berasal dari jenis apa pun.
Fungsi adalah nilai seperti angka atau nilai teks, dan dapat disertakan dalam baris seperti ekspresi lainnya. Contoh berikut menunjukkan fungsi yang merupakan nilai variabel Tambahkan , yang kemudian dipanggil, atau dijalankan, dari beberapa variabel lain. Saat fungsi dipanggil, sekumpulan nilai ditentukan bahwa secara logis menggantikan set nilai input yang diperlukan dalam ekspresi isi fungsi.
Contoh - Parameter eksplisit dan nilai pengembalian
let
AddOne = (x as number) as number => x + 1,
//additional expression steps
CalcAddOne = AddOne(5)
in
CalcAddOne
Contoh - Parameter implisit dan nilai pengembalian
let
Add = (x, y) => x + y,
AddResults =
[
OnePlusOne = Add(1, 1), // equals 2
OnePlusTwo = Add(1, 2) // equals 3
]
in
AddResults
Temukan elemen pertama dari daftar yang lebih besar dari 5, atau null jika tidak
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
Fungsi dapat digunakan secara rekursif. Untuk mereferensikan fungsi secara rekursif, awali pengidentifikasi dengan @.
let
fact = (num) => if num = 0 then 1 else num * @fact (num-1)
in
fact(5) // equals 120
Setiap kata kunci
Setiap kata kunci digunakan untuk membuat fungsi sederhana dengan mudah.
each ...
adalah gula sintaktik untuk tanda tangan fungsi yang mengambil _
parameter (_) => ...
.
Setiap kata kunci berguna ketika dikombinasikan dengan operator pencarian, yang diterapkan secara default ke _
.
Misalnya, each [CustomerID]
sama each _[CustomerID]
dengan , yang sama (_) => _[CustomerID]
dengan .
Contoh - Menggunakan masing-masing dalam filter baris tabel
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"