Строковая формула с переменными на том же листе


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

У меня есть следующие данные:

Введите описание изображения здесь

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

Используя вышеприведенное мышление:
B8 = сумма(4 + (8 / 2))
B9 = сумма(5 + (6 / 2))
C8 = сумма(5 + (6 / 2))
и т.д...

Если это невозможно, то моя реальная всеобъемлющая цель здесь-просто иметь единственное место для Формулы. У меня будет гораздо больше, чем 3 колонки данных, поэтому возможность обновить их в одном месте будет идеально для меня. Любая помощь ценится.

2 4

2 ответа:

Используйте определенные имена и ваши формулы, как они на самом деле написаны.

Выделите все строки с данными, начинающимися со столбца A Затем на вкладке Формулы в группе определенные имена выберите команду Создать из выделенного

Введите описание изображения здесь

Затем скопируйте ваши формулы в соответствующие столбцы в строках 8 и 9

Введите описание изображения здесь

Введите описание изображения здесь

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

Используя

Я попытался использовать более динамическое решение, используя Vlookup, чтобы найти значения для сложения.

Вот как я получаю данные (обратите внимание, что показанная формула старая, см. редактирование):

Введите описание изображения здесь

Первые два блока ответов (соответственно):

=SUM(VLOOKUP("Az",$A$2:$D$6,column(),FALSE)+(VLOOKUP("Cx",$A$2:$D$6,column(),FALSE)/2)) =SUM(VLOOKUP("By",$A$2:$D$6,column(),FALSE)+(VLOOKUP("Ev",$A$2:$D$6,column(),FALSE)/VLOOKUP("Dw",$A$2:$D$6,column(),FALSE)))

...и тащи сюда.

Но я понимаю, что вы ищете, в конце концов, чтобы иметь возможность, возможно, более быстро редактировать переменные формулы, поэтому мои вторые два ответа (строки 11 и 12) используйте столбцы F, G и H для поиска переменной:

=SUM(VLOOKUP($F$11,$A$2:$D$6,COLUMN(),FALSE)+(VLOOKUP($G$11,$A$2:$D$6,COLUMN(),FALSE)/2))
и =SUM(VLOOKUP($F$12,$A$2:$D$6,COLUMN(),FALSE)+(VLOOKUP($G$12,$A$2:$D$6,COLUMN(),FALSE)/VLOOKUP($H$12,$A$2:$D$6,COLUMN(),FALSE)))

Получается ли так, что вы попали туда, куда хотели? Я пытаюсь придумать способ, используя, возможно, indirect() ro использовать E8 и E9 более непосредственно, так что если вы отредактируете эти формулы, другие тоже изменятся...

Edit - вот "лучшее" решение, поскольку все, что вам нужно сделать, это изменить имена переменных в E8 и E9, и Формула обновится сама. (Если вы следуете моему макету выше), в B8 использование =SUM(VLOOKUP(MID($E$8,SEARCH("(",$E$8)+1,2),$A$2:$D$6,COLUMN(),FALSE)+(VLOOKUP(MID($E$8,SEARCH("+(",$E$8)+2,2),$A$2:$D$6,COLUMN(),FALSE)/2))

И в B9, =SUM(VLOOKUP(MID($E$9,SEARCH("(",$E$9)+1,2),$A$2:$D$6,COLUMN(),FALSE)+(VLOOKUP(MID($E$9,SEARCH("+(",$E$9)+2,2),$A$2:$D$6,COLUMN(),FALSE)/VLOOKUP(MID($E$9,SEARCH("/",$E$9)+1,2),$A$2:$D$6,COLUMN(),FALSE)))

Таким образом, если вы хотите суммировать, скажите Sum(Cx+(Ev/2)), что все, что вам нужно сделать, это отредактировать E8 в этой формуле, и ответ1 в B8 обновится сам.