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

İç içe geçmeli toplamalar

Bir grafik ifadesindeki herhangi bir alan adının tam olarak bir toplama işlevi ile kapatılması gerekir. Toplamaları iç içe geçirmeniz gerekiyorsa ikinci bir toplama düzeyi eklemek için Aggr() işlevini kullanabilirsiniz. Aggr(), bağımsız değişken olarak bir toplama işlevi içerir.

Her zaman bir işlevde bir toplama düzeyi

Normal bir uygulamada şunlar bulunabilir:

  • veride bir milyon kayıt
  • pivot tabloda yüz satır
  • gösterge veya metin kutusunda tek bir KPI

Farklı büyüklüklerde olsa da üç sayı da tüm verileri temsil edebilir. Sayılar yalnızca farklı toplama düzeyleridir.

Toplama işlevleri, giriş olarak birçok kayıttaki değerleri kullanır ve bunları, tüm kayıtların özeti olarak görülebilecek tek bir değer halinde daraltır. Tek bir sınırlama vardır: Başka bir toplama işlevinin içinde toplama işlevi kullanamazsınız. Genellikle tüm alan başvurularının yalnızca bir toplama işlevinde birleştirilmesi gerekir.

Aşağıdaki ifadeler işe yarar:

  • Sum(Sales)
  • Sum(Sales)/Count(Order Number)

Aşağıdaki ifade, iç içe geçmeli bir toplama olduğundan çalışmaz:

  • Count(Sum(Sales))

Bunun çözümü, Aggr() işlevi biçiminde sağlanır. Adının aksine bu bir toplama işlevi değildir. Bu matematikteki matris gibi "çoktan çoğa" bir işlevdir. N kayıt içeren bir tabloyu M kayıt içeren tabloya dönüştürür. Bir dizi değer döndürür. Bu, tek bir hesaplama ve bir veya birkaç boyut içeren bir sanal düz tablo olarak da görülebilir.

İpucu notuBirden fazla düzey halinde iç içe geçmiş grafik toplamaları oluşturmak isterseniz hesaplanan boyutlarda Aggr() fonksiyonunu kullanın.

İç içe geçmeli toplamalar için Aggr() işlevini kullanma

Aggr(), belirtilen boyut veya boyutlar üzerinde hesaplanan ifade için bir değer dizisi döndürür. Örneğin, her bölge için müşteri başına maksimum satış değeri. Gelişmiş toplamalarda, Aggr() fonksiyonu diğer bir toplama işlevinin içinde yer alır ve Aggr() fonksiyonundan elde edilen sonuç dizisi, iç içe geçtiği toplama için girdi olarak kullanılır.

Bu kullanıldığında Aggr() deyimi, bir veya daha fazla boyuta göre gruplanmış tek bir ifade içeren sanal tablo oluşturur. Bu sanal tablonun sonucuna daha sonra bir dış toplama işlevi tarafından ek toplama uygulanabilir.

En büyük ortalama sipariş değerini hesaplama

Grafik ifadesinde basit bir Aggr() deyimi kullanalım.

Bölgesel düzeyde genel metriklerimizi görüntülemek, aynı zamanda daha karmaşık olan iki ifadeyi de göstermek istiyoruz:

  • Her bir bölgede yöneticiye göre en büyük ortalama sipariş değeri.
  • En büyük ortalama sipariş değerinden sorumlu olan yönetici.

Standart bir Sum(Sales)/Count([Order Number]) ifadesini kullanarak her bir bölge için ortalama sipariş değerini kolayca hesaplayabiliriz.

Uygulamanın içinde Nested Aggregations sayfasında, Aggr() function başlıklı bir tablo bulacaksınız.

  1. Mevcut Aggr() function 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: Sum(Sales)/Count([Order Number])
  5. Uygula'ya tıklayın.

Bölge başına ortalama sipariş değerini gösteren tablo.

Bölge başına ortalama sipariş değerini gösteren tablo.

