DAX'ta koşullu mantık kurmak için IF, çoklu durumlar için SWITCH, ve birden fazla koşulu birleştirmek için AND/OR kullanılır.
IF: Temel Koşul
Fiyat Durumu = IF(Transactions[UnitPrice] > 5, "Yuksek", "Dusuk")
IF üç parametre alır: koşul, koşul doğruysa dönecek değer, koşul yanlışsa dönecek değer.
İç İçe IF'in Sorunu ve SWITCH Çözümü
Birden fazla durumu ayırt etmek için iç içe IF yazmak hızla okunması zor bir hale gelir:
Ay Adi =
IF(Satislar[Ay] = 5, "Mayis",
IF(Satislar[Ay] = 6, "Haziran",
IF(Satislar[Ay] = 7, "Temmuz", "Diger")))
Aynı işi SWITCH ile çok daha okunabilir şekilde yazabilirsiniz:
Ay Adi =
SWITCH(
Satislar[Ay],
5, "Mayis",
6, "Haziran",
7, "Temmuz",
"Diger"
)
SWITCH, önce test edilecek ifadeyi (burada Satislar[Ay]) alır, ardından değer/sonuç çiftlerini sırayla listeler, son parametre ise hiçbir değer eşleşmezse dönecek varsayılan sonuçtur.
AND ve OR: Birden Fazla Koşulu Birleştirmek
Indirim Durumu =
IF(
AND(Satislar[Ay] = 5, Satislar[GununAdi] = "Cuma"),
"Indirimde",
"Normal Fiyat"
)
AND, verdiğiniz tüm koşulların doğru olmasını gerektirir (Mayıs ayı ve Cuma günü). OR ise koşullardan en az birinin doğru olması yeterlidir:
Ozel Gun =
IF(
OR(Satislar[GununAdi] = "Cuma", Satislar[Ay] = 5),
"Ozel",
"Normal"
)
TRUE/FALSE Değerlerini 1/0'a Çevirmek
Mantıksal bir ifadenin sonucunu doğrudan sayısal olarak kullanmak isterseniz INT benzeri bir dönüşüm yerine DAX'ta mantıksal değerler zaten 1/0 ile eşleşir — bu, örneğin bir toplam içinde koşullu sayım yapmak istediğinizde kullanışlı bir özelliktir.
Sırada Ne Var?
Sırada, öğrendiğimiz temel fonksiyonları kullanarak baştan sona basit bir rapor hazırlayacağız: hesaplanmış kolon, tablo, dilimleyici, grafik ve kart görselleri.