FILTER Ne Zaman Kullanılmalı?

FILTER, DAX’ta belirli koşulları sağlayan satırlardan oluşan bir tablo veya tablo alt kümesi oluşturmak için kullanılan güçlü bir filtreleme fonksiyonudur. Ancak FILTER’ın güçlü olması her filtreleme işleminde kullanılması gerektiği anlamına gelmez.

FILTER nasıl çalışır?

Temel yapı şöyledir:

FILTER(Tablo, Koşul)

Örneğin:

FILTER(Satis, Satis[Tutar] > 1000)

ifadesi, satış tutarı 1000’den büyük olan satırları temsil eden bir tablo döndürür.

CALCULATE ile FILTER

FILTER çoğu zaman CALCULATE ile birlikte kullanılır. Özellikle basit Boolean filtrelerle ifade edilemeyen daha karmaşık koşullarda faydalıdır.

Basit filtre ile FILTER arasındaki fark

Örneğin CALCULATE([Toplam Satış], Urun[Kategori] = "Elektronik") gibi doğrudan bir sütun filtresi mümkünse, sırf filtreleme yapmak için FILTER kullanmak gerekli değildir. Daha karmaşık satır bazlı mantık gerektiğinde FILTER anlamlı hale gelir.

FILTER ne zaman tercih edilir?

Bir koşulun başka bir hesaplamaya, birden fazla alanın birlikte değerlendirilmesine veya satır bazlı karmaşık bir mantığa bağlı olduğu durumlarda FILTER kullanılabilir.

Performans açısından dikkat

FILTER’ın üzerinde çalıştığı tablo önemlidir. Çok büyük tabloların gereksiz yere satır satır değerlendirilmesi performansı olumsuz etkileyebilir. Bu nedenle veri modeli ve filtreleme stratejisi birlikte değerlendirilmelidir.

Sık yapılan hata

FILTER’ı ‘daha gelişmiş olduğu için’ her yerde kullanmak doğru değildir. Önce ihtiyacın basit bir sütun filtresiyle çözülüp çözülemeyeceği kontrol edilmelidir.

Uygulama: yüksek satışlı ürünleri bulmak

Basit bir kategori eşitliğini doğrudan CALCULATE içine yazabilirsiniz. Ancak koşul her ürünün toplam satış ölçüsüne dayanıyorsa FILTER anlamlıdır. Aşağıdaki modelde Urun[UrunID] benzersiz ürün anahtarıdır ve satış tablosuna aktif ilişkiyle bağlıdır. Eşik örnek olarak 100.000 TL seçilmiştir.

Toplam Satış = SUM(Satis[Tutar])

Yüksek Satışlı Ürünlerin Satışı =
CALCULATE(
    [Toplam Satış],
    FILTER(
        VALUES(Urun[UrunID]),
        [Toplam Satış] > 100000
    )
)

VALUES mevcut filtrelerde görünen ürünleri listeler. FILTER bu ürünleri değerlendirirken [Toplam Satış] ölçüsünün çağrılması satır bağlamını otomatik olarak filtre bağlamına dönüştürür. Dolayısıyla eşik her ürün için ayrı test edilir. Bu desen tek işlem tutarı 100.000 TL üzerindeki satışları aramaz; seçili dönemde ürünün toplam satışını kontrol eder.

Beklenen sonucu küçük veriyle doğrulayın

Seçili dönemde A ürününün satışı 120.000 TL, B ürününün 80.000 TL ve C ürününün 150.000 TL olsun. Ölçü A ve C ürünlerini kapsar ve 270.000 TL döndürür. Dönem filtresi değiştiğinde ürünlerin eşiği geçip geçmediği yeniden değerlendirilir. Tüm satış kalemlerini dolaşmak yerine ürün anahtarlarının değerlendirilmesi hem iş kuralını netleştirir hem de sorgunun çalışacağı kümenin boyutunu azaltabilir. Hız farkını kendi modelinizde ölçün.

Sonuç

Power BI’da DAX konusunda başarılı olmak, yalnızca fonksiyonları ezberlemekten çok veri modelini ve hesaplama bağlamını anlamayı gerektirir. Gerçek projelerde doğru DAX; doğru model, doğru veri kaynağı ve doğru rapor tasarımıyla birlikte ele alındığında daha sürdürülebilir sonuç verir.

Sık Sorulan Sorular

FILTER ne döndürür?

Bir tablo veya tablo ifadesinin koşulu sağlayan satırlarından oluşan tablo döndürür.

FILTER tek başına ölçü sonucu verir mi?

FILTER bir tablo ifadesidir; genellikle CALCULATE, CALCULATETABLE, SUMX gibi başka fonksiyonların içinde kullanılır.

FILTER performansı neden önemlidir?

Özellikle büyük tablolarda gereksiz satır bazlı değerlendirmeler sorgu maliyetini artırabilir.

Danışmanlık

Power BI raporlarınızda DAX, veri modeli veya performans sorunları yaşıyorsanız mevcut yapınızı inceleyerek raporlama mimarisi, DAX optimizasyonu ve performans analizi konusunda danışmanlık desteği alabilirsiniz.

Kaynak

Microsoft Learn: filter-function-dax · Microsoft Learn: dax-avoid-avoid-filter-as-filter-argument

Metin SEVİNDİK | İş Zekası ve Veri Danışmanlığı

Power BI ve DAX danışmanlığı için iletişime geçin.

DAX serisinde okumaya devam edin

DAX Nedir, Nasıl Çalışır, Zor mu? · CALCULATE Nasıl Çalışır? · ALL, ALLEXCEPT ve REMOVEFILTERS Arasındaki Farklar