Aracılığıyla paylaş


CALCULATETABLE

Şunun için geçerlidir: Hesaplanan sütunHesaplanan tabloÖlçüGörseli hesaplaması

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

Not

CALCULATE işlevi de vardır. Skaler değer döndüren bir ifadeye uygulanan filtre bağlamını değiştirmesi dışında tam olarak aynı işlevi gerçekleştirir.

Sözdizimi

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

Parametreler

Süre Tanım
ifade Değerlendirilecek tablo ifadesi.
filtre1, filtre2,... (İsteğe bağlı) Filtreleri veya filtre değiştirici işlevlerini tanımlayan Boole ifadeleri veya tablo ifadeleri.

İlk parametre olarak kullanılan ifade bir model tablosu veya tablo döndüren bir işlev olmalıdır.

Filtreler şu şekilde olabilir:

  • Boole filtre ifadeleri
  • Tablo filtresi ifadeleri
  • Filtre değiştirme işlevleri

Birden çok filtre olduğunda, AND mantıksal işleci kullanılarak değerlendirilirler. Bu, tüm koşulların aynı anda DOĞRU olması gerektiği anlamına gelir.

Boole filtre ifadeleri

Boole ifadesi filtresi, TRUE veya FALSE sonucunu veren bir ifadedir. Uymaları gereken birkaç kural vardır:

  • Yalnızca tek bir sütuna başvurabilir.
  • Ölçülere başvuramazlar.
  • İç içe CALCULATE işlevini 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 tabloyu tarayabilen veya döndüren işlevleri kullanamazlar.
  • Skaler değer döndüren bir toplama işlevi içerebilirler .

Tablo filtresi ifadesi

Tablo ifadesi filtresi, bir tablo nesnesini filtre olarak uygular. Bir model tablosuna başvuru olabilir, ancak büyük olasılıkla tablo nesnesi döndüren bir işlevdir. Filter işlevini kullanarak Boole filtre ifadesi tarafından tanımlanamayanlar da dahil olmak üzere karmaşık filtre koşulları uygulayabilirsiniz.

Filtre değiştirici işlevleri

Filtre değiştirici işlevleri, yalnızca filtre eklemekten daha fazlasını yapmanıza olanak sağlar. Filtre bağlamı değiştirilirken size ek denetim sağlar.

İşlev Purpose
REMOVEFILTERS Tablonun bir veya daha fazla sütundan ya da tek bir tablonun tüm sütunlarından tüm filtreleri veya filtreleri kaldırın.
ALL1, ALLEXCEPT, ALLNOBLANKROW Filtreleri bir veya daha fazla sütundan veya tek bir tablonun tüm sütunlarından kaldırın.
KEEPFILTERS Aynı sütunlardaki mevcut filtreleri kaldırmadan filtre ekleyin.
USERELATIONSHIP İlgili sütunlar arasında etkin olmayan bir ilişki oluşturun; bu durumda etkin ilişki otomatik olarak etkin olmaz.
ÇAPRAZ FILTRE Filtre yönünü değiştirin (her ikisinden tekine veya tekten her ikisine) veya bir ilişkiyi devre dışı bırakın.

1 ALL işlevi ve varyantları hem filtre değiştiricileri hem de tablo nesnelerini döndüren işlevler olarak davranır. REMOVEFILTERS işlevi aracınız tarafından destekleniyorsa, filtreleri kaldırmak için kullanmak daha iyidir.

Dönüş değeri

Değerler tablosu.

Açıklamalar

  • Filtre ifadeleri sağlandığında CALCULATETABLE işlevi, ifadeyi değerlendirmek için filtre bağlamını değiştirir. Her filtre ifadesi için, filtre ifadesi KEEPFILTERS işlevinde sarmalanmadığında iki olası standart sonuç vardır:

    • Sütunlar (veya tablolar) filtre bağlamında değilse, ifadeyi değerlendirmek için filtre bağlamlarına yeni filtreler eklenir.
    • Sütunlar (veya tablolar) zaten filtre bağlamındaysa, CALCULATETABLE ifadesini değerlendirmek için yeni filtreler mevcut filtrelerin üzerine yazılır.
  • Bu işlev, hesaplanan sütunlarda veya satır düzeyi güvenlik (RLS) kurallarında kullanıldığında DirectQuery modunda kullanılmak üzere desteklenmez.

Örnek

Aşağıdaki örnek, 2006'nın İnternet satışlarının toplamını almak için CALCULATETABLE işlevini kullanır. Bu değer daha sonra İnternet satışlarının 2006 yılına ait tüm satışlarla karşılaştırıldığında oranını hesaplamak 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