Kurs
Power BI'deki SWITCH() fonksiyonu, iç içe IF() ifadelerine kıyasla birden çok durumu daha yapılandırılmış ve okunabilir bir şekilde ele almayı sağlayan mantıksal bir DAX fonksiyonudur.
Bu eğitimde, SWITCH() fonksiyonunu ayrıntılı olarak inceleyeceğiz. Ne olduğunu, nasıl kullanılacağını ve fonksiyonu kullanırken karşılaşılabilecek yaygın tuzaklar ile en iyi uygulamaları ele alacağız.
Power BI ve DAX'e başlamak için Power BI Fundamentals beceri yolumuzu inceleyin ve karşılaşacağınız en kullanışlı DAX fonksiyonları için hızlı başvuru olarak DAX Cheat Sheet'imizi elinizin altında bulundurun.

Power BI'de SWITCH Fonksiyonu Nedir?
Power BI için DAX'teki SWITCH() fonksiyonu, koşullu ifadeler yazmayı kolaylaştırır. Bir ifadeyi değerlendirir ve bunu bir dizi değerle karşılaştırarak, ilk eşleşen sonucu döndürür.
SWITCH(), birden fazla koşulu tek bir fonksiyonda toplayarak birden fazla iç içe IF() ifadesinin yerini alabilir. Bu, okunması ve bakımı daha kolay, daha temiz ve basit DAX ifadelerine yol açar. Formüllerinizin okunabilirliğini de artırır; böylece siz ve başkaları hesaplamalarınızı daha kolay anlayıp değiştirebilir.
Temel sözdizimi ve kullanım
SWITCH() fonksiyonunun temel sözdizimi şöyledir:
SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
- Expression: Değerlendirilen ifade.
- Value: İfade ile karşılaştırılan değerler.
- Result: İfade ilgili değerle eşleşirse döndürülen sonuçlar.
- Else: Değerlerin hiçbiri ifadeyle eşleşmezse döndürülen isteğe bağlı sonuç.
İşte eğitimlerde ve resmi Microsoft Power BI dokümantasyonunda sıkça göreceğiniz temel sözdizimi ifadelerini (yukarıdaki gibi) okurken kullanabileceğiniz hızlı bir ipucu. Yukarıdaki ifadede iki <value> ve <result> parametre seti gösteriliyor; ikinci set köşeli parantez içinde. Bu, SWITCH() fonksiyonu için birden fazla değer ve sonuç setinin bulunabileceği ve bunların isteğe bağlı olduğu anlamına gelir. Benzer şekilde, fonksiyonun <else> bölümü de köşeli parantez içinde olduğundan isteğe bağlıdır.
İç içe IF ifadeleriyle karşılaştırma
DAX'te birden çok koşulu ele almanın geleneksel yolu, hızla karmaşık ve okunması güç hale gelebilen iç içe IF ifadelerini içerir. Örneğin, dört koşulu ele almak için üç iç içe IF fonksiyonu gerekir. Buna karşılık, SWITCH() fonksiyonu, koşul-sonuç çiftlerinin düz bir listesine izin vererek hem okunabilirliği hem de bakımı iyileştirir.
Birden fazla iç içe IF ifadesi SWITCH() ile aynı sonucu üretebilse de, SWITCH() yine de tercih edilir; çünkü yazması daha kolaydır ve hataya daha az açıktır. Çok sayıda IF() çağrısı bir raporun performansını da olumsuz etkileyebilir. Ancak, SWITCH() fonksiyonunun da rapor performansını etkileyebileceğini unutmamak gerekir. Bu nedenle, bu eğitimde daha sonra SWITCH() fonksiyonlarınızı optimize etme stratejilerini ve bazı en iyi uygulamaları ele alacağız.
Karmaşık hesaplamalara uygunluk
SWITCH(), bir ifade için tanımlı bir olası değerler kümesine ve her biri için karşılık gelen bir sonuca sahip olduğunuz senaryolar için özellikle uygundur.
Koşul sayısı arttıkça, birden çok iç içe IF() ifadesi kullanmaktan daha temiz ve daha verimlidir. Bu da SWITCH()'i okunabilirlik ve performansın önemli olduğu karmaşık hesaplamalar için mükemmel bir seçenek yapar.
Bununla birlikte, SWITCH() okunabilirliği artırsa da, iç içe IF() ifadelerine göre performans faydaları büyük ölçüde özel kullanım durumuna ve alttaki veri modeline bağlıdır.
Power BI'de SWITCH Fonksiyonu Nasıl Kullanılır
Bu örnekler, Power BI'de çeşitli iş senaryolarını ele alırken SWITCH() fonksiyonunun çok yönlülüğünü gösterir. Karmaşık iç içe IF() ifadelerini SWITCH() ile değiştirerek daha net ve bakımı kolay DAX formülleri elde edebilirsiniz.
Örnek 1: Satış kategorisi analizi
Bir işletmenin, satış performansını daha etkili analiz etmek için toplam satış tutarına göre satışlarını farklı seviyelere ayırmak istediğini hayal edin.
Aşağıdaki DAX formülünde, toplam satış tutarına göre bir satış kategorisi atamak için SWITCH() fonksiyonunu kullanıyoruz. Formülümüzde ifade olarak mantıksal TRUE() fonksiyonunu kullandığımıza dikkat edeceksiniz. Bunun nedeni, SWITCH()'in yalnızca tam eşleşmeleri araması ve formülümüzde büyüktür-küçüktür gibi karşılaştırma operatörlerini kullanmak istememizdir. Bu yüzden ifadeyi TRUE() olarak ayarladığımızda, SWITCH() her bir koşulu bir eşleşme bulunana kadar değerlendirir (yani sonuç true olduğunda).
Sales Category =
SWITCH(
TRUE(),
[Total Sales] < 10000, "Low Sales",
[Total Sales] < 50000, "Medium Sales",
[Total Sales] >= 50000, "High Sales",
"Unknown")
Power BI'deki sonuç şöyle:

