1

Если я использую IFERROR, а не IF(ISERROR, я могу сохранить, введя условие дважды.

т.е.

 =IFERROR(Long lookup,"not found")

гораздо предпочтительнее

 =IF(ISERROR(long_lookup),"not found",long_lookup)

когда есть длинная формула.

Однако для чего-то вроде

 =IF(long_lookup=some_condition,"outtext",long_lookup)

Есть ли общая формула, где я могу напечатать

 =IF2(long_lookup,some_condition,"outtext")

за другие вещи, кроме ошибок. Или что-то подобное, что позволяет мне выводить оригинальную формулу, если условие не выполняется (а не просто выводить FALSE).

По сути, я хочу избежать ненужного дублирования формулы.

Обходной путь - это поместить формулу в столбец, прежде чем, конечно, и просто использовать

 =if(condition(a2),"out if true",A2))

Но это боль

РЕДАКТИРОВАТЬ: также похоже is = SUBSTITUTE(), но это не работает, если вся ячейка, которую вы пытаетесь заменить, также содержится в качестве подстроки других ячеек, например, если я хотел поиск, возвращающий "B" для вывода "foobar" "но была возможность возврата" Партия 1 ". Это также не работает для заготовок.

1 ответ1

0

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

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

Function IfCondition(expression as Variant, criteria as Variant, ElseExpression)
  IF expression = criteria Then
    IfCondition = expression
  Else
    IfCondition = elseExpression
  End If
End Function

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .