Функция ISCROSSFILTERED (DAX)
Возвращает значение TRUE при фильтрации по столбцу columnName или другому столбцу в этой же или связанной таблице.
Синтаксис
ISCROSSFILTERED(<columnName>)
Параметры
- columnName
Имя существующего столбца в стандартном синтаксисе DAX. Не может быть выражением.
Возвращаемое значение
Возвращает значение TRUE при фильтрации по столбцу columnName или другому столбцу в этой же или связанной таблице. В противном случае возвращает значение FALSE.
Замечания
Говорят, что столбец фильтруется перекрестно, если фильтр, применяемый к другому столбцу в той же или в связанной таблице, влияет и на столбец columnName. Столбец фильтруется напрямую, если к столбцу применяется фильтр или фильтры.
Связанная функция Функция ISFILTERED (DAX) возвращает значение TRUE, если столбец columnName фильтруется напрямую.
Пример
В следующем примере создается мера и приводятся различные сценарии для объяснения поведения функции ISCROSSFILTERED(). С этими сценариями можно ознакомиться, загрузив электронную таблицу DAX_AdventureWorks.
Сначала создайте следующую меру [Is ProductName Cross Filtered] в таблице [Product].
=ISCROSSFILTERED(Product[ProductName])
Общие сведения о функции ISCROSSFILTERED()
После создания меры в сводной таблице значением [Is ProductName Cross Filtered] должно быть FALSE, поскольку к выражению фильтры не применяются. Теперь результат должен быть следующим.
Is ProductName Cross Filtered
FALSE
Если в сводной таблице не отображаются данные, перетащите столбец [Is ProductName Cross Filtered] в поле Значения.
Перетащите столбец DateTime[CalendarYear] в поле Метки столбцов, а столбец SalesTerritory[SalesTerritoryGroup] в поле Метки строк. Везде должны отображаться значения FALSE. Теперь результат должен быть следующим.
Is Product Name CrossFiltered
Column Labels
Метки строк
2005
2006
2007
2008
Общий итог
Европа
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Н/Д
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Северная Америка
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Pacific
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Общий итог
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Во всех ячейках отображается значение FALSE, поскольку ни DateTime[CalendarYear], ни SalesTerritory[SalesTerritoryGroup] не применяли фильтр к Product[ProductName].
Перетащите столбец ProductCategory[ProductCategoryName] в область Горизонтальные срезы, а ProductSubCategory[ProductSubCategoryName] в область Вертикальные срезы. По-прежнему везде должны отображаться значения FALSE, поскольку при добавлении столбца к области срезов не был выбран набор срезов. Следовательно, должен быть получен следующий результат.
ProductCategoryName
Accessories
Bikes
Clothing
Components
ProductSubcategoryName
Is Product Name CrossFiltered
Column Labels
Bib-Shorts
Метки строк
2005
2006
2007
2008
Общий итог
Bike-Racks
Европа
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Bike-Stands
Н/Д
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Bottles and Cages
Северная Америка
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Bottom Brackets
Pacific
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Brakes
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Caps
Общий итог
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Chains
Cleaners
Cranksets
Derailleurs
Fenders
Forks
Gloves
Handlebars
Headsets
Выберите любой элемент срезов, и во всех ячейках таблицы появятся значения TRUE, поскольку теперь фильтрация столбца Product [ProductName] выполняется с использованием связанных таблиц ProductCategory и ProductSubcategory. Должен быть получен следующий результат.
ProductCategoryName
Accessories
Bikes
Clothing
Components
ProductSubcategoryName
Is Product Name CrossFiltered
Column Labels
Bib-Shorts
Метки строк
2005
2006
2007
2008
Общий итог
Bike-Racks
Европа
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
Bike-Stands
Н/Д
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
Bottles and Cages
Северная Америка
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
Bottom Brackets
Pacific
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
Brakes
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
Caps
Общий итог
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
Chains
Cleaners
Cranksets
Derailleurs
Fenders
Forks
Gloves
Handlebars
Headsets
Теперь можно заменить срезы на Product[ProductName] и Product[ModelName]. Пока не будут выбраны элементы срезов, мера будет возвращать значение FALSE. Однако при выборе элемента среза мера будет возвращать значение TRUE, поскольку выполняется фильтрация Product[ProductName]. Также это значение возвращается при выборе Product[ModelName].
В заключение следует отметить, что функция ISCROSSFILTERED() позволяет определить, фильтруется ли столбец columnName в контексте, в котором вычисляется выражение DAX.
В этом примере используется Модель образца электронной таблицы DAX_AdventureWorks.