使用 MS Excel 2010:我使用 CONCATENATE 公式创建了一个看起来像公式的文本字符串,并且需要一个将文本字符串转换为公式的公式;无需使用 MS Excel 特殊粘贴功能或 VBA/宏。
示例:在单元格 B2:G2 中包含文本,在单元格 B4 中,我有返回文本字符串的 CONCATENATE 文本公式
=TRIM(CONCATENATE(B2&" "&C2&" "&D2&" "&E2&" "&F2&" "&G2&" "&H2))
我希望 Excel 将此字符串解释为公式,并将单元格 B6 中的值返回/显示为:“永远做你自己……不要出去寻找成功的个性并复制它。” - 李小龙
我尝试使用
INDIRECT
公式并且没有成功,不确定这是我的公式还是可能。示例:单元格 B6:=INDIRECT(CONCATENATE("B4"))
最佳答案
1) CONCATENATE 和 & 是一回事。换句话说,您以字符串形式编写的公式可以翻译为:
=TRIM(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(B2)," "),C2)," "),D2)," "),E2)," "),F2)," "),G2)," "),H2))
如果您要为您的函数写出 CONCATENATE ,则将您想要连接在一起的所有字符串分开,就像@MarcoVos 在对您的问题的评论中指出的那样:
=CONCATENATE(B2," ",C2," ",D2," ",E2," ",F2," ",G2," ",H2)
或者,如果你想使用更常见的 & 你的公式看起来像你最初发布的没有 CONCATENATE 的形式,如下所示:
=B2&" "&C2&" "&D2&" "&E2&" "&F2&" "&G2&" "&H2
最后两个公式将产生相同的结果。
2) INDIRECT 函数将文本转换为单元格引用或地址。它不会将公式转换为文本并吐出公式的结果。宏 Vos 在他的回答中是正确的,因为 FORMULATEXT() 将在引用的单元格中将公式显示为文本或字符串。如果您需要遵循提供字符串的顺序,然后必须将字符串转换为公式,那么我建议您使用 EVALUATE 函数。但是,您不能使用常规 excel 公式中的 EVALUATE。不过,您可以从命名范围调用它。创建一个命名范围。例如,我们称它为 EvalText。在用于创建命名范围的公式部分中,输入:
=EVALUATE($B$4)
它将自动添加工作表名称。现在,您可以在工作表上的任何单元格中输入:
=EvalText
它将返回 B4 中的任何字符串作为公式。如果它不是正确的 excel 公式,它将吐出一个错误。
关于excel - 将文字文本转换为公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36953406/