İfadeler, değerler ve let ifadesi

Power Query M formül dili sorgusu, karma sorgusu oluşturan formül ifadesi adımlarından oluşur. Bir formül ifadesi değerlendirilebilir (hesaplanabilir) ve bir değer elde edilebilir. let ifadesi hesaplanacak bir değer kümesini kapsüller, adlar atanır ve sonra in deyimini izleyen sonraki bir ifadede kullanılır. Örneğin, bir let ifadesi Text.Proper değerine eşit olan ve uygun durumda bir metin değeri veren bir Source değişkeni içerebilir.

let ifadesi

let
    Source = Text.Proper("hello world")
in
    Source

Yukarıdaki örnekte, Text.Proper("hello world") olarak değerlendirilir "Hello World".

Sonraki bölümlerde dildeki değer türleri açıklanmaktadır.

İlkel değer

İlkel değer sayı, mantıksal, metin veya null gibi tek parçalı değerdir. Boş değer, herhangi bir verinin yokluğunu belirtmek için kullanılabilir.

Tür Örnek değer
İkilik 00 00 00 02 // puan sayısı (2)
Tarih 5/23/2015
DateTime 23.05.2015 12:00:00
DateTimeZone 23.05.2015 12:00:00 -08:00
Süre 15:35:00
Mantıksal true ve false
Boş null
Sayı 0, 1, -1, 1.5 ve 2.3e-5
Metin "abc"
Saat 12:34:12 PM

İşlev değeri

İşlev, bağımsız değişkenlerle çağrıldığında yeni bir değer üreten bir değerdir. İşlevler, işlevin parametrelerini parantez içinde listeleyerek, ardından gider simgesi => ve ardından işlevi tanımlayan ifadeyle yazılır. Örneğin, iki parametresi olan ve parametre1 ve parametre2 üzerinde hesaplama yapan MyFunction adlı bir işlev oluşturmak için:

let
    MyFunction = (parameter1, parameter2) => (parameter1 + parameter2) / 2
in
    MyFunction

MyFunction çağrısı sonucu verir:

let
    Source = MyFunction(2, 4)
in
    Source

Bu kod 3 değerini üretir.

Yapılandırılmış veri değerleri

M dili aşağıdaki yapılandırılmış veri değerlerini destekler:

Not

Yapılandırılmış veriler herhangi bir M değeri içerebilir. Birkaç örnek görmek için Ek yapılandırılmış veri örnekleri'ne gidin.

Liste

Liste, { } küme ayracı karakterleri içine alınmış sıfır tabanlı sıralı bir değer dizisidir. { } küme ayracı karakterleri, dizin konumuna göre Liste'den öğe almak için de kullanılır. Daha fazla bilgi için Değerleri listeleme bölümüne gidin.

Not

Power Query M sonsuz bir liste boyutunu destekler, ancak bir liste değişmez değer olarak yazılırsa, listenin uzunluğu sabittir. Örneğin, {1, 2, 3} sabit uzunluğu 3'tür.

Aşağıda bazı Liste örnekleri verilmiştir.

Değer Tür
{123, true, "A"} Sayı, mantıksal ve metin içeren liste.
{1, 2, 3} Sayı listesi
{
    {1, 2, 3},
    {4, 5, 6}
}
Sayı listesi
{
    [CustomerID = 1, Name = "Bob", Phone = "123-4567"],
    [CustomerID = 2, Name = "Jim", Phone = "987-6543"]
}
Kayıt Listesi
{123, true, "A"}{0} Listedeki ilk öğenin değerini alır. Bu ifade 123 değerini döndürür.
{
    {1, 2, 3},
    {4, 5, 6}
}{0}{1}
İlk List öğesinden ikinci öğenin değerini alır. Bu ifade 2 değerini döndürür.

Kaydet

Kayıt, bir alan kümesidir. Alan, adın alanın kaydı içinde benzersiz bir metin değeri olduğu bir ad/değer çiftidir. Kayıt değerlerinin söz dizimi, adların tırnak işareti olmadan yazılmasına olanak tanır ve bu formda tanımlayıcılar olarak da adlandırılır. Tanımlayıcı aşağıdaki iki biçimi alabilir:

  • OrderID gibi identifier_name.

  • #"tanımlayıcı adı" gibi #"Bugünün verileri: ".

