Функция 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 не задано значение, и поэтому функция возвращает значение по умолчанию (пустую строку).