Power BI’da Filtre ve Satır Bağlamı Kavramları

Herkese merhaba. Öncelikle herkesin geçmiş bayramını kutluyorum. Umarım güzel bir bayram geçirmişsinizdir. Bu yazımızda Power BI için temel kavramlardan olan filtre ve satır bağlamını inceleyeceğiz. İlk önce filtre bağlamını açıklayalım.

Hesapladığımız ölçüler neticesinde Power BI karşımıza bir sonuç döndürmektedir. Bu sonucu döndürmeden önce veri kümesinde yaptığımız filtrelemeler, filtre bağlamını oluşturmaktadır. Bu sebeple ön tarafta herhangi bir şey görmeyiz, filtreler arka planda kurulan ilişkilerin yönüne uygun olarak hızlı bir şekilde yapılır.

Bir örnek ile konuyu açıklayalım. Her zamanki gibi AdventureWorks veritabanını kullanıyoruz. İlk önce ilişkiler görünümüne göz atalım. İlişkiler görünümü ile ilgili şu yazıma göz atabilirsiniz, tekrar yapmak açısından faydalı olacaktır.

Şekil 1: İlişkiler Görünümü

Filtre bağlamı çalışırken ilişki yönünde akar demiştik. Bunun anlamı şudur. Örneğin “ShipMethod” tablosundan bir değer seçtiğimiz zaman ilişkinin yönü “SalesOrderHeader” tablosuna doğru olduğu için sipariş tablosunda filtreleri uygular, ve hesaplanan değeri bu filtreye göre getirir.

Bir tablo görseli oluşturalım ve taşıma metodunu ve satışları koyalım.

Şekil 2: Taşıma Metoduna göre Satış Adetleri

Filtre bağlamı bu tablo için nasıl çalışıyor açıklayalım. Satış adetlerini hesaplamadan önce ilgili taşıma metodunun değerini buluyor ve satış tablosunda filtreliyor. Ardından satış adedini hesaplıyor ve görsel içinde bize gösteriyor. Üç aşamalı bir süreç aslında. Tablolar birbirine id’ler üstünden bağlandığı için ilk önce “Cargo Transport 5” değerinin id değerini buluyor. Ardından bu değeri satış tablosunda filtreliyor ve satış adedini hesaplıyor, ve tablo görselinde de değeri bize gösteriyor. Aynı şekilde işlemler “XRQ-Truck Ground” değeri için de yapılıyor. Toplam satırı için herhangi bir filtre yapılmıyor, orada tüm tablo için hesaplama yapılıyor.

Burada filtreleme işlemini dilimleyici görselinden de yapabiliriz bu arada. Filtre bağlamı aynı şekilde dilimleyiciden seçtiğimiz değere göre çalışır. Örnek olarak taşıma tarihini dilimleyiciye koyalım ve bir filtre uygulayalım.

Şekil 3: Dilimleyici ile Filtre Bağlamı

Tabloda taşıma metodu filtresi uyguladık, ayrıca dilimleyici görseli ile tarih filtresi de vermiş olduk. Hem taşıma metodu “Cargo Transport 5” olan hem de taşıma tarihi 25.10.2012-07.07.2014 arasındaki satışları getir dedik. Toplam satırı tablodaki değerlerden etkilenmiyor fakat dilimleyicideki seçimlerimizden etkileniyor.

