单元格 A1 中有公式 VLOOKUP(A2;Table3[#All];3;FALSE)
。我正在努力寻找一种方法来输出 B1 中上一个公式的结果。
显然,您可以使用只能通过 VBA 访问的函数“Evaluate”来计算文本公式,如下所示:
Function Eval(Ref As String)
Application.Volatile
Eval = Evaluate(Ref)
End Function
然后您就可以在工作表中的任何位置调用它,例如,如果您将 1+2
放入单元格 A1 中,将 =Eval(A1)
放入单元格 B1 中,您在 B1 中得到输出 3。所以在这种情况下效果很好!
但是
我发现 Evaluate 不适用于包含函数的文本(如我上面的 Vlookup
公式)。
例如,如果您将 Eval(A1)
放入 A2(其中“Eval”本身就是一个函数),然后将 =Eval(A2)
放入 B2,您将得到“#值(value)”。
与上述公式相同的输出。
有人知道如何计算文本公式,例如:VLOOKUP(A2;Table3[#All];3;FALSE)(无需在公式前手动添加“=”)?
谢谢!
最佳答案
我不确定它是否记录在更权威的地方 - this link确实提到了它 - 但 Evaluate
需要逗号作为公式中的参数分隔符,无论您的本地设置如何。
就VLOOKUP
而言,要么将原始文本中的;
更改为,
,要么使用SUBSTITUTE
并Eval
结果。
关于excel - 将函数的文本公式转换为 'real' 公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58029927/