Qlik Sense Ders 19: Set Analizi

QlikView.jpg

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:

  1. Qlik, BNF (Backus-Naur formalism) formatında script dili kullandığı için { } ve < > ile bol bol karşılaşacağız.
  2. Set ifadelerini toplama fonksiyonlarının içinde kullanacağız ve daima { } içerisinde yazacağız.
  3. Eğer bir değişken çağrıyorsak başına $ koyacağız.
  4. 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.

Örnekler:

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(2015)) >=$(=MakeDate(2013))"} >} 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 mızmızlanabiliyor.

Değişkenleri aşağıdaki şekilde oluşturarak max ve min yılı kullanabilirsiniz.

wqf

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.

Ka ile başlayan kategori adları

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.

qregeg.png

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 hazırladığım ifadeler şimdilik bu şekilde ilerleyen derslerde de script yazmaya devam edeceğiz.

Qlik Sense Ders 18: Web’te Arama

Raporda üzerine tıkladığımız veri bilgisini web üzerinde nasıl kullanırız?

Örnek; Google.

Çok basit bir tablo oluşturuyorum.

yqryy

Buradaki Bilgi alanını aşağıdaki ifadeyi yazarak oluşturuyoruz.

='https://www.google.com.tr/#q='&[Ülke]

Parametre alan istediğimiz bir linki kullanarak istediğimiz veriyi browser’dan aratabiliriz.

rgwgqg.png

Etiket ismini düzenledikten sonra Sunum‘u, URL seçerek URL etiketine, google’da aratmak istediğimiz alan ismini yazıyoruz.

Böylece raporun üzerinde oluşturduğumuz alana tıkladığımızda ülke isimleri google’da aratılacaktır.

Qlik Sense Ders 17: E-Posta Atma

Herhangi bir veri alanını rapor üzerinden tek tıkla ilgili isime nasıl mail atarız?

Çok basit bir tablo oluşturuyorum.

trhhwrh.png

Buradaki Müşteri E-Posta alanını ifade yazarak oluşturacağız.

İfadenin içerisine mailto diyerek kime mail atacağımızı [Cari E-posta] ve ?subject=  diyerek hangi konuyu [Stok Adı] mail atmak istediğimizi belirtiyoruz.

='mailto:' & [Cari E-posta] & '?subject=' & [Stok Adı]

Etiket ismini düzenledikten sonra Sunum‘u, URL seçerek URL etiketine, e-posta listesini içeren veri alanını yazıyoruz [Cari E-posta].

wtqwry.png

Böylece ilgili müşterinin mail adresinin üzerine tıkladığımızda -mail alt yapısını seçtikten sonra (outlook, google vs)- belirtilen konu ile birlikte mail atacağımız bir sayfa açılıyor.

wrqg.png

Bu şekilde belirttiğiniz konuyu, rapora tıklayarak direk mail gönderebilirsiniz.

Qlik Sense Ders 16: Tabbed Container Kullanımı

TybaJ3Qij5.gif

Öncelikle sekmeler içerisinde kullanmak üzere örnek olarak iki adet grafik hazırlayalım.

Ardından hazırladığımız bu grafikleri teker teker Ana öğeler -> Görselleştirmeler bölümüne sürükleyip bir isim verelim.

ewttw35y.png

Görselleştirmeler, oluşturduğumuz grafikleri istediğimiz sayfada hazır olarak kullanmamıza olanak tanır.

Tabbed container bundle’ını eklemek için Özel nesneler -> Qlik Dashboard Bundle -> Tabbed Container‘ı ekrana sürükleyip bırakalım.

gewrge.png

Tabbed container’ın üzerine tıklayarak sağ tarafta açılan bölmeden kaç sekme eklemek istiyorsak Number of Tabs kısmında belirtelim.

54qywjhyrj.png

Tab 1 kısmındaki Label ile sekmelerimize isim vererek o sekmede hangi grafiğin açılacağını Master Object ile seçelim.

İlgili grafiğin verilerini excel formatında dışa aktarmak istersek Enable export onay kutusuna tik atabiliriz. Böylece grafiğin üzerinde bir indirme butonu oluşur.

Qlik Sense Ders 15: Server’a Bundle’ların Yüklenmesi

Qlik Sense Desktop’a bundle yüklemek için kurulum sırasında onay kutusuna tik atıyorduk.

Peki Qlik Sense Server’a bundle’ları nasıl yükleriz?

