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.
Kueri bahasa rumus Power Query M terdiri dari langkah-langkah ekspresi rumus yang membuat kueri mashup. Ekspresi rumus dapat dievaluasi (dihitung), menghasilkan nilai.
Ekspresi let merangkum sekumpulan nilai yang akan dihitung, diberi nama, lalu digunakan dalam ekspresi berikutnya yang mengikuti dalam pernyataan. Misalnya, ekspresi let dapat berisi variabel Sumber
Biarkan ekspresi
let
Source = Text.Proper("hello world")
in
Source
Dalam contoh di atas, Text.Proper("hello world")
dievaluasi ke "Hello World"
.
Bagian berikutnya menjelaskan jenis nilai dalam bahasa tersebut.
Nilai primitif
Nilai primitif adalah nilai bagian tunggal, seperti angka, logis, teks, atau null. Nilai null dapat digunakan untuk menunjukkan tidak adanya data apa pun.
Jenis | Contoh nilai |
---|---|
Biner | 00 00 00 02 // jumlah titik (2) |
Tanggal | 5/23/2015 |
DateTime | 23/5/2015 12:00:00 AM |
Zona Tanggal Waktu | 23/5/2015 12:00:00 AM -08:00 |
Durasi | 15:35:00 |
Logika | benar dan salah |
Null | null |
Number | 0, 1, -1, 1,5, dan 2,3e-5 |
Teks | "abc" |
Waktu | 12:34:12 PM |
Nilai fungsi
Fungsi adalah nilai yang, ketika dipanggil dengan argumen, menghasilkan nilai baru. Fungsi ditulis dengan mencantumkan parameter fungsi dalam tanda kurung, diikuti oleh simbol masuk ke =>, diikuti dengan ekspresi yang menentukan fungsi. Misalnya, untuk membuat fungsi yang disebut MyFunction yang memiliki dua parameter dan melakukan perhitungan pada parameter1 dan parameter2:
let
MyFunction = (parameter1, parameter2) => (parameter1 + parameter2) / 2
in
MyFunction
Memanggil MyFunction mengembalikan hasil:
let
Source = MyFunction(2, 4)
in
Source
Kode ini menghasilkan nilai 3.
Nilai data terstruktur
Bahasa M mendukung nilai data terstruktur berikut:
Catatan
Data terstruktur dapat berisi nilai M apa pun. Untuk melihat beberapa contoh, buka Contoh data terstruktur tambahan.
List
Daftar adalah urutan nilai berurutan berbasis nol yang diapit dalam karakter kurung kurawal { }. Karakter kurung kurawal { } juga digunakan untuk mengambil item dari daftar menurut posisi indeks. Untuk informasi selengkapnya, buka Mencantumkan nilai.
Catatan
Power Query M mendukung ukuran daftar tak terbatas, tetapi jika daftar ditulis sebagai harfiah, daftar memiliki panjang tetap. Misalnya, {1, 2, 3} memiliki panjang tetap 3.
Berikut ini adalah beberapa contoh Daftar.
Nilai | Jenis |
---|---|
{123, benar, "A"} | Daftar yang berisi angka, logis, dan teks. |
{1, 2, 3} | Daftar angka |
{ {1, 2, 3}, {4, 5, 6} } |
Daftar nomor |
{ [CustomerID = 1, Nama = "Bob", Telepon = "123-4567"], [CustomerID = 2, Name = "Jim", Phone = "987-6543"] } |
Daftar Rekaman |
{123, benar, "A"}{0} | Dapatkan nilai item pertama dalam Daftar. Ekspresi ini mengembalikan nilai 123. |
{ {1, 2, 3}, {4, 5, 6} }{0}{1} |
Dapatkan nilai item kedua dari elemen Daftar pertama. Ekspresi ini mengembalikan nilai 2. |
Rekaman
Rekaman adalah sekumpulan bidang. Bidang adalah pasangan nama/nilai di mana nama adalah nilai teks yang unik dalam rekaman bidang. Sintaks untuk nilai rekaman memungkinkan nama ditulis tanpa tanda kutip, formulir juga disebut sebagai pengidentifikasi. Pengidentifikasi dapat mengambil dua formulir berikut:
identifier_name seperti OrderID.
#"nama pengidentifikasi" seperti #"Data hari ini adalah: ".
Berikut ini adalah rekaman yang berisi bidang bernama "OrderID", "CustomerID", "Item", dan "Price" dengan nilai 1, 1, "Fishing rod", dan 100.00. Karakter kurung kurawal [ ] menunjukkan awal dan akhir ekspresi rekaman, dan digunakan untuk mendapatkan nilai bidang dari rekaman. Contoh berikut menunjukkan rekaman dan cara mendapatkan nilai bidang Item.
Berikut adalah contoh catatan:
let Source =
[
OrderID = 1,
CustomerID = 1,
Item = "Fishing rod",
Price = 100.00
]
in Source
Untuk mendapatkan nilai Item, Anda menggunakan tanda kurung siku sebagai Source[Item]
:
let Source =
[
OrderID = 1,
CustomerID = 1,
Item = "Fishing rod",
Price = 100.00
]
in Source[Item] //equals "Fishing rod"
Tabel
Tabel adalah sekumpulan nilai yang diatur ke dalam kolom dan baris bernama. Jenis kolom bisa implisit atau eksplisit. Anda bisa menggunakan #table untuk membuat daftar nama kolom dan daftar baris. Tabel nilai adalah Daftar dalam Daftar. Karakter kurung kurawal { } juga digunakan untuk mengambil baris dari posisi Tabel menurut indeks (buka Contoh 3 - Dapatkan baris dari tabel menurut posisi indeks).
Contoh 1 - Membuat tabel dengan jenis kolom implisit
let
Source = #table(
{"OrderID", "CustomerID", "Item", "Price"},
{
{1, 1, "Fishing rod", 100.00},
{2, 1, "1 lb. worms", 5.00}
})
in
Source
Contoh 2 - Membuat tabel dengan jenis kolom eksplisit
let
Source = #table(
type table [OrderID = number, CustomerID = number, Item = text, Price = number],
{
{1, 1, "Fishing rod", 100.00},
{2, 1, "1 lb. worms", 5.00}
}
)
in
Source
Kedua contoh sebelumnya membuat tabel dengan bentuk berikut:
OrderID | CustomerID | Item | Harga |
---|---|---|---|
1 | 1 | Pancing | 100.00 |
2 | 1 | 1 lb. cacing | 5.00 |
Contoh 3 - Dapatkan baris dari tabel menurut posisi indeks
let
Source = #table(
type table [OrderID = number, CustomerID = number, Item = text, Price = number],
{
{1, 1, "Fishing rod", 100.00},
{2, 1, "1 lb. worms", 5.00}
}
)
in
Source{1}
Ekspresi ini mengembalikan rekaman berikut:
Bidang | Nilai |
---|---|
OrderID | 2 |
CustomerID | 1 |
Benda | 1 lb. cacing |
Harga | 5 |
Contoh data terstruktur tambahan
Data terstruktur dapat berisi nilai M apa pun. Berikut adalah beberapa contoh:
Contoh 1 - Daftar dengan nilai [Primitif](#_Primitive_value_1), [Function](#_Function_value), dan [Record](#_Record_value)
let
Source =
{
1,
"Bob",
DateTime.ToText(DateTime.LocalNow(), "yyyy-MM-dd"),
[OrderID = 1, CustomerID = 1, Item = "Fishing rod", Price = 100.0]
}
in
Source
Mengevaluasi ekspresi ini dapat divisualisasikan sebagai:
Contoh 2 - Rekaman yang berisi nilai primitif dan rekaman berlapis
let
Source = [CustomerID = 1, Name = "Bob", Phone = "123-4567", Orders =
{
[OrderID = 1, CustomerID = 1, Item = "Fishing rod", Price = 100.0],
[OrderID = 2, CustomerID = 1, Item = "1 lb. worms", Price = 5.0]
}]
in
Source
Mengevaluasi ekspresi ini dapat divisualisasikan sebagai:
Catatan
Meskipun banyak nilai dapat ditulis secara harfiah sebagai ekspresi, nilai bukanlah ekspresi. Misalnya, ekspresi 1 mengevaluasi ke nilai 1; ekspresi 1+1 mengevaluasi ke nilai 2. Perbedaan ini halus, tetapi penting. Ekspresi adalah resep untuk evaluasi; nilai adalah hasil evaluasi.
Jika ekspresi
Ekspresi if memilih antara dua ekspresi berdasarkan kondisi logis. Contohnya:
if 2 > 1 then
2 + 2
else
1 + 1
Ekspresi pertama (2 + 2) dipilih jika ekspresi logis (2 > 1) benar, dan ekspresi kedua (1 + 1) dipilih jika salah. Ekspresi yang dipilih (dalam hal ini 2 + 2) dievaluasi dan menjadi hasil ekspresi if (4).