Ana içeriğe geç
Kesit Power BI
Orta · Veri Hazırlama

M’de kayıt, liste, tablo: yapıları kurmak ve gezmek

Kayıt ve liste kurma, alan ve öğe erişimi, ? ile güvenli erişim, #table, Table.ToRecords, Record.Field ile değişken alan adı.

Uygulamada aç, 11 alıştırmayı çözÜcretsiz, hesap gerekmez, kurulum yok.

Bu sayfa dersin okuma sürümüdür. Metin bir kutuyu çalıştırmanı ya da adıma geçmeni söylüyorsa dersi uygulamada aç.

Üç yapı, üç parantez

YapıKurmaErişimKarşılığı
Liste{1, 2, 3}, {1..12}x{0} (0’dan başlar)Tablodaki bir sütun: t[Şehir]
Kayıt[Ad = "Ayşe", Yas = 30]r[Ad]Tablodaki bir satır: t{0}
Tablo#table({"a"}, {{1}}), Table.FromRecordst{0}[a], t{[a = 1]}Sorgu sonucu

Süslü parantez öğe, köşeli parantez alan okur. Bu ikisini ayırmak M’yi okumanın yarısıdır.

let
    Satir = Satislar{0},
    Sutun = Satislar[Tutar],
    Hucre = Satislar{0}[Şehir],
    Anahtar = Satislar{[SiparisNo = 1005]}[Tutar]
in
    [Ilk = Satir[Tarih], Adet = List.Count(Sutun), Hucre = Hucre, Anahtar = Anahtar]

Sütun listedir, satır kayıttır: Satislar[Tutar] dediğinde liste işlevleri, Satislar{0} dediğinde kayıt işlevleri kullanılır. Kayıt alanı başka bir kayıt, liste ya da tablo olabilir; birleştirmeden sonra hücrede gördüğün Table ve Record yazısı bu yüzdendir.

Soru işareti: bulunmazsa null

r[x] alan yoksa hata verir, r[x]? null döner. Listede de aynı: {1, 2}{5}?. Şeması oynak kaynaklarda işe yarar; ama yazım hatasını da gizler, her yere koyma.

Tablo satırları kayıttır

Table.ToRecords tabloyu kayıt listesine çevirir. Satır fonksiyonunda eline gelen _ de budur. Alan adı bir değişkendeyse köşeli parantez çalışmaz: r[alan] sabit “alan” adlı alanı okur. Değişken ad için Record.Field gerekir.

let
    Alan = "Bölge",
    Kayitlar = Table.ToRecords(Sehir_Bolge),
    Bolgeler = List.Transform(Kayitlar, each Record.Field(_, Alan))
in
    List.Distinct(Bolgeler)

Tabloyu elle kurmak

#table(
    type table [Kod = text, Oran = number],
    {{"A", 0.1}, {"B", 0.2}}
)

Küçük eşleme tablolarını Enter Data yerine böyle yazmak, kodun okunur ve karşılaştırılabilir kalmasını sağlar.

Alıştırmalara geç (11)