Я хотел бы настроить электронную таблицу, которая позволила бы пользователю выбрать оператора для применения к другим ячейкам. Например: если у A1 есть 5, а у A2 - 10, я бы хотел, чтобы пользователь мог выбирать операторы плюс или минус из ячейки A3 (в результате A4 отображает результат: A1 + A2 или A1 - A2).

Я знаю, что могу сделать это с помощью оператора IF или CHOOSE. Но мне было интересно, было ли что-то короче. Я попытался установить A4 для этих параметров, но ни один не работает, как предполагалось. Я хочу числовой результат, например, 15 или -5

Вот что я попробовал:- = A1 & A3 & A2 - = A1+A3A2

Существуют ли другие методы, кроме IF или CHOOSE?

1 ответ1

0

Ответ на этот вопрос состоит из двух частей ...

  1. Построение правильной строки для оценки, здесь ответили
  2. Оценив эту строку, как если бы это была настоящая формула, ответ здесь

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

=A1&A3&A2

Если вы положите 10 в A1, 11 в A2 и * в A3, это будет равно 10*11

Более сложные способы построения строки могут потребовать использования функций ADDRESS и / или INDIRECT .


Более старые версии Excel содержали UDF для Evaluate, которого нет в более поздних версиях. Вам нужно будет создать свой собственный UDF, такой как ...

Function myEval(r As Variant) As Variant
    If TypeName(r) = "Range" Then
        myEval = Evaluate(r.Value)
    Else
        myEval = Evaluate(r)
    End If
End Function

Следуя примеру, в Cell A5 вы можете поместить ...

=myEval(A4)

который оценил бы до 110 . Или вы можете заменить содержимое ячейки A4 на ...

=myEval(A1&A3&A2)

которые затем оценивают до 110 .

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