Условные функции

CASE

CASE(Value, Match1, Result1, Match2, Result2, ..., Default)

Проверяет, совпадает ли значение с несколькими проверками, и возвращает соответствующий результат.

Параметр         

Тип

Описание

Value

Текст/присоединенное

Значение для проверки

Match1, Match2, … ,MatchN

Текст/ присоединенное

Шаблоны текста для проверки. Первый совпадающий шаблон будет определять результат. Шаблон может быть точным значением, выражением с подстановочным знаком или регулярным выражением. Подробности см. в разделе Сопоставление шаблонов выражений.

Result1, Result2, ResultN

любой

Значения, возвращаемые функцией, каждое значение соответствует предыдущему параметру Match.

Default (необязательно)

любой

Необязательное значение по умолчанию, которое будет возвращено, если ни один из шаблонов не совпадает. Если не указано, возвращается undefined.

Result

любой

Result1, Result2 и т. д. в зависимости от того, какой шаблон совпал, или Default, или undefined.

 

Эта функция обычно используется для сопоставления текстовых значений с числами.

Примеры:

  • CASE(Priority; "Highest"; 10; "High"; 5; "Medium"; 3; 1)
  • CASE(Version; "V1*"; 1; "V2*"; 2)

Если значение не определено, функция немедленно возвращает результат по умолчанию (или значение undefined, если значение по умолчанию отсутствует), поэтому обычно нет необходимости использовать значение undefined в качестве одного из совпадений.

CHOOSE

CHOOSE(Index; Value1; Value2; ...)

На основе значения Index возвращает соответствующее значение из списка аргументов.

Параметр         

Тип

Описание

Index

Число

Числовой индекс, где 1 соответствует Value1, 2 соответствует Value2 и так далее.

Value1, Value2,…., MatchN

Любой

Значения для выбора.

Result

Любой

Значение, соответствующее индексу.

 

Примеры:

  • CHOOSE(1; "A"; "B"; "C") → "A"
  • CHOOSE(2; "A"; "B"; "C") → "B"

DEFINED

DEFINED(Value)

Проверяет, определено ли значение.

Параметр         

Тип

Описание

Result

Любой

Значение для проверки

Result

Булев

Возвращает false (0), если значение не определено, и true (1) в противном случае.

 

Пример:

  • IF(DEFINED(Resolution); ...)

DEFAULT

DEFAULT(Value; DefaultValue)

Заменяет DefaultValue, если значение не определено.

Параметр         

Тип

Описание

Value

Любой

Значение для проверки

DefaultValue

Любой

Возвращаемое значение, если значение не определено.

Result

Любой

Если значение определено, возвращает значение. В противном случае возвращает DefaultValue.

 

Примеры:

  • DEFAULT(100; 500) → 100
  • DEFAULT(undefined; 500) → 500

IF

IF(Condition1; Result1; Condition2; Result2; ...; Default)

Проверяет одно или несколько условий и возвращает результат, связанный с первым истинным условием.

Параметр         

Тип

Описание

Condition1, Condition2, ..., Condition3

Любой

Значение для проверки. Значения оцениваются с использованием «проверки достоверности» — первое значение, которое является «правдивым» (не неопределенным, не нулем и не пустой строкой), будет определять возвращаемое значение.

Result1, Result2, ..., ResultN

Любой

Возвращаются результаты, каждый результат соответствует предыдущей проверке.

Default (необязательно)

Любой

Необязательное значение по умолчанию, которое будет возвращено, если ни один из шаблонов не совпадает. Если не указано, возвращается undefined.

Result

Любой

Result1, Result2 и т. д. в зависимости от того, какой шаблон совпал, или Default, или undefined.

 

Примеры:

  • IF(Estimate > 0; Duration / Estimate; 0)
  • IF(N = 0; "No apples"; N = 1; "One apple"; CONCAT(N; " apples"))

IFERR

IFERR(Value; FallbackValue)

 

Проверяет, не вызвало ли вычисление Value ошибку, и подставляет FallbackValue вместо значения ошибки.

Параметр         

Тип

Описание

Value   

               

 

 

Любой

Значение для проверки.

FallbackValue

Любой

Значение, которое будет возвращено, если вычисление Value приведет к ошибке.

→ Result

Любой

Если значение вычислено без ошибки, возвращает значение. В противном случае возвращает DefaultValue.

 

Обычно, если при вычислении формулы возникает ошибка, она распространяется вверх, и результатом всего выражения будет ошибка. Эта функция помогает обойти это.

 

Пример:

 

  • IFERR(100 / 0; 100) → 100

ISERR

ISERR(Value; ErrorCode)

Проверяет, не вызвало ли вычисление значения ошибку.

Параметр         

Тип

Описание

Value   

               

 

 

Любой

Значение для проверки.

ErrorCode (необязательно)

Integer

Необязательный код ошибки. См. Список кодов ошибок Expr.

→ Result

Булев

Возвращает true (1), если произошла ошибка. Если указан ErrorCode, возвращает true, только если ошибка имеет указанный код ошибки.

 

Примеры:

  • ISERR("Ham") → 0
  • ISERR(1 / 0) → 1
  • ISERR(1 / 0, 4) → 1 //Примечание. Код ошибки 4 является арифметической ошибкой.

По материалам Atlassian JIRA Structure: Conditional Functions