Поделиться через


Функция IF (DAX)

Проверяет выполнение условия, указанного в первом аргументе. Возвращает одно значение, если условие равно TRUE, и другое значение, если условие равно FALSE.

Синтаксис

IF(logical_test>,<value_if_true>, value_if_false)

Параметры

Элемент

Определение

logical_test

Значение или выражение, результатом которого является TRUE или FALSE.

value_if_true

Значение, которое возвращается, если первый аргумент имеет значение TRUE. Если второй аргумент не указан, возвращается значение TRUE.

value_if_false

Значение, которое возвращается, если первый аргумент имеет значение FALSE. Если третий аргумент не указан, возвращается значение FALSE.

Возвращаемое значение

Выражение любого типа, которое может возвращаться выражением.

Замечания

Если значение аргумента value_if_true или value_if_false не указано, функция IF считает, что эти аргументы имеют своим значением пустую строку ("").

Если значением, упоминаемом в выражении, является столбец, то функция IF возвращает значение, соответствующее текущей строке.

Функция IF пытается вернуть в столбце значения одного типа данных, и поэтому если значения, возвращаемые выражениями value_if_true и value_if_false, имеют различный тип данных, то функция IF выполняет неявное преобразование типов данных так, чтобы оба значения в столбце имели один тип. Например, формула IF(<condition>,TRUE(),0) возвращает столбец из нулей и единиц, и результаты можно складывать, однако формула IF(<condition>,TRUE(),FALSE()) возвращает только логические значения. Дополнительные сведения о неявном преобразовании типов данных см. в разделе Типы данных, поддерживаемые в книгах PowerPivot.

Пример

В следующем примере с помощью вложенных функций IF вычисляется число в столбце Calls из таблицы FactCallCenter в базе данных Adventure Works DW2008R2. Функция назначает метку следующим образом: если число звонков меньше 200, задается метка low; если число звонков меньше 300, но не меньше 200, задается метка medium; для всех остальных значений задается метка high.

=IF([Calls]<200,"low",IF([Calls]<300,"medium","high"))

В следующем примере возвращается список городов Калифорнии, где проживают потенциальные клиенты. Для этого используются столбцы из таблицы ProspectiveBuyer в базе данных Adventure Works DW2008R2. Поскольку список предназначен для планирования маркетинговой кампании, ориентированной на супружеские пары и семьи с детьми, то условие в функции IF проверяет значение столбцов [MaritalStatus] и [NumberChildrenAtHome], а затем возвращает город, если выполняется любое из условий, а клиент проживает в Калифорнии. В противном случае возвращается пустая строка. 

=IF([StateProvinceCode]= "CA" && ([MaritalStatus] = "M" || [NumberChildrenAtHome] >1),[City])

Заметьте, что скобки управляют порядком применения операторов AND (&&) и OR (||). Также заметьте, что для аргумента value_if_false не задано значение, и поэтому функция возвращает значение по умолчанию (пустую строку).

См. также

Справочник

Функция TRUE (DAX)

Функция FALSE (DAX)

Функция NOT (DAX)

Функция IF (DAX)

Другие ресурсы

Справочник по функциям (DAX)