Power BI’da Dinamik Seçim Oluşturma
Herkese merhaba. Bu yazımızda Power BI’da dinamik seçim oluşturma işlemine göz atacağız.
İlk olarak dinamik seçim oluşturmaya bakalım. İş hayatında verileri analiz ederken senaryolarımız ve ihtiyaçlarımız çok değişken olabiliyor. Bu senaryolardan biri olan dinamik seçim işleminde, kullanıcının seçimine göre ilk 3, ilk 5, ilk 10 satış adedi değerlerinin görüntülenmesini sağlayacağız. Yani, kullanıcı filtreden ilk 3 seçtiğinde sadece ilk 3 satış adedi, ilk 5 geldiğinde sadece ilk 5 satış adedi gelecek. Buradaki 3, 5, 10 sayıları rastgele verilmiştir, bu sayıları istediğimiz gibi değiştirebiliriz.
Veri olarak bir önceki yazıdaki modeli kullanacağız. Bir önceki yazıya göz atmak isteyenler buraya tıklayarak ulaşabilir. Dinamik seçimde örnek olarak sadece satış adetleriyle çalışacağız, dolayısıyla çok karmaşık bir modelimiz yok. O halde başlayalım.
AdventureWorks veritabanı ile çalışıyoruz. Bu veritabanından önceki yazıda birkaç tablo içeri yüklemiştik, öncelikle tablolar arasındaki ilişkileri aşağıda görebiliriz.
Şekil 1: Tablolar arası ilişkiler
Burası Power BI’ın ilişkiler görünümüdür, bu kısımda tablolar arasında ilişkiler kuruyoruz, düzgün filtrelemeler yapılabilmesi için. İlişkilerin nasıl tanımlanacağı ve daha fazla bilgi için buraya tıklayabilirsiniz.
İlk işlem olarak ek bir tablo oluşturuyoruz, bu tabloya elle veri girişi yapacağız ve seçim bu tablo üstünden yapılacak. Giriş sekmesindeki “Verileri Girin” butonuna tıklayarak verilerimizi giriyoruz.
Şekil 2: Power BI’a elle veri girişi
Amacımız, aşağıdaki şekilde yandaki filtreden seçilen değere göre en yüksek satışları getirmek. Filtreden 3 seçildiğinde en yüksek 3 satış adedi, 5 seçildiğinde en yüksek 5 satış adedi gelmeli. Sıra seçimi yaptırmak için Power BI’da yer alan dilimleyici görselini kullandım.
Şekil 3: Filtreden sıra seçimi
3 tane metrik yazacağız, bu metrikler dinamik seçim yapmamız için bize gerekli olacak. İlk metrikte, sağdaki filtreden tek bir şey seçtiğimizde ona ait sırayı getirmesini, birden fazla değer seçtiğimizde de tüm satışları getirmesini sağlayacağız. Yani, filtreden 3 seçtiğimizde ilk 3 satışı getirecek, fakat hem 3 hem 5 seçtiğimizde tüm satışlar gelecek. Bunun için formülün sonuna 10000 yazıyorum ki her şeyi görelim. Yazdığımız metrik dilimleyiciden bir seçim yapıldıysa “Values” fonksiyonuyla bu değeri yakalayacak, bir seçim yapılmaz veya birden fazla seçim yapılırsa en yüksek değere göre çalışacak (10000’i yazmamızın amacı budur).
Şekil 4: Sıra seçim metriği yazımı
İkinci metrik, ürünlere göre satış adetlerini sıralamak olacak. Bunun için Power BI’da yer alan “RankX” fonksiyonunu kullanacağız. Bu komut, bir metriğe göre değerlendirme yapar ve artan veya azalan bir sıra numarası verir. SQL’deki sıra numarası veren fonksiyonlar (RowNumber(), DenseRank(), vs.) gibi düşünebiliriz.
Şekil 5: Power BI’da RankX fonksiyonu
Bu fonksiyonu biraz açıklayalım. Bu fonksiyon 5 adet parametre alıyor toplamda fakat en çok kullanılan 3 tanesini vereceğiz içine. İlk önce bizden bir tablo veya sütun adı istiyor. Burada ürünlere göre satışları sıralayacağımız için “Product” tablosunu verdik. Ekstra “All” fonksiyonu yazmamızın sebebi, tüm ürünler tablosunu hiçbir filtre uygulamadan görmek istememizdir. “All” yazmasaydık, her bir ürünü tek başına değerlendirip hepsine 1 yazacaktı. Bu konuya ileride DAX, filtre bağlamı ve satır bağlamı konularında değineceğim. Power BI’ın en önemli konularından çünkü bu.
Tablo adı verdikten sonra hangi metriğe göre sıralayacağımızı belirtiyoruz, burada toplam satış adedine göre sıralamak istediğimiz için “Satışlar” metriğini verdik. Sıra numarasının artan veya azalan olması gerektiğini de son parametrede söylüyoruz. Normalde buraya hiçbir şey belirtmeseydik varsayılan olarak azalan sıra verecekti fakat fonksiyonda görebilmek adına yine de yazdım. Eğer artan sıra numarası vermek istiyorsak “ASC” yazmamız gerekiyor.
Sıralama fonksiyonunu yazdıktan sonra satış adetlerini nasıl sıraladığına göz atalım.
Şekil 6: Power BI’da RankX fonksiyonu ile satışların sıralanması
Son oluşturacağımız metrik ile yaptığımız seçim ile metriği konuşturuyoruz. “Ürüne göre satışlar” isimli bir metrik yazıyoruz ve eğer “Satış Sıralaması” metriği, yapacağımız seçimden küçük eşit ise satış metriğini döndürecek, değil ise boş getirecek.
Şekil 7: Seçim ile satış metriğinin bir araya getirilmesi
Şimdi ürün adlarının yanına son metriğimizi getirip sağdaki filtreden ilk 5 satışları getirmesini isteyelim ve sonuçları görelim.
Şekil 8: Power BI’da dinamik seçim
Bu şekilde 5 seçtiğimiz zaman en yüksek 5 satışı, 10 seçtiğimiz zaman en yüksek 10 satışı getirecektir. Bunun bir gelişmiş versiyonu olarak en yüksek-en düşük satışların beraber filtrelendiği bir örnek yapılabilir. Bazen en yüksek satışlardan ziyade en düşükleri de görmek isteyebiliriz, yükseklerde sorun yok ama düşük satışlar neden olmuş şeklinde düşünebiliriz.
Bu yazımızda dinamik seçim oluşturmayı inceledik. Bir sonraki yazımızda Power BI’ın önemli konularından biri olan filtre bağlamı ve satır bağlamı konularına değineceğiz.
Umarım faydalı bir yazı olmuştur, herkese iyi okumalar!