CALCULATETABLE

Tablo ifadesini, değiştirilen filtre bağlamında değerlendirir.

Not

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

Söz dizimi

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 filtresi 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 TRUE olması gerektiği anlamına gelir.

Boole filtresi ifadeleri

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

  • Yalnızca tek bir sütuna başvurabilirler.
  • Ölçüye başvuramazlar.
  • İç içe yerleştirilmiş CALCULATE işlevini kullanamazlar.

Power BI Desktop 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çirilmedikleri sürece bir tabloyu taraytıkları veya döndüren işlevleri kullanamaz.
  • Skaler bir değer döndüren bir toplama işlevi içerebilir.

Tablo filtresi ifadesi

Tablo ifadesi filtresi, bir tablo nesnesini filtre olarak uygular. Bir model tablosuna yönelik başvuru olabilir, ancak genellikle tablo nesnesi döndüren bir işlevdir. Boole filtresi ifadesi tarafından tanımlanamayanlar dahil olmak üzere karmaşık filtre koşullarına uygulamak için FILTER işlevini kullanabilirsiniz.

Filtre değiştirici işlevleri

Filtre değiştirici işlevleri, kolayca filtre eklemeniz için izin verir. Filtre bağlamını değiştirirken size ek denetim sağlar.

İşlev Amaç
REMOVEFILTERS Tüm filtreleri veya tablodaki bir veya daha fazla sütunda yer alan filtreleri ya da tek bir tablonun tüm sütunlarından kaldırır.
Tüm1, ALLEXCEPT, ALLNOBLANKROW Bir veya daha fazla sütunda yer alan filtreleri veya tek bir tablonun tüm sütunlarından kaldırır.
KEEPFILTERS Aynı sütunlarda mevcut filtreleri kaldırmadan filtre ekler.
USERELATIONSHIP Etkin ilişkinin otomatik olarak devre dışı kalacağı durumdaki ilişkili sütunlar arasındaki etkin olmayan ilişkiyle etkileşim kurar.
CROSSFILTER Filtre yönünü (iki yönden tek yöne veya tek yönden iki yöne) değiştirir ya da ilişkiyi devre dışı bırakır.

1 ALL işlevi ve değişkenleri tablo nesneleri döndüren filtre değiştiricileri ve işlevler gibi davranır. REMOVEFILTERS işlevi aracınız tarafından destekleniyorsa bunu, filtreleri kaldırmak için kullanmanız daha iyidir.

Döndürülen değer

Değer tablosu.

Açıklamalar

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

    • Sütunlar (veya tablolar) filtre bağlamında değilse yeni filtreler ifadeyi değerlendirecek şekilde filtre bağlamına eklenir.
    • Sütunlar (veya tablolar) zaten filtre bağlamındaysa mevcut filtreler, CALCULATETABLE ifadesini değerlendirecek şekilde yeni filtrelerin üzerine yazılır.
  • Hesaplanmış sütunlarda veya satır düzeyi güvenlik (RLS) kurallarında kullanıldığında, bu işlevin DirectQuery modunda kullanılması desteklenmez.

Örnek

Aşağıdaki örnekte CALCULATETABLE işlevi ile 2006 yılında gerçekleştirilen İnternet satışlarının toplam değeri alınmaktadır. Bu değer daha sonra 2006 yılında yapılan tüm satışlarla karşılaştırılarak İnternet satışlarının oranını hesaplamak için kullanılır.

Aşağıdaki formül:

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

Şu tabloyu döndürür:

Satır Etiketleri Internet SalesAmount_USD CalculateTable 2006 İnternet Satışları İnternet Satışlarının 2006 Satışlarına Oranı
2005 $2.627.031,40 $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 $5.681.440,58 1,59
Genel Toplam $26.054.827,45 $5.681.440,58 4,59

Ayrıca bkz.