从单元格中提取字符串,并在其他地方用作公式的组成部分=评估=间接的



我想在单元格中输入一个公式作为字符串,然后将该字符串引用到公式中。

示例:单元格A1包含文本"SUM(K2:K10(*5"(无计算(

单元格B1=10+(A1(

结果B1=10+SUM(K2:K10(*5(,并实际计算。

如果A1不是一个完整的公式,也需要工作,但我只希望B1中使用的字符串作为公式的一部分,就像它在B1中自然存在一样。

因此,如果A1只是字符串"SU",在B1中,我将=A1&M(K2:K10(,它将SU和M组合起来,并作为一个适当的公式计算为=SUM(K2:K10(

现在我可以更改A1中的文本以模仿更复杂的公式,B1将表现得好像该文本真的是公式的一部分并进行计算。从我读到的函数=评估这样做,但它似乎不在更新的excel中?我只是不断地得到错误,函数是无效的,不在函数库中。。

也许可以使用间接或Concate来实现这一点?

谢谢。365 Excel 2020 64位

您可以在名称管理器的帮助下完成(VBA是一个选项,但在这个问题的上下文中,我排除了这一可能性(

"公式"选项卡–"名称管理器"–"新建"–将任何名称放入"名称:"框中,假设您放入GetResult

将以下内容放入参考:框

=评估($A$1(

现在在B1,只需放入以下

=GetResult

注意-如果你使用这种方法,那么你必须将你的文件保存为.xlsm.

EVALUATE是旧的Excel版本4宏语言函数,不能直接用作工作表函数。你可以构建一个VBA UDF来获取VBA EVALUATE方法(BTW有很多"奇怪的行为"(。或者,如果你有LAMBDA,你可以构建名为LAMBDA的调用EVALUATE的方法。命名Lambda称为邪恶,公式=Lambda(x,EVALUATE(x((

如果你的公式字符串在Z99单元格中,你可以将邪恶Lambda称为=邪恶(Z99(

但是要注意,以这种方式使用XLM宏函数是不推荐的,并且可能会与反病毒等发生冲突。

相关内容

最新更新