Örnek 2: Ürün indirim stratejisi
Bir perakende zincirinin, kârlılığı en üst düzeye çıkarmak için ürünlere net satış fiyatlarına göre farklı indirim yüzdeleri uyguladığını ve mağazalarındaki indirimli satışların toplam değerini hesaplamak istediğini varsayalım.
Aşağıdaki DAX formülünde, SWITCH() fonksiyonunu bir değişken içinde kullanıyoruz. İndirim yüzdesi formülünü raporumuzun başka bir yerinde kullanmamıza gerek olmadığından, yinelenen hesaplamaları azaltabilir ve bunu yalnızca indirimli satışlar için bu formül içinde değerlendirebiliriz.
DiscountedSales =
VAR DiscountPct = SWITCH(
TRUE,
Sales[Net Price] <= 150, 0.15,
Sales[Net Price] <= 500, 0.2,
Sales[Net Price] <= 1000, 0.3,
0
)
VAR DiscountAmount = Sales[SalesAmount] * (1 - DiscountPct)
RETURN
DiscountAmount
Power BI'deki sonuç şöyle:

Yaygın Tuzaklar ve Bunlardan Kaçınma Yolları
Bu bölümde, SWITCH() fonksiyonunu kullanırken karşılaşılan bazı yaygın tuzakları ve bunlardan kaçınmaya yönelik önerileri gözden geçiriyoruz.
1. Basit koşullar için aşırı kullanım
SWITCH()'i basit bir IF ifadesinin yeterli olacağı senaryolarda kullanmak, DAX formüllerinizi gereksiz yere karmaşıklaştırabilir.
Bunun yerine, SWITCH()'i birden çok koşul içeren durumlar için ayırın. Bir veya iki koşul için sadelik adına IF kullanmayı düşünün.
2. Büyük veri kümelerinde performans etkisi
Özellikle karmaşık ifadelerle birlikte SWITCH() fonksiyonunun yoğun kullanımı, büyük veri kümelerinde rapor performansını yavaşlatabilir.
SWITCH() içindeki ifadeleri, karmaşık kısımları değişkenler kullanarak önceden hesaplayarak optimize edin. Değişkenler, SWITCH() ifadesini daha temiz ve anlaşılır hale getirir; tekrarlı veya gereksiz hesaplamaların olasılığını azaltarak dolaylı yoldan optimizasyona katkı sağlar.
Ortak ifadeleri veya koşullarınızın karmaşık bölümlerini bir kez hesaplayın ve değişkenlerde saklayın. Bu, aynı ifadenin SWITCH() fonksiyonu içinde birden çok kez yeniden hesaplanmasını önler.
3. Varsayılanın verimsiz kullanımı
SWITCH() içindeki varsayılan durumu, hataları veya beklenmeyen değerleri uygun değerlendirme olmadan ele almak için yanlış kullanmak, hatalı sonuçlara yol açabilir.
Koşulları net biçimde tanımlayın ve bilinen senaryoları açıkça ele alın. Beklenmeyen veya eksik değerleri yönetmek için IFERROR veya ISBLANK gibi fonksiyonları kullanın.
4. Bağlamın yanlış anlaşılması
SWITCH()'in geçerli bağlamda değerlendirildiğini unutmak, özellikle satır veya filtre bağlamlarında kullanıldığında beklenmedik sonuçlara yol açabilir. Introduction to DAX kursumuza göz atın; burada bağlamları daha ayrıntılı tartışıyoruz.
SWITCH() ifadelerinizi tasarlarken her zaman geçerli satır veya filtre bağlamını göz önünde bulundurun. Gerekli olduğunda bağlamı ayarlamak için CALCULATE() gibi bağlam geçişi fonksiyonlarını dikkatli kullanın.
5. İşlem sırası
SWITCH() ifadesindeki koşulların sırasını göz ardı etmek beklenmedik sonuçlara yol açabilir; çünkü SWITCH() fonksiyonu koşulları tanımlandıkları sırayla değerlendirir ve ilk eşleşen koşulu kullanır.
Tıpkı iç içe IF() ifadelerinde yapacağınız gibi, her bir durumu doğru sırada yerleştirdiğinizden emin olun.
SWITCH En İyi Uygulamaları
SWITCH()'i etkili şekilde kullanmak için bazı en iyi uygulamalar:
-
Birden çok koşul için kullanın:
SWITCH(), ikiden fazla koşullu kontrolünüz olduğunda idealdir. Formülünüzü iç içeIF()ifadelerine kıyasla daha okunur ve bakımı kolay hale getirir. -
Tüm durumları net tanımlayın:
SWITCH()fonksiyonunuz, beklenmeyen değerleri ele almak için bir varsayılan durum da dahil olmak üzere tüm olası senaryoları kapsamalıdır. Bu, hesaplamalarınızı daha dayanıklı ve hatalara daha az yatkın kılar. -
Performans için optimize edin: Büyük veri kümeleriyle çalışırken performans kaybını önlemek için
SWITCH()içindeki ifadeleri mümkün olduğunca basit tutun. Ara sonuçları saklamak için değişkenler kullanmak hesaplama yükünü azaltmaya yardımcı olabilir. -
İyice test edin: Özellikle
SWITCH()'i karmaşık mantık için kullanırken, sonuçlarınızı farklı senaryolarda kapsamlı biçimde test edin. Bu, kaçırmış olabileceğiniz mantık hatalarını veya durumları yakalamaya yardımcı olur.
Sonuç
Power BI'de birden çok koşulu daha verimli ve esnek bir şekilde ele almak istiyorsanız, çözüm SWITCH() fonksiyonudur. İç içe IF ifadelerinin aksine, SWITCH() birden çok koşulu tek bir fonksiyonda toplar; bu da okunması ve bakımı daha kolay, daha temiz ve basit DAX ifadeleri sağlar. Ayrıca formüllerinizin okunabilirliğini artırarak sizin ve başkalarının hesaplamalarınızı daha kolay anlamasını ve değiştirmesini mümkün kılar.
Bununla birlikte, SWITCH() fonksiyonunu kullanırken yaygın hatalardan kaçının ve bu eğitimde ele aldığımız en iyi uygulamaları izleyin.
Power BI geliştiricisi olarak bir kariyere ciddi şekilde başlamak istiyorsanız, adım adım BI geliştiricisi olma rehberimize ve uygulamada Power BI kullanmaya başlamanız için bilmeniz gereken her şeyi öğretecek kapsamlı Data Analyst in Power BI kariyer yoluna göz atın.