Son bir örnek yapıp filtre bağlamı konusunu bitirelim. Bu sefer işin içine ürün renklerini de katalım. Aynı görsele ürün renklerini de ekliyorum.
Şekil 4: Birden Fazla Filtre Uygulanan Satışlar
Filtre bağlamının çalışma mantığı değişmedi, sadece bir filtre daha eklemiş olduk. Örneğin 9843 adetlik satışı inceleyelim. Burada filtre bağlamı şu şekilde çalıştı. Taşıma metodu “XRQ-Truck Ground” olan ve aynı zamanda ürün rengi “Black” olan satırları filtreledi. Bu filtrelenen satırlara ait satış adetlerini topladı ve görselde karşımıza çıkardı. İki filtreyi aynı anda uyguladık. Burada filtreleri çoğaltabiliriz, örneğin tarih filtresi de eklersek üçüncü bir filtre olarak tarihi de hesaba katar. Böylece filtre bağlamını açıklamış olduk, şimdi de satır bağlamına geçelim.
Satır bağlamı, Power BI’da her bir satırda yapılan işlemlerde ortaya çıkar. Bu yüzden, bu kavramı ya iteratör fonksiyonlarda (sonu X ile biten) ya da hesaplanmış sütunlarda görürüz. Örnek olarak hesaplanmış sütun oluşturalım ve konsepti anlamaya çalışalım. Satış detayları tablosuna gidiyoruz ve sipariş miktarı ile birim fiyatı çarparak yeni bir sütun oluşturuyoruz.
Şekil 5: Hesaplanmış Sütun Oluşturma
Hesaplanmış sütun formülümüz sipariş miktarı ile birim fiyatın çarpımından oluşuyor, bu sebeple bu işlemi her bir satır için yapıyor ve alt alta yazıyor. 51178 no’lu sipariş için sipariş miktarını ve birim fiyatı buluyor ve çarpıyor, aynısını 51180 no’lu sipariş için de yapıyor. Bu işlemi satır satır yaptığı için de satır bağlamı oluşuyor. Yani bulunduğu satıra ait işlem yapılıyor.
İteratör fonksiyonlarla da konuyu açıklamaya çalışalım. Bildiğimiz gibi iteratör fonksiyonlar DAX’ta sonu “X” ile biten ve belirttiğimiz fonksiyonu her bir satır için tek tek yapan fonksiyonlardır. Bulunduğu satırdaki değerin farkındadırlar.
Şekil 6: İteratör Fonksiyonlarla Satır Bağlamı
“SUMX” fonksiyonuna ilk önce bir tablo verdik. Bu tablo formül hesaplamaya başlamadan önce verdiğimiz filtreyi ifade ediyor. Örneğimizde satış detayları tablosunu verdik ve bu tabloda işlem yap dedik. Ardından birinci satıra gelir ve sipariş miktarı ile birim fiyatı çarpar, çıkan sonucu hafızaya kaydeder. Tablonun en altına ulaştıktan sonra hafızaya kaydedilen tüm sonuçların bir değerlendirmesini yapar ve daha sonra istediğimiz hesaplamayı yapar, iteratör fonksiyonların çalışma mantığı kabaca budur. Her bir satır üstünde işlem yaptığı için de satır bağlamı yaratır.
Filtre bağlamı ile satır bağlamının arasındaki fark, filtre bağlamı tablolar arasındaki ilişkileri otomatik olarak görür fakat satır bağlamı sadece bulunduğu satırdaki değerleri görür. Tablolar arasındaki ilişkilerin farkında değildir. Bu durumu çözmek için “Related” veya “RelatedTable” fonksiyonlarını kullanmalıyız. Bir örnek ile açıklamaya çalışalım.
Sipariş tablosundaki ürünlerin yanlarına maliyetlerini de getirmek istiyoruz diyelim. Maliyet bilgisi ürün tablosunda ve sipariş miktarı da sipariş detay tablosunda. Bu ikisini kullanarak hesaplanmış sütun oluşturamayız çünkü ikisi de farklı tablolarda ve satır bağlamı ilişkileri göremiyor. Bu durumu aşmak için “Related” fonksiyonunu ve sipariş detay-ürün tabloları arasındaki ilişkiyi kullanarak satır bağlamına ilişkiyi tanıtacağız.
Şekil 7: Related Fonksiyonu ile Satır Bağlamı
Bu şekilde filtre ve satır bağlamı kavramlarına değinmiş olduk. Özet geçmemiz gerekirse;
  • Filtre bağlamı hesaplama yapmadan önce veri kümesine yaptığımız filtreleri ifade eder.
  • Filtre bağlamında filtrenin yönü ilişki yönüne göre uygulanır.
  • Filtre bağlamında filtreler dilimleyici gibi görsellerden de gelebilir.
  • Filtre bağlamında toplam satırı dilimleyici seçimlerinden etkilenir.
  • Satır bağlamı, her bir satır için yaptığımız işlemleri ifade eder.
  • Satır bağlamı hesaplanmış sütun veya iteratör fonksiyonlarda ortaya çıkar, çünkü bu tür hesaplamalar satır bazlı işlem yapmaktadır. Yani, bulunduğu satırdaki değerin farkındadır. Tablolar arasındaki ilişkileri görmez, sadece bulunduğu tablodaki satır değeri ile işlem yapar. Diğer tabloları kullanarak işlem yapmak istiyorsak DAX fonksiyonlarından yararlanabiliriz.
Bir sonraki yazımızda projelerde işimize yarayabilecek Power BI ipuçlarından söz edeceğim.
Herkese keyifli okumalar.

KAYNAKÇA

https://powerbi.istanbul/powerbi-context-filter-context-row-context/

https://blog.enterprisedna.co/explaining-row-context-in-power-bi/

Yazar Hakkında
Toplam 8 yazı
Hüseyin Can Çırak
Hüseyin Can Çırak
Yıldız Teknik Üniversitesi Endüstri Mühendisliği mezunuyum. 2018 Haziran'dan beri İş Zekası alanında çalışmaktayım. İş zekasında şu an ikinci şirketimde danışman olarak hizmet vermekteyim, ağırlıklı olarak SSRS, SSIS, SSAS, OLAP küpleri ve Power BI konularında çalışmaktayım.
Yorumlar (Yorum yapılmamış)

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

×

Bir Şeyler Ara