Power BI (Dax) IF Fonksiyonu
Power BI (Dax) IF Fonksiyonu
IF, hem Excel hem de Power BI’daki en popüler işlevlerden (veya ifadelerden) biridir.
Bir IF işlevi, belirtilen koşullara göre sütunları dinamik olarak oluşturmayı sağlayarak veri analizi için koşullu bir mantıksal yaklaşım yapmak için kullanılır.
Verilen mantıksal koşulu kontrol ederek, koşul sağlanıyorsa yani doğruysa (True) bu koşula karşılık gelen değeri döndürür, sağlanmıyorsa yani yanlışsa (False) ikinci değeri döndürür.
Fonksiyon 3 adet parametreden oluşur. Sonuncu parametre opsiyoneldir.
IF (mantıksal_test>, <değer_eğer_doğruysa>[, <değer_yanlışsa>])
Mantıksal_test : DOĞRU veya YANLIŞ olarak değerlendirilebilecek herhangi bir değer veya ifade.
değer_eğer_doğruysa : Mantıksal test TRUE ise döndürülen değer.
değer_yanlışsa : (İsteğe bağlı) Mantıksal test YANLIŞ ise döndürülen değer. Atlanırsa BLANK döndürülür.
IF kullanımı ile ilgili bazı notlar
- If ifadesinde sözdiziminin doğru olduğuna, parantez ve virgüllerin doğru yerleştirildiğine dikkat edin.
- Power BI’da dize karşılaştırmaları büyük/küçük harfe duyarlıdır.
- Çok fazla iç içe if ifadesi kullanmak yerine SWITCH fonksiyonunu kullanabilirsiniz.
- If ile birden fazla koşullu ifade üzerinde işlem yapmak ve tek bir sonuç elde etmek için sözdizimindeki birden fazla koşulu birleştirebilir ve bunun için AND & OR mantıksal işlevlerini kullanabilirsiniz. AND mantıksal işlevini çift ve işareti (&&) ile temsil edebilir ve OR mantıksal işlevini temsil etmek için çift düz çizgi (||) kullanabilirsiniz.
- Boş bir değer döndürmek için BLANK() metodunu kullanabilirsiniz.
- Özellikle karmaşık bir formül veya ifade kullanıyorsanız, if ifadelerinizi düzgün bir şekilde test ettiğinizden emin olun.
ÖRNEK 1 :
Power BI uygulamasında “Table view” alanında sütunlarımızı IF kullanarak oluşturalım.
“HavaDurumu” tablosunda bir günlük hava durumu verilmiştir. İlk örnekte sıcaklık 20°C ve üzeri ise “Yüksek”, altında ise “Düşük” olarak gruplandırılarak “Degerlendirme” sütunu eklenerek bu alana yazdırılacaktır.
Yeni eklenen “Degerlendirme” sütunu için uygulanan IF fonksiyonu aşağıdaki gibidir.
Mantıksal değer; Sıcaklık alanının 20’ye eşit ve büyük olması koşuludur. Eğer doğruysa “Yüksek” olarak yanlışsa “Düşük” olarak “Degerlendirme” sütununa değer eklenecektir. Ve tablo aşağıdaki gibi olacaktır.
Eğer formülde yanlış olma durumuna değer eklemeseydik, 20’ye eşit ve büyük olanları “Yüksek” olarak değerlendirip, küçük olanları yani koşulun yanlış olduğu durumları BLANK işlevi tarafından değerlendirecekti. (Boş dize, null vb. içeriyor olabilir.)
Yukarıdaki gibi 9 °C ve 16 °C koşuldan yanlış döndüğü için boş olarak değerlendirilmiştir.
Örnek 2:
Yine aynı tablo ile verilerimizi bu kez de birden fazla koşul vermek için IF fonksiyonunu kullanalım.
15°C ‘ye eşit ve küçük olanları “Düşük”, 25°C’ye eşit ve küçük fakat 15°C’den büyük olanları “Orta”, 25°C’den büyük ve 35°C’ye eşit ve küçük olanları “Yüksek”, bu şartlara uymayanları yani 35°C’den yüksek olanları “Çok Yüksek” olarak adlandırarak yeni sütuna (“Degerlendirme”) ekleyelim.
Bunu iç içe IF kullanarak sağlayacağız. Birinci formülün yanlış kısmına 2. IF formülünü, 2. IF formülünün yanlış kısmına 3. IF formülünü ekleyip bunlara uymayan değerleri en içteki yani 3. IF formülündeki yanlış kısmına ekleyeceğiz.
Formül önce 15°C’ye eşit ve küçük olma durumuna bakacak eğer doğruysa “Düşük” yazacak. Eğer yanlışsa 2. IF formülüne geçecek ve 15°C’den küçük ve eşit durumunu geçtiği için artık 15°C ‘den büyük olma ve 25°C’ye eşit ve küçük olma durumunu kontrol edecek. Eğer doğru ise “Orta” yazacak, yanlışsa 3. IF formülüne geçecek. Burada artık 25°C’ye eşit ve küçük olma durumunu da geçtiği için 25°C’den büyük ve 35°C’ye eşit ve küçük olma durumuna bakacak. Bu koşula uyanları da “Yüksek” olarak değerlendirecek. Eğer bu şarta da uymuyorsa yani 35°C üstü ise en içteki formülde yanlış olma durumu olan “Çok Yüksek” değerini alıp yazacak.
Sonuç olarak tablo aşağıdaki gibi “Degerlendirme” alanına sahip olacak.
“Report View” sekmesine gelip bir grafik seçerek yeni alanımızı kullanalım.
Harita grafiği seçip Location yani bölge için “Sehir” alanını ve Legend yani kategori alanı için de yeni oluşturduğumuz “Degerlendirme” alanını ekleyelim.
İlgili görsel düzenlemeleri yaptığımızda aşağıdaki gibi harita üzerinde şehirleri verdiğimiz “Degerlendirme” alanındaki değerlere göre kategorilendirilerek renkli olarak işaretlenmiştir.
İlgili şehrin işaretinin üzerine gelindiğinde detay bilgi ile şehir adı, değerlendirmesi ve sıcaklık bilgisi gelmektedir.
ÖRNEK 3:
AND ve OR ile kullanımı
And Fonksiyonu aşağıdaki gibidir.
AND (<logical1>,<logical2>)
logical_1, logical_2 | : Test etmek istediğiniz mantıksal değerler. |
Test ettiğiniz değerlerin birleşimine bağlı olarak true veya false döndürür. Burada And mantıksal operatörünün sonuçlarıyla değerlendirmek gerekir.
Bu tablodaki gibi değerlerden en az biri yanlış ise sonuç Yanlıştır. İkisi de doğru ise sonuç doğrdudur.
DAX’takiAND işlevi yalnızca iki (2) bağımsız değişken kabul eder. Eğer birden fazla AND kullanmanız gerekiyorsa, bir dizi hesaplama oluşturabilir veya (&) kullanarak bunların tümünü daha basit bir ifadede birleştirebilirsiniz.
“HavaDurumu” tablosuna “Degerlendirme2” alanını ekleyelim. Bu alana Sıcaklığı Yüksek değerlendirdiğimiz ve Şehir adının ilk harfi “A” olan değerlere “+”, bu koşulları sağlamayanlara “-” değeri ekleyecektir. And ifadesinden dolayı 2 koşul da doğru ise IF fonksiyonun doğru değeriyle eşleşir. Eğer And de yer alan koşullardan biri veya her ikisi de yanlış ise IF fonksiyonun yanlış değeri ile eşleşir.
Yukarıdaki gibi hem “Degerlendirme” alanı “Yüksek” hem de “Sehir” alanının ilk satırı “A” ise “+” dönecektir. En az bir koşul yanlış ise direkt “-“ döner. Buradaki LEFT Fonksiyonu istenilen metni başından belirtilen karakter sayısını döndürür. İlk parametresi ayıklanacak metin dizisi veya metin içeren
sütun, ikinci parametresi ise soldan kaç tane karakter ayıklanacağıdır. Burada “Sehir” sütunundaki metnin baştan 1. Karakterini almak için kullandık.
Or Fonksiyonu aşağıdaki gibidir.
OR (<logical1>,<logical2>)
logical_1, logical_2 | : Test etmek istediğiniz mantıksal değerler. |
Test ettiğiniz değerlerin birleşimine bağlı olarak true veya false döndürür. Burada Or mantıksal operatörünün sonuçlarıyla değerlendirmek gerekir.
İki değişkenden en az biri Doğru ise değer Doğru olur; her iki değişken de Yanlış ise değer Yanlış olur.
“HavaDurumu” tablosuna “Degerlendirme2” alanına bir de Or fonksiyonu ekleyelim. Burada “Degerlendirme” değeri “Yüksek” veya şehir adının ilk harfi “A” ise “+” dönecektir. Yani bu iki koşuldan yalnızca biri doğru ise “+” dönecek. İkisininde yanlış olma durumunda “-“ değer dönecek. Yani şehrin “A” ile başlaması tek başına yeterken yine “Degerlendirme” alanın “Yüksek” olması da tek başına If fonksiyonunu doğru döndürerek “+” değeri alır.
Örneğin yukarıda şehirler “A” ile başladığı için bu koşul doğru döner ve “Degerlendirme” alanı “Yüksek” olmasa bile “+” olmuştur. (Amsterdam,Anadyr,Anchorage gibi)
Yukarıda ise Cairo şehri “Degerlendirme” alanı “Yüksek” olduğu için “+”, diğer şehirler “A” ile başlamadığı için ve “Degerlendirme” alanı “Yüksek” olmadığı için yani iki koşul da yanlış döndüğü için “-“ sonucu ile eşleşmiştir.
Yazar: Cansu Aydoğan