CALCULATE Filtrelerinde OR Kullanımı

2021 Mart güncellemesi ile birlikte CALCULATE'e verebileceğimiz filtre tiplerinde OR kullanımına ilişkin bir yazım (syntax) değişikliğine gidildi.

Daha önce CALCULATE ve OR kullanımıyla ilgili yazdığım yazıda şöyle örnekler vermiştim:

Aynı filtre içerisinde tek bir sütun üzerinden OR condition yazabiliriz.

Kırmızı-Mavi Ürün Satışları := 
CALCULATE( SUM( 'Satışlar'[Tutar] ) ,
    'Ürünler'[Renk] = "Kırmızı" || 'Ürünler'[Renk] = "Mavi" 
)


 Birden fazla sütun üzerinden  OR'la bağlanan  tek bir filtre  yazımına müsade etmiyordu!

Yani aşağıdaki gibi bir formül yazamıyorduk:

Kırmızı - Contoso Satışları := 
CALCULATE( SUM( 'Satışlar'[Tutar] ) ,
    'Ürünler'[Renk] = "Kırmızı" || 'Ürünler'[Marka] =  "Contoso"
)

"The expression contains  multiple columns , but only a  single column  can be used…" . Meali, aynı filtrede birden fazla farklı sütun kullanamazsın!

Eğer böyle bir ihtiyaç varsa bunu ancak FILTER kalıbıyla yazabiliyorduk.

Kırmızı Contoso Satışları _FILTER_:= 
CALCULATE( SUM( 'Satışlar'[Tutar] )  ,
    FILTER( ALL( 'Ürünler'[Renk] , 'Ürünler'[Marka]) ,
        'Ürünler'[Renk] = "Kırmızı" || 'Ürünler'[Marka] = "Contoso"
    )
)

Güncellemeyle birlikte artık daha önce reddettiği yazıma müsade ediyor!

Burada bir uyarıda bulunmak isterim :  Sütunlar aynı tablodan geliyorsa  buna artık müsade ediyor, fakat farklı tablolardan gelen sütunlar üzerinden OR'la bağlanmış  tek bir filtre  halen syntax olarak yazamıyoruz!

Bu durum elbette çözümsüz değil, expanded tables konseptiyle, CALCULATETABLE ile ya da FILTER ile , ya da kafamız nasıl çalışıyorsa SUMMARIZE ile de yapabiliriz.

CALCULATE ve OR kullanımına ilişkin bu yazıya da göz atmanızı öneririm, IN operatörü ile de benzer hesaplamaları yapmak mümkün.

Önümüzdeki +- 6 ay – 1 yıl içerisinde DAX'ın semantiğiyle ilgili yapısal bir değişiklik yok, ama yazıma (syntax) ilişkin değişiklikler olması muhtemel. AutoExist gibi, DAX konusunda tecrübeli kişilere bile "nasıl yani" dedirtecek durumlar için de geliştirmeler olacak büyük ihtimalle.

Yazıdaki modeli indirebilirsiniz.

Sadece kayıtlı üyeler görebilir. Giriş veya Üyelik için login.