DAX Serisi #2 – FILTER() Fonksiyonu: Veride Detaylara İnmek

Barış CihanBarış Cihan
2 min read

Power BI’da verileri analiz ederken sadece genel toplamları değil, belirli koşullara göre süzülmüş bilgileri de görmek isteriz. İşte burada devreye DAX’ın en esnek araçlarından biri olan FILTER() fonksiyonu giriyor.


📌 FILTER() Nedir?

FILTER() fonksiyonu, bir tabloyu satır bazında süzmek için kullanılır.
Diğer DAX fonksiyonlarıyla birlikte kullanılarak veri modeline özel koşullu hesaplamalar yapmanızı sağlar.


🎯 Ne İşe Yarar?

FILTER(), genellikle CALCULATE() içinde kullanılır ve şöyle çalışır:
🧠 “Bu tabloyu şu koşula göre süz ve sadece o verilerle hesap yap.”


🧪 Basit Bir Örnek

Diyelim ki bir Sales tablonuz var ve sadece tutarı 1000 TL’den büyük satışları toplamak istiyorsunuz:

High Value Sales = 
CALCULATE(
    SUM(Sales[Amount]),
    FILTER(Sales, Sales[Amount] > 1000)
)

Burada ne yaptık?

  • FILTER() fonksiyonu, Sales tablosunu süzdü.

  • CALCULATE() süzülen veriye göre toplamı yeniden hesapladı.


⚙️ FILTER() Söz Dizimi

FILTER(<table>, <expression>)
  • <table>: Üzerinde işlem yapılacak tablo (örneğin Sales)

  • <expression>: Her satır için geçerli olacak koşul (örneğin Amount > 1000)


🔍 Gerçek Hayat Senaryosu

Bir mağaza zinciri, sadece indirimli satışların toplamını görmek istiyor.

Discounted Sales = 
CALCULATE(
    [Total Sales],
    FILTER(Sales, Sales[Discount] > 0)
)

Aynı şekilde, sadece İstanbul’daki mağazaların satışlarını görmek için:

Istanbul Sales = 
CALCULATE(
    [Total Sales],
    FILTER(Sales, Sales[City] = "İstanbul")
)

🎛️ Neden FILTER() Kullanalım?

Bazı durumlarda Sales[Amount] > 1000 gibi filtreleri doğrudan CALCULATE() içinde yazabiliriz.
Ama eğer:

  • Birden fazla koşul varsa

  • İç içe hesaplamalar gerekiyorsa

  • Koşulun dinamik olması gerekiyorsa

işte o zaman FILTER() fonksiyonu kaçınılmaz hale gelir.


🧠 İleri Seviye: FILTER() + ALL()

Toplam içindeki payları hesaplamak istediğinizde ALL() fonksiyonu ile birlikte kullanılır:

Sales % = 
DIVIDE(
    [Total Sales],
    CALCULATE(
        [Total Sales],
        ALL(Sales)
    )
)

Bu formülde, toplam satış tüm filtreler kaldırılarak hesaplanır. Yüzdelik pay elde edilir.


✍️ Sonuç

FILTER(), DAX’ın detaycı yüzüdür. Satır bazında kontrol sağlar ve özellikle karmaşık hesaplamalarda büyük esneklik sunar.

📌 Eğer verinizin sadece belirli bir kısmını analiz etmek istiyorsanız, FILTER() ile tanışmadan olmaz.


👉 Serimizin bir sonraki bölümünde ALL() fonksiyonu ile filtre kaldırmayı öğreneceğiz.

Verinin gücüne hükmetmek için takipte kalın.
Power BI’ı sadece görselleştirme değil, analiz aracı olarak kullanmak isteyen herkes için bu seriyi hazırlıyoruz.

0
Subscribe to my newsletter

Read articles from Barış Cihan directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Barış Cihan
Barış Cihan