TOP

DAX-Ders 2. CALCULATE işlevi

Tanım

DAX'yi öğrenmeye başlayacak ilk işlev CALCULATE'dir. Bu işlevin Excel'de tam karşılığı yoktur, ancak işlevlerle karşılaştırılabilir SUMIFS Ve COUNTIFS . Kısaca bu fonksiyon diğer hesaplama fonksiyonlarına da filtre uygular, böylece sadece ihtiyacımız olan verileri seçip hesaplamalara dahil edebiliriz.

CALCULATE() işlevinin sözdizimi

=HESAPLAMA(< istatistiksel ifade >, < filtre1 >, < filtre2 >,...)

< istatistiksel ifade >

İstatistiksel ifade bize hesaplamanın sonucunu döndürmelidir (tablo değil, değer). Bu nedenle, bu türde istatistiksel işlevler sıklıkla bu ortamda kullanılır. SUM , dk. , MAKS , ÜLKELER vesaire.

  1. SUM([ Sütun adı ])
  2. SUM([ AdSütunlar1 ]) / MAX([ AdSütunlar2 ])
  3. Başka bir hesaplama alanının adı (ölçü)

< filtre1 >, < filtre2 >,...

Filtre Üzerinde çalışılacak veri aralığını tanımlar. Değer seçme koşulları burada belirtilmiştir.

  1. [ Sütun adı ] = Oto
  2. [ Sütun adı ] >= 6
  3. ALL( 'Tablo ismi' ) veya ALL( 'Tablo ismi' [ Sütun adı ] )
  4. FILTER ( 'Tablo ismi' , 'Tablo ismi' [ Sütun adı ] = " Yeşil ")

Diyelim ki adı verilen böyle bir tablomuz var. Demo ve yüklendi PowerPivot .

Buna göre bir özet tablo oluşturalım ve her ürün için kayıt sayısını sayalım.

Şimdi yeni bir hesaplama alanı oluşturalım (Measure) Tüm satırlara göre toplam kayıt sayısını görüntüleyecek olan pivot tablomuzdaki Count_All_Product.

Count_All_Product hesaplama alanındaki sayıları nasıl elde ettik? 16 ? Açıklama şu ki, bu alan için pivot tabloya uygulanan tüm filtreleri (pivot tablodaki her satır ayrı bir filtredir) işlevi kullanarak kaldırdık. ALL() . Yani başka bir deyişle bir fonksiyon ALL (Demo) hesaplanan Count_All_Product alanı için tabloya uygulanan tüm filtreleri kaldırma komutunu verir Demo .

Bir alan daha ekleyelim (City) Her ürünün şehirlere göre satışlarını görmek için satırlar halinde:

Sayıların sahada olduğunu görüyoruz Count of Rows değiştirin, ancak Count_All_Product hesaplama alanında değil. Bu doğru çünkü sonuncusunda formüldeki tüm filtreleri kaldırdık. Şimdi formülümüzde küçük değişiklikler yapıp sonucu görelim.

=CALCULATE(COUNTROWS(Demo);ALL(Demo[Product]))

Argümanı değiştirerek ALL() işlevine değiştirdik Demo Açık Demo[Product] . Artık filtreler tablonun tamamı için kaldırılmayacak Demo , ancak yalnızca sütunu için Demo[Product] .

Yani sahada ne olduğunu görüyoruz Count of Rows filtreler etkin Product Ve City ve yalnızca hesaplanan Count_All_Product alanında bir filtre City .