我在单元格A1中具有公式VLOOKUP(A2;Table3[#All];3;FALSE)
。我正在努力寻找一种方法来输出B1中先前公式的结果。
因此,显然,您可以使用只能通过VBA访问的“求值”功能来计算文本公式,如下所示:
Function Eval(Ref As String)
Application.Volatile
Eval = Evaluate(Ref)
End Function
然后,您可以在工作表中的任何地方调用它,例如,如果将1+2
放在单元格A1中,将=Eval(A1)
放在单元格B1中,则在B1中会得到输出3。因此,在这种情况下可以正常工作!
HOWEVER
我发现,评估不适用于包含函数的文本(例如我上面的Vlookup
公式)。
例如,如果将Eval(A1)
放在A2中(其中“ Eval”本身是一个函数),然后将=Eval(A2)
放在B2中,则会得到“ #VALUE”。与上述公式相同的输出。
[有人知道如何计算文本公式,例如:VLOOKUP(A2; Table3 [#All]; 3; FALSE)(无需在公式前手动添加“ =”)?
谢谢!
[我不确定是否在更权威的地方进行了文档说明-this link确实提到了它-但是Evaluate
在公式中需要逗号作为参数分隔符,而不管您的本地设置如何。
就VLOOKUP
而言,将原始文本中的;
更改为,
,或使用SUBSTITUTE
和Eval
作为结果。