Функция ISFILTERED (DAX)
Возвращает значение TRUE, если columnName фильтруется напрямую. Если для столбца не задан фильтр или если фильтрация происходит потому, что выполняется фильтрация другого столбца в той же или в связанной таблице, функция возвращает значение FALSE.
Синтаксис
ISFILTERED(<columnName>)
Параметры
- columnName
Имя существующего столбца в стандартном синтаксисе DAX. Не может быть выражением.
Возвращаемое значение
Возвращает значение TRUE, если columnName фильтруется напрямую.
Замечания
columnName является фильтруемым напрямую, если к столбцу применяется фильтр или фильтры. Столбец является перекрестно фильтруемым, если фильтр, применяемый к другому столбцу в той же или в связанной таблице, также влияет на столбец columnName.
Связанная функция Функция ISCROSSFILTERED (DAX) возвращает значение TRUE при фильтрации по столбцу columnName или другому столбцу в этой же или связанной таблице.
Пример
В следующем примере создается мера и затем представляются различные сценарии для объяснения поведения функции ISFILTERED(). Со сценариями можно ознакомиться, загрузив электронную таблицу Образец данных выражений анализа данных (DAX).
Сначала создайте следующую меру [Is ProductName, прямая фильтрация] в таблице [Product].
=ISFILTERED(Product[ProductName])
Основные сведения о функции ISFILTERED()
После создания меры сводная таблица показывает, что [Is ProductName, прямая фильтрация] имеет значение FALSE, так как к выражению не применяется фильтр. Теперь результат должен быть следующим.
Is ProductName, прямая фильтрация
FALSE
Если в сводной таблице ничего не отображается, перетащите [Is ProductName, прямая фильтрация] в поле Значения.
Перетащите ProductCategory[ProductCategoryName] в поле Метки строк. Все значения по-прежнему должны быть FALSE, а таблица должна выглядеть приблизительно следующим образом.
Метки строк
Является параметром ProductName, отфильтрованным напрямую
Accessories
FALSE
Bikes
FALSE
Clothing
FALSE
Components
FALSE
FALSE
Общий итог
FALSE
Таблица содержит значение FALSE, так как столбец ProductCategory[ProductCategoryName] косвенным или перекрестным образом фильтрует столбец Product[ProductName], хотя и не является прямым фильтром столбца.
Перетащите Product[Status] в поле Метки столбцов. Все значения по-прежнему должны быть FALSE, а таблица должна выглядеть приблизительно следующим образом.
Является параметром ProductName, отфильтрованным напрямую
Column Labels
Метки строк
Current
Общий итог
Accessories
FALSE
FALSE
FALSE
Bikes
FALSE
FALSE
FALSE
Clothing
FALSE
FALSE
FALSE
Components
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Общий итог
FALSE
FALSE
FALSE
Таблица по-прежнему имеет много значений FALSE, так как столбец Product[Status] не фильтрует столбец Product[Name] напрямую.
Наконец, перетащите Product[Name] в поле Фильтр отчета. На этом этапе изменений быть не должно. Однако сразу после выбора названия продукта значения таблицы должны измениться на TRUE. В зависимости от выбранного продукта, таблица должна выглядеть приблизительно следующим образом.
ProductName
Mountain-400-W Silver, 38
Является параметром ProductName, отфильтрованным напрямую
Column Labels
Метки строк
Current
Общий итог
Accessories
TRUE
TRUE
Bikes
TRUE
TRUE
Clothing
TRUE
TRUE
Components
TRUE
TRUE
TRUE
TRUE
Общий итог
TRUE
TRUE
В заключение функция ISFILTERED() позволяет определить, фильтруется ли columnName напрямую в контексте, в котором вычисляется пользовательское выражение.
В этом примере используется Модель образца электронной таблицы DAX_AdventureWorks