Функция IF

Проверяет выполнение условия, указанного в первом аргументе. Возвращает одно значение, если условие равно 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()) возвращает только логические значения. Дополнительные сведения о неявном преобразовании типов данных см. в разделе Data Types in DAX.

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

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

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

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

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