Qlik Sense Ders 19: Set Analizi
Set analizi, belirli seçimlerle tanımlanan veri değerleri grubu oluşturulmasına denir.
Set ifadesi aşağıdaki bölümlerin bir birleşiminden oluşur:
-
Tanımlayıcılar: Set ifadesi ile ifadenin geri kalanında değerlendirilen öğe arasındaki ilişki bir veya daha fazla tanımlayıcı ile tanımlanır. Basit bir ifade tek bir tanımlayıcıdan (geçerli seçimdeki tüm kayıtlar anlamına gelen {$} işareti gibi) oluşur.
-
İşleçler: Birden fazla tanımlayıcı varsa tanımlayıcıların temsil ettiği veri kümelerinin örneğin bir alt küme veya üst küme oluşturmak üzere nasıl birleştirildiğini belirtmek suretiyle veri kümesini daraltmak için işleç veya işleçler kullanılır.
-
Değiştiriciler: Seçimi değiştirmek için küme ifadesine değiştirici veya değiştiriciler eklenebilir. Bir değiştirici kendi başına kullanılabileceği gibi bir tanımlayıcıyı değiştirerek veri kümesine filtre uygulamak için de kullanılabilir.
Yukardaki yazının tamamını okumak için buraya tıklayabilirsiniz.
Bilmemiz gerekenler:
- Qlik, BNF (Backus-Naur formalism) formatında script dili kullandığı için { } ve < > ile bol bol karşılaşacağız.
- Set ifadelerini toplama fonksiyonlarının içinde kullanacağız ve daima { } içerisinde yazacağız.
- Eğer bir değişken çağrıyorsak başına $ koyacağız. Aynı zamanda $ yaptığımız seçimlerin kümesini gösteriyor.
- Set ifadesinin içinde belirttiğiniz koşul, ifadenin içerisinde kullanılan boyut filtresinden etkilenmez. Örneğin, Sum({<Yıl={2019}>} Tutar) ifadesi, yıl filtresinden etkilenmeyecektir.Sum({<Yıl={2019}>} Tutar) set analizi, {<Yıl={2019}>} set ifadesidir.
Örnekler:
Dimensions
Sadece Avrupa ve İskandinavya bölgeleri
=Aggr(only ({<[Bölge Adı]={"Avrupa","İskandinavya"}>} [Bölge Adı]), [Bölge Adı])
Avrupa ve İskandinavya bölgesine ait müşteriler
=Aggr(only ({<[Bölge Adı]={"Avrupa","İskandinavya"}>} [Cari Adı]), [Cari Adı])
Measures
2019 yılı Satış
Sum( {< Yıl={2019} >} Tutar)
2018 ve 2019 yılı Satış
Sum( {< Yıl={2018,2019} >} Tutar)
Filtre bağımsız 2019 yılı Satış
Sum( { 1 <Yıl={2019} >} Tutar)
Eğer süslü parantezin yanına 1 yazdıktan sonra set ifadesini yazarsak bu ifade, hiçbir filtreden etkilenmez.
Seçilen filtre hariç 2019 yılı Satış
Sum( {1-$ <Yıl={2019} >} Tutar)
Filtre bağımsız Satış
Sum( {1} Tutar)
Belirtilen ifadenin hiçbir filtreden etkilenmesini istemiyorsak ifadenin başına yalnızca {1} yazıyoruz.
Ocak 2014 Satış
Sum( {< Ay={01} , Yıl={2014} >} Tutar)
2019 yılında Amerika hariç Satış
Aşağıdaki ifade yıl ve ülke filtrelerinden etkilenmeyerek devamlı olarak 2019 yılı Amerika hariç satışı gösterir.
Sum( {< Yıl={2019}, Ülke=-{'USA'} >} Tutar)
Buradaki ülke isminin önündeki – işaretini aşağıdaki şekilde ülkeden sonra kullanırsak ifade yine yıl filtresinden etkilenmez fakat ülke filtresinden etkilenerek seçilen ülkenin satışını gösterir. Tabii tek bir şartla. Amerika hariç🙂
Sum( {< Yıl={2019}, Ülke-={'USA'} >} Tutar)
Çeyrek filtresi bağımsız 2019 yılı Satış
Sum( {< Yıl={2019}, Çeyrek={*} >} Tutar)
2015 – 2018 arası Satış
Sum( {< Yıl={">=2015 <=2018"} >} Tutar)
Aynı ifadeyi tarih alanınızdan üretilen otomatik yıl ile aşağıdaki şekilde yazabilirsiniz.
Sum( {<[Sipariş Tarihi.autoCalendar.Year]={"<=$(=MakeDate(2018)) >=$(=MakeDate(2015))"} >} Tutar)
Yıl filtresinden seçilen yıllar arasındaki Satış
Sum( {< Yıl={">=$(=Min(Yıl)) <=$(=Max(Yıl))"} >} Tutar)
Aynı ifadeyi tarih alanınızdan üretilen otomatik yıl ile aşağıdaki şekilde yazabilirsiniz.
Sum( {<[Sipariş Tarihi.autoCalendar.Year]= {">=$(=Min([Sipariş Tarihi.autoCalendar.Year])) <=$(=Max([Sipariş Tarihi.autoCalendar.Year]))"}> } Tutar)
Yıl filtresiyle değişen dinamik başlık vermek için aşağıdaki ifadeyi yazabilirsiniz.
='>=$(=year(Min([Sipariş Tarihi.autoCalendar.Year]))) <=$(=year(Max([Sipariş Tarihi.autoCalendar.Year])))'
Aynı ifadeyi (filtreden seçilen yıllar arasındaki satış) değişken tanımlayarak aşağıdaki şekilde yazabiliriz.
Sum( {< Yıl={">=$(=vMin) <=$(=vMax)"} >} Tutar)
Değişkenden sonra = koymak zorunda değilsiniz fakat program çok nadiren de olsa bu noktada sorun çıkarabiliyor.
Değişkenleri aşağıdaki şekilde oluşturarak max ve min yılı kullanabilirsiniz.
Aynı ifadeyi tarih alanınızdan üretilen otomatik yıl ile aşağıdaki şekilde yazabilirsiniz.
Sum({<[Sipariş Tarihi.autoCalendar.Year]={">=$(vMin) <=$(=vMax)"}>} Tutar)
Yıl filtresiyle değişen dinamik başlık vermek için aşağıdaki ifadeyi yazabilirsiniz.
='Değişken >=$(=Year(vMin)) <=$(=Year(vMax))'
Buradaki değişkenler = Max([Sipariş Tarihi.autoCalendar.Year]) şeklindedir.
Bölge Adı dışındaki filtreler bağımsız Satış
Bir hesaplamanın spesifik bir boyut filtresi dışında hiçbir filtreden etkilenmemesi için kullanmamız gereken ifade şekli aşağıdaki gibidir.
Sum({1<[Bölge Adı] = $::[Bölge Adı]>} Tutar)
Bölge Adı bağımsız olarak diğer tüm filtrelerden etkilenen Satış
sum( {<[Bölge Adı]= >} Tutar)
Ka ile başlayan kategorilerin Satışı
sum( {< [Kategori Adı]={"Ka*"} >} Tutar)
Son olarak otomatik set ifadesini nasıl oluşturduğumuzdan bahsetmek istiyorum.
Diyelim ki filtreden çeşitli seçimler yaptınız ve ifade düzenleyicisinin içine girdiniz.
Sağ bölmede yer alan İfade Ayarla bölümünden Geçerli seçimleri kullan diyerek filtreden seçim yaptığınız değerleri otomatik olarak yazdırabilirsiniz.
Bonus: Footnote yani alt başlık için önceki yıl ile satış farkını aşağıdaki şekilde kullanabilirsiniz. (Otomatik yılı kullanarak)
Şuanki yıl ile önceki yıl Satış farkı
=’Fark: ‘&num(Sum({<[Sipariş Tarihi.autoCalendar.Year] = {“$(=Max(year([Sipariş Tarihi])))”} >} Tutar)-Sum({<[Sipariş Tarihi.autoCalendar.Year] = {“$(=Max(year([Sipariş Tarihi]))-1)”} >} Tutar),’#,##0.00′)
++ Script tarafında ay yıl vs kendiniz oluşturabilirsiniz ya da tarih alanından otomatik olarak üretilen ay, yıl gibi tarih alanlarını kullanabilirsiniz.
Year(Tarih) as Yıl, Month(Tarih) as Ay, Week(Tarih) as Hafta, WeekDay(Tarih) as Haftanın Günleri, Day(Tarih) as Gün, 'Q' & Ceil(Month(Tarih) / 3) as Çeyrek, Date(monthstart(Tarih), 'MM-YYYY') as AyYıl
Set analizi için temelde göstereceğim ifadeler bu şekildeydi.
İleri set analizi örneklerini buraya tıklayarak inceleyebilirsiniz.
Geri bildirim: Qlik Sense Ders 29: İleri Set Analizi | Melis Turkoglu