Функция 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()

  1. После создания меры в сводной таблице значением [Is ProductName Cross Filtered] должно быть FALSE, поскольку к выражению фильтры не применяются. Теперь результат должен быть следующим.

    Is ProductName Cross Filtered

    FALSE

    Если в сводной таблице не отображаются данные, перетащите столбец [Is ProductName Cross Filtered] в поле Значения.

  2. Перетащите столбец 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].

  3. Перетащите столбец 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

  4. Выберите любой элемент срезов, и во всех ячейках таблицы появятся значения 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

  5. Теперь можно заменить срезы на Product[ProductName] и Product[ModelName]. Пока не будут выбраны элементы срезов, мера будет возвращать значение FALSE. Однако при выборе элемента среза мера будет возвращать значение TRUE, поскольку выполняется фильтрация Product[ProductName]. Также это значение возвращается при выборе Product[ModelName].

  6. В заключение следует отметить, что функция ISCROSSFILTERED() позволяет определить, фильтруется ли столбец columnName в контексте, в котором вычисляется выражение DAX.

В этом примере используется Модель образца электронной таблицы DAX_AdventureWorks.

См. также

Справочник

Функция ISFILTERED (DAX)

Функция FILTERS (DAX)

Функция HASONEFILTER (DAX)

Функция HASONEVALUE (DAX)