Adımlar tablo alır, tablo döndürür
Table işlevlerinin ilk bağımsız değişkeni tablodur, sonucu da tablodur. Bu yüzden adımlar zincirlenir. Şeridin yazdığı kod çoğu zaman tek bir ifadeye indirilebilir, ama okunurluk için adlı adımları koru.
Table.Group: agregasyon listesi
Üçüncü bağımsız değişken {ad, fonksiyon, tür} listelerinin listesidir. Fonksiyona o grubun alt tablosu gelir; [Tutar] bu yüzden tek değer değil listedir.
Table.Group(
Satislar,
{"Şehir"},
{
{"Toplam", each List.Sum([Tutar]), type number},
{"Sipariş", each Table.RowCount(_), Int64.Type}
}
)
each _ olursa her grubun hücresine alt tablo düşer. “Tüm satırlar” seçeneği budur; ilk satırı alma ya da grup içi sıralama gibi kalıplar buna dayanır.Table.Pivot ve Table.UnpivotOtherColumns
Pivot’un ikinci bağımsız değişkeni, sütun olacak değerlerin listesidir. Şerit bunu List.Distinct(t[Ay]) diye yazar. Sabit liste yazarsan yeni ay sütun açmaz. Aşağıdaki kodda Ege’nin Mart’ı yoktur: o hücre null gelir.
Table.Pivot(Aylik_Satis, List.Distinct(Aylik_Satis[Ay]), "Ay", "Tutar", List.Sum)
Table.UnpivotOtherColumns(Hedefler, {"Kategori"}, "Ay", "Hedef")
Giyim’in Mart hücresi null olduğundan unpivot satırı üretmez: 12 yerine 11 satır çıkar. Bu, ürünün bilinen davranışıdır; Learn sayfası ayrıca yazmıyor. Rapor toplamını değiştirmez ama satır sayısını şaşırtabilir.
Birleştirme: NestedJoin ve genişletme
let
Birlesik = Table.NestedJoin(Bayi_Subat, {"Şehir"}, Sehir_Bolge, {"Şehir"}, "Eslesme", JoinKind.LeftOuter),
Acik = Table.ExpandTableColumn(Birlesik, "Eslesme", {"Bölge"})
in
Acik
Table.NestedJoin eşleşen satırları hücrede tablo olarak tutar, Table.ExpandTableColumn açar. Şeridin “Merge” komutu da aynı kodu üretir. Table.Join doğrudan düz sonuç verir. Aynı adlı anahtar sütun sonuçta bir kez görünür (Learn örnek 1). Anahtar dışında aynı adlı sütun varsa Learn davranışı yazmıyor, örnek 2 Table.PrefixColumns ile çakışmayı önlüyor; bu alt küme hata verir.
Sütun dönüştürme ve tür
let
Basliklar = Table.PromoteHeaders(Musteri_Ham),
Temiz = Table.TransformColumns(Basliklar, {{"E-posta", Text.Lower, type text}, {"Ad Soyad", each Text.Proper(_, "tr-TR"), type text}}),
Tipli = Table.TransformColumnTypes(Temiz, {{"MusteriNo", Int64.Type}}),
Tekil = Table.Distinct(Tipli, {"MusteriNo"})
in
Tekil
TransformColumns için alan adı {"Sütun", fonksiyon, tür} biçimindedir; fonksiyonun aldığı değer hücredir, satır değil. Bu yüzden [Alan] yazılmaz, _ yazılır.