Aşağıda 1, 1, "Olta" ve 100,00 değerlerine sahip "OrderID", "CustomerID", "Item" ve "Price" adlı alanlar içeren bir kayıt verilmiştir. Kare ayraç karakterleri [ ] bir kayıt ifadesinin başlangıcını ve sonunu belirtir ve bir kayıttan alan değeri almak için kullanılır. Aşağıdaki örneklerde bir kayıt ve Öğe alanı değerinin nasıl alınacakları gösterilmektedir.

Aşağıda örnek bir kayıt verilmişti:

let Source =
        [
              OrderID = 1,
              CustomerID = 1,
              Item = "Fishing rod",
              Price = 100.00
        ]
in Source

Bir Öğenin değerini almak için köşeli ayraçları olarak Source[Item]kullanırsınız:

let Source =
    [
          OrderID = 1,
          CustomerID = 1,
          Item = "Fishing rod",
          Price = 100.00
    ]
in Source[Item] //equals "Fishing rod"

Tablo

Tablo, adlandırılmış sütunlar ve satırlar halinde düzenlenmiş bir değer kümesidir. Sütun türü örtük veya açık olabilir. sütun adlarının ve satır listesinin listesini oluşturmak için #table kullanabilirsiniz. Değerler tablosu, Listedeki Bir Liste'dir. { } küme ayracı karakterleri, tablodaki bir satırı dizin konumuna göre almak için de kullanılır (Örnek 3 - Dizin konumuna göre tablodan satır alma bölümüne gidin).

Örnek 1 - Örtük sütun türleriyle tablo oluşturma

let
  Source = #table(
    {"OrderID", "CustomerID", "Item", "Price"},
      {
          {1, 1, "Fishing rod", 100.00},
          {2, 1, "1 lb. worms", 5.00}
      })
in
    Source

Örnek 2 - Açık sütun türleriyle tablo oluşturma

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

Önceki örneklerin her ikisi de aşağıdaki şekilde bir tablo oluşturur:

OrderID CustomerID Kalem Fiyat
1 1 Olta 100.00
2 1 1 lb. solucanlar 5.00

Örnek 3 - Tablodan dizin konumuna göre satır alma

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}

Bu ifade aşağıdaki kaydı döndürür:

Alan Değer
OrderID 2
CustomerID 1
Kalem 1 lb. solucanlar
Price 5

Ek yapılandırılmış veri örnekleri

Yapılandırılmış veriler herhangi bir M değeri içerebilir. Burada bazı örnekler verilmiştir:

Örnek 1 - [Temel Öğe](#_Primitive_value_1) değerleri, [İşlev](#_Function_value) ve [Kayıt](#_Record_value) içeren liste

let
    Source =
{
   1,
   "Bob",
   DateTime.ToText(DateTime.LocalNow(), "yyyy-MM-dd"),
   [OrderID = 1, CustomerID = 1, Item = "Fishing rod", Price = 100.0]
}
in
    Source

Bu ifadenin değerlendirilmesi şu şekilde görselleştirilebilir:

İfadeyi ilkel değer, işlev ve kayıtla görselleştiren bir tablo diyagramı.

Örnek 2 - İlkel değerler ve iç içe kayıtlar içeren kayıt

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

Bu ifadenin değerlendirilmesi şu şekilde görselleştirilebilir:

İfadeyi birkaç temel değer ve iç içe kayıtlarla görselleştiren bir tablonun diyagramı.

Not

Birçok değer kelimenin tam anlamıyla ifade olarak yazılabilir, ancak bir değer bir ifade değildir. Örneğin, 1 ifadesi 1 değerini değerlendirir; 1+1 ifadesi 2 değerini değerlendirir. Bu ayrım incedir, ancak önemlidir. İfadeler değerlendirme için tariflerdir; değerler değerlendirmenin sonuçlarıdır.

If ifadesi

if ifadesi, mantıksal bir koşula göre iki ifade arasında seçim yapın. Örneğin:

if 2 > 1 then
    2 + 2
else
    1 + 1

Mantıksal ifade (2 1) doğruysa ilk ifade (2 + 2 > ) seçilir ve yanlışsa ikinci ifade (1 + 1) seçilir. Seçili ifade (bu durumda 2 + 2) değerlendirilir ve if ifadesinin sonucu olur (4).