Ekinlikler
31 Mar 23 - 2 Nis 23
Microsoft Fabric, Power BI, SQL ve yapay zeka topluluğu tarafından yönetilen nihai etkinlik. 31 Mart - 2 Nisan 2025.
Bugün kaydolunBu tarayıcı artık desteklenmiyor.
En son özelliklerden, güvenlik güncelleştirmelerinden ve teknik destekten faydalanmak için Microsoft Edge’e yükseltin.
Şunlar için geçerlidir:Hesaplanan sütunHesaplanan tabloÖlçüGörsel hesaplama
CALCULATE veya CALCULATETABLE işlevi değerlendirilirken filtrelerin nasıl uygulanacağını değiştirir.
KEEPFILTERS(<expression>)
Terim | Tanım |
---|---|
expression |
Herhangi bir ifade. |
Değerler tablosu.
BU işlevlerin standart davranışını geçersiz kılmak için CALCULATE ve CALCULATETABLE işlevleri bağlamında KEEPFILTERS kullanırsınız.
Varsayılan olarak, CALCULATE gibi işlevlerdeki filtre bağımsız değişkenleri ifadenin değerlendirilmesi için bağlam olarak kullanılır ve CALCULATE için filtre bağımsız değişkenleri aynı sütunlar üzerinde var olan tüm filtrelerin yerini alır. CALCULATE için filtre bağımsız değişkeninin etkilediği yeni bağlam, yalnızca filtre bağımsız değişkeninin parçası olarak belirtilen sütunlardaki mevcut filtreleri etkiler. CALCULATE veya diğer ilgili işlevlerin bağımsız değişkenlerinde belirtilenler dışındaki sütunlardaki filtreler etkin ve değişmeden kalır.
KEEPFILTERS işlevi bu davranışı değiştirmenize olanak tanır. KEEPFILTERS kullandığınızda, geçerli bağlamdaki tüm mevcut filtreler filtre bağımsız değişkenlerindeki sütunlarla karşılaştırılır ve ifadeyi değerlendirmek için bağlam olarak bu bağımsız değişkenlerin kesişimi kullanılır. Herhangi bir sütun üzerindeki net etki, her iki bağımsız değişken kümesinin de geçerli olmasıdır: hem CALCULATE'da kullanılan filtre bağımsız değişkenleri hem de KEEPFILTER işlevinin bağımsız değişkenlerindeki filtreler. Başka bir deyişle CALCULATE filtreleri geçerli bağlamın yerini alırken KEEPFILTERS geçerli bağlama filtreler ekler.
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.
Aşağıdaki örnek, CALCULATE veya CALCULATETABLE formülünün bir parçası olarak KEEPFILTERS işlevinin kullanımını gösteren bazı yaygın senaryolarda size yol gösterir.
İlk üç ifade, karşılaştırmalar için kullanılacak basit verileri elde eder:
Washington eyaleti için internet satışları.
Washington ve Oregon eyaletleri için İnternet Satışları (her iki eyalet de birleşik).
Washington eyaleti ve Britanya Kolumbiyası eyaleti için İnternet Satışları (her iki bölge birlikte).
Dördüncü ifade, Washington ve Oregon için İnternet Satışlarını hesaplarken, Washington ve Britanya Kolumbiyası filtresi uygulanır.
Sonraki ifade, Washington ve Oregon için İnternet Satışlarını hesaplar ancak KEEPFILTERS kullanır; Washington ve British Columbia filtresi önceki bağlamın bir parçasıdır.
EVALUATE ROW(
"$$ in WA"
, CALCULATE('Internet Sales'[Internet Total Sales]
, 'Geography'[State Province Code]="WA"
)
, "$$ in WA and OR"
, CALCULATE('Internet Sales'[Internet Total Sales]
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="OR"
)
, "$$ in WA and BC"
, CALCULATE('Internet Sales'[Internet Total Sales]
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="BC"
)
, "$$ in WA and OR ??"
, CALCULATE(
CALCULATE('Internet Sales'[Internet Total Sales]
,'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="OR"
)
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="BC"
)
, "$$ in WA !!"
, CALCULATE(
CALCULATE('Internet Sales'[Internet Total Sales]
, KEEPFILTERS('Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="OR"
)
)
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="BC"
)
)
Bu ifade AdventureWorks DW örnek veritabanına göre değerlendirildiğinde aşağıdaki sonuçlar elde edilir.
Sütun | Değer |
---|---|
[$$ in WA] |
$ 2,467,248,34 |
[$$ in WA and OR] |
$ 3,638,239,88 |
[$$ in WA and BC] |
$ 4,422,588,44 |
[$$ in WA and OR ??] |
$ 3,638,239,88 |
[$$ in WA !!] |
$ 2,467,248,34 |
Not
Yukarıdaki sonuçlar, eğitim amacıyla tek satır yerine bir tabloya biçimlendirilmiştir.
İlk olarak, [$$ in WA and OR ??]
ifadesini inceleyin. Dış CALCULATE ifadesi Washington ve British Columbia için bir filtre içerdiğinden, bu formülün Washington ve Oregon'daki satışların değerini nasıl döndürebileceğini merak edebilirsiniz. Bunun yanıtı, CALCULATE işlevinin varsayılan davranışının 'Geography'[State Province Code] içindeki dış filtreleri geçersiz kılması ve filtreler aynı sütuna uygulandığından kendi filtre bağımsız değişkenlerini değiştirmesidir.
Ardından [$$ in WA !!]
ifadesini inceleyin. Bağımsız değişken filtresi Oregon ve dış CALCULATE ifadesi Washington ve British Columbia'da bir filtre içerdiğinden, bu formülün Washington'daki satışların değerini nasıl döndürebileceğini ve başka hiçbir şey döndürmediğini merak edebilirsiniz. Bunun yanıtı, KEEPFILTERS işlevinin CALCULATE işlevinin varsayılan davranışını değiştirmesi ve ek bir filtre eklemesidir. Filtrelerin kesişimi kullanıldığından, artık dış filtre 'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="BC")
'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="OR"
filtre bağımsız değişkenine eklenir. Her iki filtre de aynı sütuna uygulandığından, sonuçta elde edilen filtre 'Geography'[State Province Code]="WA"
ifade değerlendirilirken uygulanan filtredir.
Filtre işlevleri
CALCULATE işlevini
CALCULATETABLE işlevini
Ekinlikler
31 Mar 23 - 2 Nis 23
Microsoft Fabric, Power BI, SQL ve yapay zeka topluluğu tarafından yönetilen nihai etkinlik. 31 Mart - 2 Nisan 2025.
Bugün kaydolun