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

M işlevleri alıştırması: Text, List, Record, Date

Sık kullanılan M işlevlerini kısa görevlerle yazmak: Text.Contains, Text.Remove, List.Sort, List.Max, Record.AddField, Record.ToTable, Table.Profile, M ile takvim.

Uygulamada aç, 19 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ç.

Bu ders neredeyse tamamen koddur. Learn’deki işlev başvuruları: Text.*, List.*, Record.*, Date.*. Takıldığında sonucun türüne bak: bu görevlerin çoğu tablo değil, liste, kayıt ya da tek değer döndürür.

AileBu derste
TextContains, StartsWith, Select, PadStart, Combine
ListMax, Min, Average, Count, Sort, Distinct, PositionOf, RemoveNulls, Zip
RecordFieldNames, HasFields, AddField, RemoveFields, SelectFields, TransformFields, ToTable
DateAddMonths, Year, QuarterOfYear, ToText; List.Dates ve List.Min ile takvim

Record: kayıt üstünde çalışmak

let
    R = [Ad = "Ayşe", Yas = 30],
    Eklendi = Record.AddField(R, "Sehir", "Bursa"),
    Sade = Record.RemoveFields(Eklendi, "Yas")
in
    [Adlar = Record.FieldNames(Sade), Var = Record.HasFields(Sade, "Ad"), Tablo = Record.ToTable(Sade)]

Table.Profile

Görünüm sekmesindeki sütun profilinin kod karşılığı: her sütun için en küçük, en büyük, ortalama, standart sapma, sayım, null ve ayrı sayısı. Denetim sorgusu olarak yükleyebilirsin.

Table.Profile(Satislar)

Takvim: M ile

PL-300’ün ortak tarih tablosu maddesi DAX ya da M ile yapılabilir. Veriye bağlı aralık kurmak için List.Min ve List.Max kullanılır:

let
    Bas = List.Min(Satislar[Tarih]),
    Son = List.Max(Satislar[Tarih]),
    Gun = Duration.Days(Son - Bas) + 1,
    T = Table.FromList(List.Dates(Bas, Gun, #duration(1, 0, 0, 0)), Splitter.SplitByNothing(), {"Tarih"}),
    Tipli = Table.TransformColumnTypes(T, {{"Tarih", type date}}),
    Yil = Table.AddColumn(Tipli, "Yıl", each Date.Year([Tarih]), Int64.Type),
    Ay = Table.AddColumn(Yil, "Ay", each Date.Month([Tarih]), Int64.Type)
in
    Table.FirstN(Ay, 5)
Alıştırmalara geç (19)