Değişken Kullanımı, VAR

DAXDAX 101

Power BI ‘da kompleks DAX formüllerini yazmayı kolaylaştıran değişken (variables) yapısı var.

Önceki yazıda bir giriş örneğini  yaptığımız değişken kullanımına farklı örnekler verelim.

Aşağıdaki gibi metriklerimiz var:

Müşteri Sayısı := DISTINCTCOUNT ('Satışlar'[Müşteri ID])
Ortalama Müşteri Satışları := AVERAGEX ('Müşteriler' ; [Satışlar])

Bu ortalamanın üzerinde satış yapılan müşteri sayısını değişken kullanarak bulalım.

İyi Müşteri Sayısı = 
VAR _OrtalamaMusteriSatisi = [Ortalama Müşteri Satışları]
RETURN
    COUNTROWS(
        FILTER('Müşteriler',
            [Ortalama Müşteri Satışları] > _OrtalamaMusteriSatisi
        )
    )

Değişken isimleri arada boşluk veya Türkçe karakterleri desteklemiyor.

değişken kullanımı

Burada bilinmesi gereken nokta değişkenin değerinin tanımlandığı yerdeki context’e göre hesaplanmasıdır. Kullanıldığı yerde tekrar hesaplama yapılmaz.

Değişkenin tanımlandığı yer  VAR ile başlayan ikinci satır. Matristeki  context şu an neyse, değişkenin değeri bu context’e göre bir kez hesaplanıyor. Kullanıldığı yer ise FILTER’ın içindeki altıncı satır.

FILTER, müşteriler tablosunu iterate ederken, her bir müşterinin satışını değişkenin daha önceden hesaplanmış değeriyle karşılaştırıyor.

Aynı hesaplamayı CALCULATE ile de yapabiliriz elbette.

İyi Müşteri Sayısı CALCULATE = 
COUNTROWS (
    FILTER ('Müşteriler',
        [Satışlar] > CALCULATE ([Ortalama Müşteri Satışları] , ALL ('Müşteriler'))
    )
)


VAR ile yazılmış kodu yazması da okuması da (debug etmesi de) daha kolay.

Bir başka örnek daha yapalım:  satış frekansını bulalım, yani iki satış arasında geçen ortalama süreyi bulalım. Kurduğunuz cümleye göre farklı şekillerde hesaplanabilir.

Kaç Günde Bir Satış Yapıldı :=
VAR _IlkTarih = FIRSTDATE ('Satışlar'[Tarih])
VAR _SonTarih = LASTDATE ('Satışlar'[Tarih])
VAR _KacFarkliGundeSatisYapildi = DISTINCTCOUNT ('Satışlar'[Tarih])
RETURN
    DIVIDE (_SonTarih - _IlkTarih ; _KacFarkliGundeSatisYapildi; 0)

Değişken yapısı olmadan bu formülü yazmak daha zor olurdu.

FIRSTDATE ve LASTDATE, verdiğimiz tarih tipindeki sütunda gördüğü ilk ve son tarihleri döndüren gayet basit ve kullanışlı iki fonksiyon.

Değişkenlerle yukarıdaki örneklerde olduğu gibi sayısal değerler hesaplanabileceği gibi tablolar da atanabilir!

Kırmızı Ürünlerin Geçen Ayki Satışları = 
VAR _KirmiziUrunler=FILTER (ALL('Ürünler') ,'Ürünler'[Renk] ="Kırmızı")
RETURN
CALCULATE ([Satışlar], 
        _KirmiziUrunler , 
         DATEADD ( 'Tarih'[Tarih] ,-1, MONTH )
)

DATEADD -daha sonra göreceğimiz time intelligence grubundaki fonksiyonlardan biri-, bir tarih sütunu verdiğimizde kaç periyod geriye gitmek istiyorsak bunu yapmamızı sağlıyor, periyod olarak gün, ay, çeyrek veya yıl seçebiliriz.

Değişkenler sadece metriklerde değil hesaplanmış sütunlarda da kullanılabilir. Yani DAX formülü yazabildiğimiz her yerde kullanabiliriz.

Yazıdaki modeli indirebilirsiniz.

Sadece üyeler görebilir. Hızlı üyelik için sosyal medya hesabınızla giriş yapabilirsiniz!

Bloga sosyal medya hesabınızla hızlı üye olmak için ilgili ikonu tıklayabilirsiniz.

“Değişken Kullanımı, VAR” üzerine 4 yorum

  1. Merhabalar,
    Kaç Günde Bir Satış Yapıldığını bulmamız için 4. satıra -1 eklememiz gerekmez mi?
    “VAR KacFarkliGundeSatisYapildi = DISTINCTCOUNT (‘Satışlar'[Tarih]) -1”

    Diyelim bir müşteriye 01.01.19 , 01.02.19 , 01.03.19 tarihlerinde satış yapıldı. Satışlar arasında geçen ortalama süre normalde 30 gün ama formül geçen süreyi 3 ‘e böleceği için (60/3) 20 gün olarak hesaplayacak.

    Doğru mudur?

  2. Merhabalar,
    Kaç Günde Bir Satış Yapıldığını bulmamız için 4. satıra -1 eklememiz gerekmez mi?
    “VAR KacFarkliGundeSatisYapildi = DISTINCTCOUNT (‘Satışlar'[Tarih]) -1”

    Diyelim bir müşteriye 01.01.19 , 01.02.19 , 01.03.19 tarihlerinde satış yapıldı. Satışlar arasında geçen ortalama süre normalde 30 gün ama formül geçen süreyi 3 ‘e böleceği için (60/3) 20 gün olarak hesaplayacak.

    Doğru mudur?

Yorum yapın

PowerBI İstanbul

Microsoft Power BI, Microsoft Fabric, veriyle ilgili Azure servisleri, veri analitiği, iş zekası, veri modelleme ve veri görselleştirme üzerine Türkçe bilgi içeriğine katkı sağlamayı amaçlar.

Intellect BI blog sitesidir. Intellect BI & PowerBI İstanbul, Microsoft Data Analytics ve Power BI Partneri 'dir.

Blog Yazılarına Üye Olun

Blog yazıları, eğitim ve meetup duyuruları posta kutunuza gelsin!

9,4K Üye