Funkcja ISCROSSFILTERED (język DAX)
Zwraca wartość TRUE, gdy kolumna columnName albo inna kolumna w tej samej lub pokrewnej tabeli jest filtrowana.
Składnia
ISCROSSFILTERED(<columnName>)
Parametry
- columnName
Nazwa istniejącej kolumny utworzona z użyciem standardowej składni języka DAX. Nie może być wyrażeniem.
Wartość zwracana
Wartość TRUE, gdy kolumna columnName albo inna kolumna w tej samej lub powiązanej tabeli jest filtrowana. W przeciwnym razie wartość FALSE.
Uwagi
Kolumna jest traktowana jako filtrowana pośrednio, gdy filtr zastosowany do innej kolumny w tej samej lub powiązanej tabeli powoduje filtrowanie kolumny columnName. Kolumna jest taktowana jako filtrowana bezpośrednio, gdy jest do niej stosowany filtr lub filtry.
Pokrewna funkcja ISFILTERED (Funkcja ISFILTERED (język DAX)) zwraca wartość TRUE, gdy kolumna columnName jest filtrowana bezpośrednio.
Przykład
W poniższym przykładzie jest tworzona miara, a następnie są prezentowane różne scenariusze w celu wyjaśnienia zasady działania funkcji ISCROSSFILTERED(). Z tych scenariuszy można skorzystać, pobierając arkusz kalkulacyjny DAX_AdventureWorks.
Najpierw należy utworzyć miarę [Czy kolumna ProductName jest filtrowana pośrednio] w tabeli [Product].
=ISCROSSFILTERED(Product[ProductName])
Opis funkcji ISCROSSFILTERED()
Po utworzeniu miary w tabeli przestawnej powinna być widoczna informacja, że miara [Czy kolumna ProductName jest filtrowana pośrednio] ma wartość FALSE, ponieważ wyrażenie w ogóle nie jest filtrowane. Wynik na tym etapie powinien być podobny do następującego:
Czy kolumna ProductName jest filtrowana pośrednio
FALSE
Jeśli w tabeli przestawnej nie są wyświetlane dane, przeciągnij kolumnę [Czy kolumna ProductName jest filtrowana pośrednio] do pola Wartości.
Przeciągnij kolumnę DateTime[CalendarYear] do pola Etykiety kolumn, a kolumnę SalesTerritory[SalesTerritoryGroup] do pola Etykiety wierszy; wszystkie wartości powinny być równe FALSE. Wynik na tym etapie powinien być podobny do następującego:
Czy kolumna ProductName jest filtrowana pośrednio
Etykiety kolumn
Etykiety wierszy
2005
2006
2007
2008
Suma końcowa
Europe
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
ND
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
North America
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Pacific
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Suma końcowa
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
W komórkach jest widoczna wartość FALSE, ponieważ ani kolumna DateTime[CalendarYear], ani kolumna SalesTerritory[SalesTerritoryGroup] nie powoduje filtrowania kolumny Product[ProductName].
Przeciągnij kolumnę ProductCategory[ProductCategoryName] do pola Fragmentatory w poziomie, a kolumnę do pola ProductSubCategory[ProductSubCategoryName] Fragmentatory w pionie. Wszystkie wartości powinny być równe FALSE, ponieważ podczas dodawania kolumny do pola fragmentatorów nie wybrano zestawu fragmentującego. Dlatego wynik powinien być podobny do następującego:
ProductCategoryName
Accessories
Bikes
Clothing
Components
ProductSubcategoryName
Czy kolumna ProductName jest filtrowana pośrednio
Etykiety kolumn
Bib-Shorts
Etykiety wierszy
2005
2006
2007
2008
Suma końcowa
Bike-Racks
Europe
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Bike-Stands
ND
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Bottles and Cages
North America
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Bottom Brackets
Pacific
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Brakes
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Caps
Suma końcowa
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Fałsz
Chains
Cleaners
Cranksets
Derailleurs
Fenders
Forks
Gloves
Handlebars
Headsets
Zaznaczenie dowolnego elementu we fragmentatorach spowoduje zmianę wartości wszystkich komórek na TRUE, ponieważ teraz kolumna Product[ProductName] jest filtrowana za pośrednictwem powiązanych tabel ProductCategory i ProductSubcategory. Wyniki powinny wyglądać podobnie do następujących:
ProductCategoryName
Accessories
Bikes
Clothing
Components
ProductSubcategoryName
Czy kolumna ProductName jest filtrowana pośrednio
Etykiety kolumn
Bib-Shorts
Etykiety wierszy
2005
2006
2007
2008
Suma końcowa
Bike-Racks
Europe
Prawda
Prawda
Prawda
Prawda
Prawda
Prawda
Bike-Stands
ND
Prawda
Prawda
Prawda
Prawda
Prawda
Prawda
Bottles and Cages
North America
Prawda
Prawda
Prawda
Prawda
Prawda
Prawda
Bottom Brackets
Pacific
Prawda
Prawda
Prawda
Prawda
Prawda
Prawda
Brakes
Prawda
Prawda
Prawda
Prawda
Prawda
Prawda
Caps
Suma końcowa
Prawda
Prawda
Prawda
Prawda
Prawda
Prawda
Chains
Cleaners
Cranksets
Derailleurs
Fenders
Forks
Gloves
Handlebars
Headsets
Teraz można zamienić fragmentatory na kolumny Product[ProductName] i Product[ModelName]. Dopóki nie zostanie wybrany element w dowolnym fragmentatorze, miara będzie zwracać wartość FALSE, jednak po wybraniu elementu we fragmentatorze miara będzie zwracać wartość TRUE, ponieważ kolumna Product[ProductName] będzie filtrowana przez nią samą lub przez wybranie kolumny Product[ModelName].
Wniosek jest taki, że funkcja ISCROSSFILTERED() umożliwia określenie, czy kolumna columnName jest filtrowana w kontekście, w którym jest obliczane wyrażenie języka DAX.
W tym przykładzie jest używany model z przykładowego arkusza DAX_AdventureWorks.
Zobacz także
Odwołanie
Funkcja ISFILTERED (język DAX)