将函数的文本公式转换为 'real' 公式

Convert text formula of a function to a 'real' formula

我在单元格 A1 中有公式 VLOOKUP(A2;Table3[#All];3;FALSE)。我正在努力寻找一种方法来输出 B1 中上一个公式的结果。

显然,您可以使用函数 "Evaluate" 计算文本公式,只能通过 VBA 访问,如下所示:

Function Eval(Ref As String)
Application.Volatile
Eval = Evaluate(Ref)
End Function

然后你就可以在你的 sheet 中的任何地方调用它,例如,如果你将 1+2 放在单元格 A1 中,将 =Eval(A1) 放在单元格 B1 中,你会得到输出 3 B1.所以在这种情况下它可以正常工作!

当您 'evaluate' 也是一个简单的数字时效果很好:

然而

我发现 Evaluate 不适用于包含函数的文本(比如我上面的 Vlookup 公式)。

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

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

谢谢!

我不确定它是否记录在更权威的地方 - this link 确实提到了它 - 但 Evaluate 需要逗号作为公式中的参数分隔符,无论您的本地设置如何。

VLOOKUP而言,要么将原文中的;改为,,要么用SUBSTITUTEEval结果.