Ana içeriğe geç Tamamlayıcı içeriğe geç

Çıplak alan referansları

Alan bir toplama işlevi içine alınmadığında çıplak alan olarak değerlendirilir.

Çıplak alan referansı, muhtemelen çeşitli değerler içeren bir dizidir. Bu durumda Qlik Sense, bu değerlerden hangisini istediğinizi bilmeden bunu NULL olarak değerlendirir.

Her zaman ifadenizde bir toplama işlevi kullanın.

İfadenizin doğru bir şekilde değerlendirilmediğini fark ederseniz bir toplama işlevi bulunmaması olasılığı yüksektir.

Bir ifadedeki alan referansı, değerler dizisidir. Örneğin:

Biri, Max(Invoice Date) öğesinin tek bir değer olduğunu, diğeri de Invoice Date öğesinin bir değer dizisi olduğunu gösteren iki tablo.

Biri Maksimum'un (Fatura Tarihi) tek bir değer olduğunu, diğeri de Fatura Tarihi'nin bir değer dizisi olduğunu gösteren iki tablo.

Tek değere daraltmak için Invoice Date alanını bir toplama işlevi içine almalısınız.

İfadenizde bir toplama işlevi kullanmazsanız Qlik Sense, varsayılan olarak Only() işlevini kullanır. Alan referansı birden fazla değer döndürürse Qlik Sense bunu NULL olarak yorumlar.

If() işlevini kullanarak fatura tarihlerini bölme

If() işlevi çoğu zaman koşullu toplamalar için kullanılır. İşlevde sağlanan koşulun True veya False değeri vermesine bağlı olarak bir değer döndürür.

Uygulamanın içinde Naked field references sayfasında, Using If() on Invoice dates başlıklı bir tablo bulacaksınız.

  1. Using If() on Invoice dates başlıklı mevcut tabloyu seçin.
    Özellikler paneli açılır.
  2. Sütun ekle'ye tıklayın ve Hesaplama'yı seçin.
  3. İfade simgesine tıklayın.
    İfade düzenleyicisi açılır.
  4. Şunları girin: If( [Invoice Date]>= Date(41323), 'After', 'Before' )
  5. Uygula'ya tıklayın.

Referans tarihe göre bölünmüş fatura tarihlerini gösteren tablo.

Referans tarihe göre bölünmüş fatura tarihlerini gösteren tablo.

Bu ifade, Invoice Date değerinin, 2/18/2013 tarihinden önce olup olmadığını test eder ve bu tarihten önceyse 'Before' değerini döndürür. Tarih, 2/18/2013 referans tarihiyle aynı veya bu tarihten sonraysa 'After' döndürülür. Referans tarih, 41323 tamsayı değeri olarak ifade edilir.

Daha fazla bilgi için bk. if kodu ve grafik işlevi

Çıplak alan referanslarını önleme

İlk bakışta bu ifade doğru görünüyor:

If([Invoice Date]>= Date(41323) 'After', 'Before')

Fatura tarihlerini referans tarihin ardından değerlendirmeli, 'After' veya 'Before' öğesini döndürmelidir. Ancak Invoice Date bir çıplak alan referansıdır, toplama işlevi yoktur ve birkaç değerden oluşan bir dizi olarak bunu NULL olarak değerlendirecektir. Önceki örnekte, tablomuzda Date değeri başına yalnızca bir Invoice Date vardı; bu nedenle ifade doğru hesaplamayı yaptı.

Şimdi benzer bir ifadenin farklı bir boyut değeri altında nasıl hesaplama yaptığına ve çıplak alan referansı sorununun nasıl çözüleceğine göz atalım:

If() işlevinde çıplak alan referanslarını önleme

Öncekine benzer bir ifade kullanacağız:

If([Invoice Date]>= Date(41323), Sum(Sales))

Bu defa işlev, referans tarihten sonraki satışları toplar.

Uygulamanın içinde Naked field references sayfasında, Sum(Amount) başlıklı bir tablo bulacaksınız.

  1. Mevcut Sum(Amount) tablosunu seçin.
    Özellikler paneli açılır.
  2. Sütun ekle'ye tıklayın ve Hesaplama'yı seçin.
  3. İfade simgesine tıklayın.
    İfade düzenleyicisi açılır.
  4. Şunları girin: If( [Invoice Date]>= 41323, Sum(Sales) )
  5. Uygula'ya tıklayın.

If() işlevini kullanarak yılı, her bir yıla ait satış toplamını ve ifadenin sonuçlarını gösteren tablo.

Yılı, her bir yıla ait satış toplamını ve ifadenin sonuçlarını gösteren tablo.

İpucu notuHer bir ifade arasındaki farkları göstermek için hesaplamalarda Etiket'i değiştirmeden bırakın. Para değerlerini içeren sütunlarda Sayı biçimlendirmesi'ni Para olarak ve Biçim deseni'ni $ #,##0;-$ #,##0 olarak değiştirin.

Her yıl için, referans tarihten sonra gelen bir fatura tarihleri dizisi vardır. İfademizde toplama işlevi eksik olduğundan ifademiz NULL değerini verir. Doğru bir ifade, If() işlevinin ilk parametresinde Min() veya Max() gibi bir toplama işlevini kullanmalıdır:

If(Max([Invoice Date])>= Date(41323), Sum(Sales))

  1. Sütun ekle'ye tıklayın ve Hesaplama'yı seçin.
  2. İfade simgesine tıklayın.
    İfade düzenleyicisi açılır.
  3. Şunları girin: If( [Invoice Date]>= Date(41323), Sum(Sales) )
  4. Uygula'ya tıklayın.

If() işlevini kullanarak yılı, her bir yıla ait satış toplamını ve farklı ifadelerin sonuçlarını gösteren tablo.

Yılı, her bir yıla ait satış toplamını ve farklı ifadenin sonuçlarını gösteren tablo.

Alternatif olarak If() işlevi, Sum() işlevinin içine koyulabilir:

Sum(If([Invoice Date]>= Date(41323), Sales) )

  1. Sütun ekle'ye tıklayın ve Hesaplama'yı seçin.
  2. İfade simgesine tıklayın.
    İfade düzenleyicisi açılır.
  3. Şunları girin: Sum( If([Invoice Date]>= Date(41323), Sales ) )
  4. Uygula'ya tıklayın.

If() işlevini kullanarak yılı, her bir yıla ait satış toplamını ve farklı ifadelerin sonuçlarını gösteren tablo.

Yılı, her bir yıla ait satış toplamını ve farklı ifadenin sonuçlarını gösteren tablo.

Sondan bir önceki ifadede If() işlevi, boyut değeri başına bir defa değerlendirildi. Son ifadede bu, ham verilerde her satır için bir defa değerlendirilir. İşlevin değerlendirilme şeklindeki farklılık, sonuçların farklı olmasına neden olur ancak her ikisi de bir yanıt döndürür. Birinci ifade NULL değerini verir. Yukarıdaki resimde, referans tarih olarak 2/18/2013 tarihi kullanılarak ifadeler arasındaki fark gösterilmektedir.

Bu sayfa size yardımcı oldu mu?

Bu sayfa veya içeriği ile ilgili bir sorun; bir yazım hatası, eksik bir adım veya teknik bir hata bulursanız, bize bildirin, düzeltelim!