Существует встроенная старая функция VBA, которая называется «Оценка», которая будет принимать точную строку, которая является приемлемой математической формулой Excel, преобразовывать ее в числа и операторы и решать. В вашем случае у вас есть два шага, на которые вы смотрите. Один - выполнить замену X, а второй - решить полученное уравнение.
Это решение создаст вспомогательный столбец только для иллюстрации шагов. Последняя ячейка не нуждается в вспомогательном столбце, если формулы из разных шагов правильно вложены в последующую формулу.
ЧАСТЬ 1 - ЗАМЕНА
Посмотрите на формулу замещения. Эта формула будет искать данную строку в другой ячейке и заменять ее другим значением.
SUBSTITUTE(string of text, text you are looking for, text you want to change to, optional occurrence to change)
Во временном вспомогательном столбце используйте следующую формулу и скопируйте вниз. Предположим, что ваше значение для X находится в ячейке Q4. и первая формула, с которой вы имеете дело, находится в B2.
=SUBSTITUTE(B2,"X",$Q$4)
Поэтому, если X равен 10, вы должны получить столбец, который выглядит следующим образом:
| Setting |helper | Value |
| x + 10 |10 + 10| .... |
| x + 20 |10 + 20| .... |
| x + 35 |10 + 35| .... |
ЧАСТЬ 2 - Оценить
пара критических шагов здесь. Выберите ячейку справа от 10+10. Причина в том, что когда мы создаем эту формулу, мы хотим, чтобы она имела дело с ячейками относительно положения ячейки, в которой мы создаем формулу. Следующее, что нужно сделать, это создать именованную формулу. Для этого перейдите на вкладку ФОРМУЛА на ленте. На ленте «Формулы» в разделе «Определенные имена» выберите «Определить имя». В поле для имени введите имя по вашему выбору. Я склонен, как ОТВЕТ. что бы вы ни выбрали, будет то, как вы будете обращаться к нему в своей ячейке, как и любая другая функция. В поле «Ссылка» введите следующее уравнение:
=Evaluate(C3)
Важно, чтобы вы оставили значение $ off для ссылки на ячейку. С3 в этом случае ссылается на ячейку с 10+10. Нажмите OK, когда закончите. В ту ячейку, которую вы выбрали в начале, введите
=ANSWER
Где ОТВЕТ - это название вашей формулы. Затем следует взять ячейку слева, оценить ее и дать ответ 20. Когда вы копируете ячейку вниз, она будет ссылаться на следующую формулу вниз и так далее, насколько вы копируете.
Теперь, чтобы сделать это без вспомогательного столбца, вам нужно определить формулу с формулой замены в ней, чтобы ваша именованная формула выглядела примерно так:
=EVALUATE(SUBSTITUTE(B2,"X",$Q$4))
Теперь уловка в том, что вам нужно будет создать это для каждого рабочего листа, на котором вы хотите его использовать, и ваш наклон не может повторить имя вашей формулы. Я еще не нашел обходной путь для этого улова.