ALL, ALLEXCEPT ve REMOVEFILTERS Arasındaki Farklar

DAX’ta toplam içindeki pay, karşılaştırma ve filtre bağımsız hesaplamalar yaparken ALL, ALLEXCEPT ve REMOVEFILTERS gibi fonksiyonlarla sık karşılaşılır. Bu fonksiyonların ortak konusu filtre bağlamını değiştirmektir; ancak kullanım amaçları birbirinden farklıdır.

ALL nedir?

ALL, bir tablo veya belirli sütunlardaki filtreleri kaldırmak için kullanılabilir. Ayrıca tablo ifadesi olarak da kullanılabildiği için REMOVEFILTERS’ten farklı bir role sahiptir.

ALLEXCEPT nedir?

ALLEXCEPT, bir tablodaki belirtilen sütunların filtrelerini korurken diğer bağlam filtrelerini kaldırmak için kullanılabilir.

REMOVEFILTERS nedir?

REMOVEFILTERS yalnızca filtreleri temizlemek amacıyla kullanılır; belirtilen tablo veya sütunlardaki filtreleri kaldırır.

Örnek: kategori payı

Kategori Payı = DIVIDE([Toplam Satış], CALCULATE([Toplam Satış], REMOVEFILTERS(Urun[Kategori]))) ölçüsünde payda kategori filtresinden bağımsız hesaplanır.

ALL mı REMOVEFILTERS mi?

Microsoft Learn, yalnızca filtre kaldırmak isteniyorsa REMOVEFILTERS’in açık bir tercih olduğunu belirtir. ALL ise hem filtre değiştirici hem de tablo döndüren fonksiyon olarak daha geniş bir role sahiptir.

ALLEXCEPT ne zaman?

Bir tablodaki birçok filtreyi kaldırırken belirli bir sütunun filtresini korumak istediğiniz durumlarda kullanılabilir.

Uygulama: kategori payının kapsamını belirleyin

Aşağıdaki örneklerde Urun ürün boyutunu, Satis[Tutar] işlem tutarını temsil eder. Ürün boyutundan satışlara aktif bire çok ilişki bulunduğu varsayılır. Önce temel ölçüyü oluşturun; ardından iki farklı payın hangi soruya cevap verdiğini karşılaştırın.

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

Kategori Filtresiz Pay =
DIVIDE(
    [Toplam Satış],
    CALCULATE([Toplam Satış], REMOVEFILTERS(Urun[Kategori]))
)

Tüm Ürünlere Göre Pay =
DIVIDE(
    [Toplam Satış],
    CALCULATE([Toplam Satış], REMOVEFILTERS(Urun))
)

İlk ölçü yalnızca kategori sütunundaki filtreyi kaldırır. Marka veya ürün adı filtresi varsa bunlar kalabilir. İkinci ölçü ürün tablosundaki filtreleri kaldırır; tarih ve müşteri boyutları üzerindeki filtreler ise bu yıldız şema örneğinde korunur. Paydanın 400 TL ve seçili kategorinin 100 TL olduğu durumda sonuç %25 olur. Marka filtresi değiştiğinde paydanın değişmesi ilk ölçü için beklenen davranış olabilir.

ALLEXCEPT için açık bir kategori filtresi gerekir

Kategori Düzeyi Satış =
CALCULATE(
    [Toplam Satış],
    ALLEXCEPT(Urun, Urun[Kategori])
)

ALLEXCEPT mevcut kategori filtresini korur; görünür ürünün kategorisini kendiliğinden bulup yeni kategori filtresi oluşturmaz. Bu nedenle matrise kategori eklenmiş durumla yalnızca ürün adı eklenmiş durumu ayrı test edin. ALL(Urun[Kategori]) tablo ifadesi olarak da kullanılabilir; REMOVEFILTERS tablo döndürmez. Aynı tablodan birden fazla dilimleyici kullanırken ALL sonuçlarını auto-exist davranışı açısından kontrol etmek gerekir.

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

REMOVEFILTERS tablo döndürür mü?

Hayır. Microsoft dokümantasyonuna göre REMOVEFILTERS yalnızca filtreleri temizlemek için kullanılır.

ALL ile REMOVEFILTERS aynı mı?

Bazı filtre kaldırma senaryolarında benzer sonuçlar elde edilebilir; ancak ALL tablo ifadesi olarak da kullanılabilir.

ALLEXCEPT ne yapar?

Belirtilen sütunlar üzerindeki filtreleri koruyup aynı tablodaki diğer bağlam filtrelerini kaldı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: all-function-dax · Microsoft Learn: allexcept-function-dax · Microsoft Learn: removefilters-function-dax

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? · Power BI’da YTD, MTD ve QTD Hesaplamaları