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 ile 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"
)
Fakat farklı sütunlardan gelen condition’ları aynı filtre altında veremiyorduk!
Yani aşağıdaki gibi bir formül yazamıyorduk:
Kırmızı veya 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 -bloga üyeyseniz- indirebilirsiniz.
Sadece üyeler görebilir. Hızlı üyelik için sosyal medya hesabınızla giriş yapabilirsiniz!