我有一个excel工作表,如下所示。所需的输出如列G和最后一行所示,它连接列/行中的所有值,并给出结果表达式的值。
它实际上是某种谜题,其目的是用运算符替换某些数字,使得G中的值与指定值匹配。我正在从纸质版本中复制excel中的相同内容。
A B C D E F G
3 3 33
4 1 + 2 43
4 0 + 5 6 4 604
7 3 2 / 1 2 61
3 7 2 7 3727
3 0 30
47 4033 304 0.4 2617 42
我尝试过以下公式:
="="&A2&B2&C2&D2&E2&F2
然而,它以文本格式而不是43给出结果,这是我所期望的:
=41+2
有没有办法让最终输出为43。
我开发(记录和修改)了一个宏,它只是复制上面的结果,将其粘贴为H列中的值,然后将文本运行到列'在H列上,它完全按照预期给出了所需的输出。但是,我仍然无法弄清楚如何对该行做同样的事情。
有没有办法只用公式来实现上述目标?
我想避免使用宏,因为撤消功能会丢失,但欢迎提出建议。
答案 0 :(得分:5)
您可以创建一个使用Application.Evaluate
将文本字符串计算为值的UDF。然后你的公式只需要=Eval(A2&B2&C2&D2&E2&F2)
Function Eval(txt As String)
Eval = Application.Evaluate(txt)
End Function