Control Panel -> Programs and Features -> Qlik Sense Extensions Bundle‘ın üzerine sağ tıklayarak Change diyelim.

Next -> Change dedikten sonra Dashboard ve Visualization Bundle‘ın yanındaki küçük icon’a tıklayarak Will be installed on local hard drive diyelim.

qwerew

Next diyerek ilerledikten sonra finish diyerek bitirelim ve Qlik Sense Repository Service‘i baştan başlatalım.

Uygulama tarafına geçtiğimizde Özel nesneler bölümünde Qlik Dashboard bundle ve Qlik Visualization bundle‘ın yüklendiğini görebiliriz.

wqrg.png

Dashboard bundle; buton, tab, takvim vb, Visualization bundle‘da çeşitli sofistike grafikler içerir.

Bundle‘ları, raporlarınızda ücretsiz olarak dilediğiniz gibi kullanabilirsiniz.

Qlik Sense Ders 14: Alternatif Durumlar

qIQsSk3u5f.gif

Ana öğeler -> Alternatif Durumlar diyerek Yeni Oluştur butonuna tıklayalım. Grup 1 ve Grup 2 olarak iki tane alternatif durum oluşturalım.

eqt

Ana öğeler -> Hesaplamalar diyerek Grup 1 Tutar isimli bir hesaplama ekleyelim.

trrtjryj

Aynı şekilde formülde Grup 1 yazan kısmı Grup 2 ile değiştirerek Grup 2 Tutar isimli bir hesaplama daha yaratalım.

Sutün grafiği ekrana alarak boyut olarak ülkeyi, hesaplama olarak Grup 1 ve Grup 2‘yi seçelim.

wruytru

Görünüş bölümündeki Sunum kısmından sutün grafik özelliklerini Gruplandırılmış ve Dikey olarak ayarlayalım.

etqw

Metin ve resmi Grup 1 Seçimleri ve Grup 2 Seçimleri başlıkları ile olmak üzere iki kere ekrana ekleyelim.

Grup 1 seçimlerinin içerisine aşağıdaki ifadeyi yazalım.

=GetFieldSelections( [Kategori Tanımı], ', ', 10, 'Grup1')&','&
GetFieldSelections( [Stok Adı], ', ', 10, 'Grup1')

GetFieldSelections() fonksiyonu, alandaki geçerli seçimi döndürür.

Burada kullanılan 10 sayısı, 10 tane seçime kadar ekrana yaz 11. seçim dahil olmak üzere sonraki seçimlerde 11 of 75 şeklinde göster anlamına gelir.

Aynı şekilde Grup 2 seçimleri için Grup 1 yerine Grup 2 yazalım.

=GetFieldSelections( [Kategori Tanımı], ', ', 10, 'Grup2')&','&
GetFieldSelections( [Stok Adı], ', ', 10, 'Grup2')

Görünüş bölümündeki Alternatif durumlara gelerek aşağıdaki Grup 1 seçimleri için Grup 1‘i, Grup 2 seçimleri için Grup 2‘yi seçelim.

wefwq.png

Aşağıdaki şekilde raporu dizayn edebilirsiniz.

taajhrh.png

Sutün grafik ortada kalacak şekilde iki yanına seçimlerimizin görüneceği metin ve resmi; raporun kalan kısmınına da kıyaslayacağımız kategori  ve stok adlarını ekleyelim.

dfhae.png

Yukarıdaki ekran görüntüsünde görüldüğü gibi seçtiğimiz kategori ve stokların satışlarını belirlediğimiz grafik üzerinden rahatlıkla karşılaştırabiliriz.

Qlik Sense Ders 13: İç İçe If Kullanımı

İç içe if kullanımını, örnek olarak hazırladığım ülkelerin cirolarını gösteren bir tablo üzerinden görelim.

Burada toplam ciroya tıklayarak arka plan rengi ifadesi için aşağıdaki formülü girelim:

if(sum(Satış)<20000, ‘RED’, if( sum(Satış)<=500000, ‘ORANGE’, if(sum(Satış)>=500000, ‘GREEN’)))

qwdq

Böylece toplam cironun arka planına, iç içe if sayesinde üç farklı renk vermiş oluyoruz.

grwtwqtg.png

Renklendirme için Qlik’in kendi içerisindeki renk fonksiyonlarını ya da RGB kodlarını kullanabilirsiniz.