CROSSFILTER
İki sütun arasındaki ilişkiyi hesaplamak için kullanılacak çapraz filtreleme yönünü belirtir.
Sözdizimi
CROSSFILTER(<columnName1>, <columnName2>, <direction>)
Parametreler
|Süre||Tanım|
|columnName1||Standart DAX söz dizimi kullanılarak tam adıyla belirtilmiş olan var olan bir sütunun adı. Genellikle kullanılacak ilişkinin çok tarafını temsil eder. Bağımsız değişkenlerin ters sırada verilmesi durumunda işlev bunları kullanmadan önce yerlerini değiştirir. Bu bağımsız değişken bir ifade olamaz.|
|columnName2||Standart DAX söz dizimi kullanılarak tam adıyla belirtilmiş olan var olan bir sütunun adı. Genellikle kullanılacak ilişkinin bir tarafını veya arama tarafını temsil eder. Bağımsız değişkenlerin ters sırada verilmesi durumunda işlev bunları kullanmadan önce yerlerini değiştirir. Bu bağımsız değişken bir ifade olamaz.|
|Yön||Kullanılacak çapraz filtre yönü. Aşağıdakilerden biri olmalıdır:


Hiçbiri - Bu ilişki boyunca çapraz filtreleme oluşmaz.
Her ikisi - İki tarafındaki filtreler diğer tarafı filtreler.
OneWay: Bir ilişkinin bir tarafındaki veya arama tarafındaki filtreler diğer tarafı filtreler. Bu seçenek, bire bir ilişkisi ile kullanılamaz. Arama tarafının hangisi olduğu net olmadığı için çoka çok ilişkide bu seçeneği kullanmayın; yerine OneWay_LeftFiltersRight veya OneWay_RightFiltersLeft kullanın.
OneWay_LeftFiltersRight - columnName1'in tarafındaki filtreler >< columnName2'nin tarafını > filtreler. Bu seçenek bire bir veya çoka bir ilişkisiyle kullanılamaz.
OneWay_RightFiltersLeft - columnName2'nin tarafındaki filtreler >< columnName1'in tarafını > filtreler. Bu seçenek bire bir veya çoka bir ilişkisiyle kullanılamaz.
Döndürülen değer
İşlev hiçbir değer döndürmez; işlev, sorgu süresince yalnızca belirtilen ilişki için çapraz filtreleme yönünü ayarlar.
Açıklamalar
1:1 ilişki söz konusu olduğunda, bir ve iki yön arasında bir fark yoktur.
CROSSFILTER yalnızca bağımsız değişken olarak filtre alan işlevlerde kullanılabilir; örneğin: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD ve TOTALYTD işlevleri.
CROSSFILTER modeldeki mevcut ilişkileri kullanır ve ilişkileri bitiş noktası sütunlarına göre tanımlar.
CROSSFILTER işlevinde bir ilişkinin çapraz filtreleme ayarı önemli değildir. Başka bir deyişle, ilişkinin modelde bir veya iki yön kullanacak şekilde ayarlanmış olması işlevin kullanımını etkilemez. CROSSFILTER, var olan çapraz filtreleme ayarlarını geçersiz kılar.
Bağımsız değişken olarak adlandırılan sütunlardan herhangi biri ilişkinin parçası değilse veya bağımsız değişkenler farklı ilişkilere aitse bir hata döndürülür.
CALCULATE ifadelerinin iç içe yerleştirilmesi ve birden fazla CALCULATE ifadesinde CROSSFILTER işlevi bulunması halinde çakışma veya belirsizlik halinde en içteki CROSSFILTER işlevi uygulanı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 model diyagramında hem DimProduct hem de DimDate, FactOnlineSales ile doğrudan bir ilişkiye sahiptir.
Varsayılan olarak, yıla göre satılan ürünlerin sayısını almak mümkün değildir:
Yıla göre ürün sayısını almak için iki yol vardır:
İlişkide iki yönlü çapraz filtrelemeyi açın. Bu, filtrelerin bu iki tablodaki verileri işleme şeklini değiştirir.
CROSSFILTER işlevini kullanarak ilişkilerin yalnızca bu ölçüdeki çalışma şeklini değiştirin.
DAX'ta CROSSFILTER işlevini kullanarak çapraz filtre yönünün ilişki tarafından tanımlanan iki sütun arasındaki çalışma şeklini değiştirebilirsiniz. Bu durumda DAX ifadesi şu şekilde görünür:
BiDi:= CALCULATE([Distinct Count of ProductKey], CROSSFILTER(FactInternetSales[ProductKey], DimProduct[ProductKey] , Both))
Ölçüm ifademizde CROSSFILTER işlevini kullandığımızda beklenen sonuçları elde ederiz: