Online Uçtan Uca Power BI Eğitimi

Kendi temponuzda Power BI öğrenin ! Her ay canlı Q&A seanslarına katılın !

Bir Kategoriyi Diğerleriyle Karşılaştırma

DAX

Bir boyut değerini -misal kategori satışlarını- diğerleriyle karşılaştırırken genelde istenilen şey, ilgili boyut değeri hariç diğer tüm boyut değerlerine göre karşılaştırmak.

Neyi kastediyorum?

Aşağıdaki gibi kategori satışlarını gösteren bir matrisimiz var ve her bir satıra, satırdaki kategorinin satışının, diğer tüm seçili kategori satışlarının ortalamasına oranını getirmek istiyoruz! Misal “Bilgisayarlar” kategorisi için bulmak istediğimiz oran, Bilgisayarlar hariç diğer tüm seçili kategorilerin satış ortalamasına oranı!

Yani 2.819.093 / ((10.449.200-2.819.093)/3)

bir kategoriyi diğerleriyle karşılaştırma

Soruyu parçalara bölelim:

  • Matrisin satırındaki kategorinin hangi kategori olduğunu bulmamız lazım.
  • Seçili kategorilerin listesini, satırdaki kategoriyi içermeyecek şekilde bulmamız lazım.
  • Bu listenin ortalama satışlarını bulmamız lazım.
  • Satırdaki kategorinin satışlarını bu ortalamaya bölmemiz lazım.

Matristeki satırda hangi kategorinin gözüktüğünü SELECTEDVALUE fonksiyonu ile bulabiliriz.

Satırdaki Kategori = SELECTEDVALUE('Kategoriler'[Kategori])

Seçili kategorilerin listesini ALLSELECTED ile bulmak mümkün.

ALLSELECTED ( Kategoriler[Kategori] )

Bu listeyi görselleştirmek için CONCATENATEX parantezine alabiliriz!

Seçili Kategorilerin Listesi =
CONCATENATEX (
    ALLSELECTED ( Kategoriler[Kategori] ),
    'Kategoriler'[Kategori],
    "-"
)

Satırdaki kategoriyi içermeyecek şekilde bu listeyi de FILTER veya CALCULATETABLE ile modifiye edebiliriz!

Seçili Kategorilerin Listesi-2 = 
CONCATENATEX (
    FILTER(
      ALLSELECTED ( Kategoriler[Kategori] ),
      'Kategoriler'[Kategori] <> SELECTEDVALUE( 'Kategoriler'[Kategori])
    ),
    'Kategoriler'[Kategori],
    "-"
)

Bu kategorilerin ortalama satışlarını bulalım!

Seçili Kategorilerin Ortalama Satışları = 
 CALCULATE(
    AVERAGEX( 'Kategoriler', [Satışlar] ),
    FILTER(
      ALLSELECTED ( Kategoriler[Kategori] ),
      'Kategoriler'[Kategori] <> SELECTEDVALUE( 'Kategoriler'[Kategori])
    )
)
  • Bu formülde “context transition” var. Row context altında -ki bunu yaratan AVERAGEX- bir metrik çağırdık!

Bölelim!

Oran = DIVIDE( [Satışlar] , [Seçili Kategorilerin Ortalama Satışları] )

Total satırında bunu göstermek çok mantıklı değil! O zaman HASONEVALUE ile total satırında mıyız / değil miyiz kontrol edip IF parantezine alabiliriz.

Oran = 
IF( HASONEVALUE('Kategoriler'[Kategori] ),
    DIVIDE( [Satışlar] , [Seçili Kategorilerin Ortalama Satışları] ),
    BLANK()
)
  • Aslında “false” durumu için BLANK() yazmasak da olur. Varsayılan değer zaten BLANK!

Yazıdaki örneği -siteye üyeyseniz- 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.

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!

8,4K Üye