У меня в COL 1 много строк, содержащих простые выражения (сложение, вычитание, умножение и деление в скобках), и мне нужно показать результат в другой ячейке.

Примером конечного результата моего листа будет:

COL 1 ___________ COL 2

5,1 * 3+2,5 _________ 17,8

3 *(2,6/2-1) ________ 0,9

5+6 * 2-3/3 _________ 16

Заранее спасибо, надеюсь, мне было понятно.

2 ответа2

1

Это возможно с помощью VBA Macro. Я не слишком уверен, существует ли какая-либо функция или выражения, которые могут непосредственно оценивать текст как выражение в Excel.

В книге Excel нажмите ALT + F11, чтобы открыть VBA

Вставьте макрос и введите в него следующий код

Function EvaluateExp(Ref As String)
   Application.Volatile
   EvaluateExp = Evaluate(Ref)
End Function

Сохраните книгу как файл с именем filename.xlsm, т. Е. С макросом Excel Sheet. Это создает пользовательскую формулу для оценки выражения текста по его результату. Теперь мы используем эту формулу в Excel. Обратите внимание, что это будет работать только в книге Excel, содержащей этот макрос. Копирование формулы на другой лист приведет к ошибке, поскольку макрос отсутствует.

Теперь ваши выражения, скажем, от A2 до A6, поэтому в ячейках B2 введите следующую формулу и перетащите ее вниз.

=EvaluateExp(CONCATENATE("=",(A2)))

1

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

Для этого выберите свою первую ячейку результата (здесь B2) и определите имя для ячейки. В моей версии Excel вы попадаете в этот диалог, выбрав Вставить> Имя> Определить ... (Но, судя по картинке pat2015, а не его версии.)

Ключ заключается в использовании функции EVALUATE() в поле «Относится к:».

После определения диапазона вы можете ввести имя в B2, как функцию:

И заполнение вниз рассчитывает все ответы из текстовых выражений.

По сути, это то же самое, что и ответ pat2015, но вам не нужно создавать макрос. Это использует макрос, поэтому вам нужно сохранить вашу книгу как .xlsm. Вы получите уведомление об этом, когда сохраните его.

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