将函数的文本公式转换为“真实”公式

问题描述 投票:3回答:1

我在单元格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。因此,在这种情况下可以正常工作!

enter image description here

当您也'评估'一个简单数字时,效果很好:enter image description here

HOWEVER

我发现,评估不适用于包含函数的文本(例如我上面的Vlookup公式)。

例如,如果将Eval(A1)放在A2中(其中“ Eval”本身是一个函数),然后将=Eval(A2)放在B2中,则会得到“ #VALUE”。与上述公式相同的输出。

enter image description here

[有人知道如何计算文本公式,例如:VLOOKUP(A2; Table3 [#All]; 3; FALSE)(无需在公式前手动添加“ =”)?

谢谢!

excel excel-formula vlookup evaluate
1个回答
4
投票

[我不确定是否在更权威的地方进行了文档说明-this link确实提到了它-但是Evaluate在公式中需要逗号作为参数分隔符,而不管您的本地设置如何。

VLOOKUP而言,将原始文本中的;更改为,,或使用SUBSTITUTEEval作为结果。

© www.soinside.com 2019 - 2024. All rights reserved.