Вам нужно будет создать функцию с использованием VBA.
Открыв свой лист Excel, запустите редактор Visual Basic, выполнив следующие действия:
- на ПК с Windows
нажмите Alt+F11.
- на Mac
нажмите FN+ALT+F11
затем нажмите Insert
затем Module
.
Новое окно модуля появится в правой части редактора Visual Basic.
Скопируйте следующее в новое окно модуля:
Function Eval(Ref As String)
Application.Volatile
Eval = Evaluate(Ref)
End Function
Теперь вы можете закрыть редактор Visual Basic, как только что создали функцию EVAL(cell reference)
.
Теперь, чтобы использовать эту новую функцию, используя VLOOKUP()
для формулы.
Если формула должна быть построена в соответствии с тем, в какой строке находятся данные, например,
¦ A ¦ B ¦ C ¦
-----------------------------
1 ¦ 2 ¦ 2 ¦ =A1+B1 ¦
-----------------------------
2 ¦ 4 ¦ 2 ¦ =A2+B2 ¦
-----------------------------
и клетки C1
и C2
представляют собой L4L-formula
Тогда вам необходимо учитывать изменчивость формулы. Вы не можете просто положить A1+B1 для L4L-formula
например. Вы должны ввести без знака равенства (=) "B"&ROW()&"+C"&ROW()
для L4L formula
.
Затем вам нужно будет создать вспомогательный столбец для полученной формулы.
Если ваш список формул выглядит следующим образом:
¦ A ¦ B ¦
-----------------------------
1 ¦ L4L ¦ L4L-formula ¦ Let's say this is F + G
-----------------------------
2 ¦ FOQ ¦ FOQ-formula ¦ Let's say this is F x G
-----------------------------
Если L4L-formula
должна быть F + G
, то, как указано выше, вам нужно ввести "F"&ROW()&"+G"&ROW()
в ячейку B1
Если FOQ-formula
должна быть F x G
то вам нужно ввести "F"&ROW()&"*G"&ROW()
в ячейку B2
Теперь, если ваш рабочий стол находится на том же листе и выглядит следующим образом:
¦ F ¦ G ¦ H ¦
-------------------------
1 ¦ 2 ¦ 2 ¦ L4L ¦
-------------------------
2 ¦ 4 ¦ 2 ¦ FOQ ¦
-------------------------
затем поместите следующее в ячейку I1
и перетащите его вниз:
=EVAL(VLOOKUP(H1,A:B,2,FALSE))
Столбец I
теперь является вспомогательным столбцом, который строит необходимую формулу для этой строки. Вы, конечно, можете скрыть этот столбец при печати (если требуется).
Для результата этой формулы вы должны поместить =EVAL(I1)
в ячейку J1
и также можете перетащить ее вниз.