İngilizce dilinde oku

Aracılığıyla paylaş


CALCULATETABLE

Şunlar için geçerlidir:Hesaplanan sütunHesaplanan tabloMeasureGörsel hesaplama

Değiştirilen filter bağlamındaki bir tablo ifadesini değerlendirir.

Not

ayrıca CALCULATE işlevi de vardır. Tam olarak aynı işlevi gerçekleştirir exceptskaler valuedöndüren bir ifadeye uygulanan filter bağlamı değiştirir.

Sözdizimi

CALCULATETABLE(<expression>[, <filter1> [, <filter2> [, …]]])

Parametre

Terim Tanım
expression Değerlendirilecek tablo ifadesi.
filter1, filter2,… (İsteğe bağlı) Boole ifadeleri, filtersorfilter değiştirici işlevlerini tanımlayan tablo ifadelerini or.

first parametresi olarak kullanılan ifade, tablo döndüren bir işlev or bir model tablosu olmalıdır.

Filters olabilir:

  • Boole filter ifadeleri
  • Tablo filter ifadeleri
  • Filter değişiklik işlevleri

Birden çok olduğunda, bunlarmantıksal işleci kullanılarak değerlendirilir. Bu, all koşulların aynı timeTRUE olması gerektiği anlamına gelir.

Boole filter ifadeleri

Boole ifadesi filter, TRUEorFALSEolarak değerlendirilen bir ifadedir. Uymaları gereken birkaç kural vardır:

  • Yalnızca tek bir sütuna başvurabilir.
  • Ölçülere başvuramazlar.
  • İç içe CALCULATE işlevi kullanamazlar.

Power BI Desktop'ın Eylül 2021 sürümünden itibaren aşağıdakiler de geçerlidir:

  • Toplama işlevlerine bağımsız değişken olarak geçirilmedikçe, tarama or tablo döndüren işlevleri kullanamazlar.
  • skaler valuedöndüren bir toplama işlevi içerebilir.

Tablo filter ifadesi

Tablo ifadesi filter tablo nesnesini filterolarak uygular. Bir model tablosuna başvuru olabilir, ancak büyük olasılıkla tablo nesnesi döndüren bir işlevdir. Boole filter ifadesi tarafından tanımlanamayanlar da dahil olmak üzere karmaşık filter koşulları uygulamak için FILTER işlevini kullanabilirsiniz.

Filter değiştirici işlevleri

Filter değiştirici işlevleri, filterseklemekten daha fazlasını yapmanıza olanak sağlar. filter bağlamı değiştirirken size ek denetim sağlar.

Fonksiyon Amaç
REMOVEFILTERS tablonun bir or daha fazla sütundan orfiltersallfiltersor tek bir tablonun all sütunlarından kaldırın.
ALL 1, ALLEXCEPT, ALLNOBLANKROW Tek bir tablonun all sütunlarından or bir or daha fazla sütundan filters kaldırın.
KEEPFILTERS Aynı sütunlardaki mevcut filters kaldırmadan filter ekleyin.
USERELATIONSHIP related sütunlar arasında etkin olmayan bir ilişki oluşturun; bu durumda etkin ilişki otomatik olarak devre dışı kalır.
CROSSFILTER bir ilişkiyi devre dışı bırakmak orfilter yönünü değiştirin (her ikisinden tekine, or tekten her ikisine).

1ALL işlevi and değişkenleri, tablo nesnelerini döndüren işlevler olarak and her iki filter değiştirici olarak da davranır. REMOVEFILTERS işlevi aracınız tarafından desteklendiğinden Iffilterskaldırmak için kullanmak daha iyidir.

İade value

valuestablosu.

Açıklamalar

  • filter ifadeler sağlandığında, CALCULATETABLE işlevi ifadeyi evaluate için filter bağlamını değiştirir. her filter ifadesi için, filter ifadesi KEEPFILTERS işlevine sarmalandığında iki olası standart sonuç not:

    • If sütunlar (or tablolar) filter bağlamında değilse, ifadeyi evaluate için filter bağlama yeni filters eklenir.
    • Sütunların (or tablolar) zaten filter bağlamında If, var olan filters yeni filtersCALCULATETABLE ifadesini evaluate için üzerine yazılır.
  • Bu işlev, satır düzeyi güvenlik (RLS) kuralları or hesaplanmış sütunlarda kullanıldığında DirectQuery modunda kullanılmak üzere not desteklenir.

Örnek

Aşağıdaki örnekte, 2006'ya ait İnternet satışlarının sum almak için CALCULATETABLE işlevi kullanılır. Bu value daha sonra year 2006'nın all satışlarına kıyasla İnternet satışlarının oranını calculate için kullanılır.

Aşağıdaki formül:

= SUMX(
    CALCULATETABLE(
        'InternetSales_USD',
        'DateTime'[CalendarYear] = 2006
    ),
    [SalesAmount_USD]
)

Aşağıdaki tabloya neden olur:

Satır Etiketleri İnternet SalesAmount_USD CalculateTable 2006 İnternet Satışları İnternet Satışları ile 2006 oranı
2005 2.627.031,40 USD $5,681,440,58 0.46
2006 $5,681,440,58 $5,681,440,58 1.00
2007 $8,705,066,67 $5,681,440,58 1.53
2008 9.041.288,80 USD $5,681,440,58 1.59
Genel Toplam 26.054.827,45 USD $5,681,440,58 4.59