将函数的文本公式转换为 '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
而言,要么将原文中的;
改为,
,要么用SUBSTITUTE
和Eval
结果.
我在单元格 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
而言,要么将原文中的;
改为,
,要么用SUBSTITUTE
和Eval
结果.