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

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

    Is ProductName, прямая фильтрация

    FALSE

    Если в сводной таблице ничего не отображается, перетащите [Is ProductName, прямая фильтрация] в поле Значения.

  2. Перетащите ProductCategory[ProductCategoryName] в поле Метки строк. Все значения по-прежнему должны быть FALSE, а таблица должна выглядеть приблизительно следующим образом.

    Метки строк

    Является параметром ProductName, отфильтрованным напрямую

    Accessories

    FALSE

    Bikes

    FALSE

    Clothing

    FALSE

    Components

    FALSE

    FALSE

    Общий итог

    FALSE

    Таблица содержит значение FALSE, так как столбец ProductCategory[ProductCategoryName] косвенным или перекрестным образом фильтрует столбец Product[ProductName], хотя и не является прямым фильтром столбца.

  3. Перетащите 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] напрямую.

  4. Наконец, перетащите 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

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

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