İpucu notuEn iyi uygulama olarak, verilerinizin düzgün biçimlendirildiğinden emin olun. Bu örnekte, her sütunda, hesaplama işlemini temsil etmesi için Etiket değerini değiştireceğiz. Para değerlerini içeren sütunlarda Sayı biçimlendirmesi'ni Para olarak ve Biçim deseni'ni $ #,##0;-$ #,##0 olarak değiştireceğiz.

Hedefimiz, her bir bölge için en büyük ortalama sipariş değerini almaktır. Qlik Sense uygulamasına, yönetici başına her bir bölge için ortalama sipariş değerini almak istediğimizi bildirmek ve sonra bunların en büyüğünü görüntülemek için Aggr() işlevini kullanmamız gerekir. Yönetici başına her bir bölge için ortalama sipariş değerini almak üzere, Aggr() deyimimize şu boyutları dahil etmemiz gerekir:

Aggr(Sum(Sales)/Count([Order Number]), Region, Manager)

Bu ifade Qlik Sense uygulamasının şöyle görünen bir sanal tablo oluşturmasına neden olur:

Yönetici başına her bir bölge için ortalama sipariş değerini gösteren Aggr() işlevinin sanal tablosu.

Yönetici başına her bölge için ortalama sipariş değerini gösteren AGGR fonksiyonlu tablo.

Qlik Sense, yönetici başına her bir bölge için tek tek ortalama sipariş değerlerini hesapladığında, bu değerlerden en büyük olanını bulmamız gerekir. Aggr() işlevini Max() ile kaydırarak bunu yaparız:

Max(Aggr(Sum(Sales)/Count([Order Number]), Manager, Region))

  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: Max(Aggr(Sum(Sales)/ Count([Order Number]), Manager, Region))
  4. Uygula'ya tıklayın.

Yönetici başına her bir bölge için bölgeyi, ortalama sipariş değerini ve en büyük ortalama sipariş değerini gösteren tablo.

Yönetici başına her bir bölge için bölgeyi, ortalama sipariş değerini ve en büyük ortalama sipariş değerini gösteren tablo.

Bölge düzeyinde tüm yöneticiler için en büyük ortalama sipariş değerini görebilirsiniz. Bu, iki karmaşık ifademizden birincisidir. Sonraki gereksinim, bu büyük ortalama sipariş değerlerinden sorumlu olan yöneticinin adının, değerlerin yanında görüntülenmesini sağlamaktır.

Bunu yapmak için, önceki gibi Aggr() fonksiyonunu kullanırız ancak bu kez FirstSortedValue() fonksiyonu birlikte kullanıyoruz. FirstSortedValue() işlevi, Qlik Sense uygulamasına, işlevin ikinci kısmında belirtilen belirli boyut için bize yöneticiyi sağlamasını ister:

FirstSortedValue(Manager,-Aggr(Sum(Sales)/Count(Order Number), Manager, Region))

İpucu notuİfadenin küçük ancak çok önemli bir kısmı vardır: Aggr() ifadesinden önce bir eksi simgesi vardır. FirstSortedValue() işlevi içinde, veri dizisinin sıralama düzenini belirtebilirsiniz. Bu durumda eksi simgesi, Qlik Sense uygulamasına en büyükten en küçüğe doğru sıralamasını bildirir.
  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: FirstSortedValue(Manager,-Aggr(Sum(Sales)/ Count([Order Number]), Manager, Region))
  4. Uygula'ya tıklayın.

Her bir bölge için bölgeyi, ortalama sipariş değerini, en büyük ortalama sipariş değerini ve o sipariş değerinden sorumlu olan yöneticiyi gösteren tablo.

Her bir bölge için bölgeyi, ortalama sipariş değerini, en büyük ortalama sipariş değerini ve o sipariş değerinden sorumlu olan yöneticiyi gösteren tablo.

Daha fazla bilgi için bk. Aggr

Daha fazla bilgi için bk. FirstSortedValue

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!