将文字文本转换为公式

使用MS Excel 2010:我使用CONCATENATE公式来创build一个文本string,看起来像一个公式,需要一个公式,将文本string转换为公式; 不使用MS Excel粘贴特殊function或VBA /macros。

示例:在单元格B2中:G2包含文本,在单元格B4中,我有CONCATENATE文本公式,它返回一个文本string

=TRIM(CONCATENATE(B2&" "&C2&" "&D2&" "&E2&" "&F2&" "&G2&" "&H2)) 

我希望Excel将这个string解释为一个公式,并将单元格B6中的值返回/显示为:“永远做你自己…不要出去寻找成功的个性并复制它。” – 李小龙

在这里输入图像说明

我试图使用INDIRECT公式,没有成功,不确定是否是我的公式或者是否可能。 样品:细胞B6:

 =INDIRECT(CONCATENATE("B4")) 

1)CONCATENATE和&是一样的东西。 换句话说,你写成string的公式可以翻译为:

 =TRIM(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(B2)," "),C2)," "),D2)," "),E2)," "),F2)," "),G2)," "),H2)) 

如果你要写出CONCATENATE为你的function,然后把你想要join的所有string分开,像@MarcoVos在你的问题的评论中指出的那样:

 =CONCATENATE(B2," ",C2," ",D2," ",E2," ",F2," ",G2," ",H2) 

或者,如果你想使用更常见的forms&你的公式将看起来像你最初发布没有CONCATENATE从这样的:

 =B2&" "&C2&" "&D2&" "&E2&" "&F2&" "&G2&" "&H2 

最后两个公式会产生相同的结果。

2)INDIRECT函数将文本转换为单元格引用或地址。 它不会将公式转换为文本并吐出公式的结果。 在他的答案macrosVos是正确的,FORMULATEXT()将显示公式作为文本或string在引用的单元格中。 如果您需要按照提供string的顺序,然后必须将string转换为公式,那么我build议您使用EVALUATE函数。 尽pipe如此,您不能使用常规Excel公式中的EVALUATE。 你可以从命名的范围内调用它。 创build一个命名的范围。 让我们举例来说,它是EvalText。 在创build命名区域的公式部分中,input:

 =EVALUATE($B$4) 

它会自动添加表单名称。 现在在工作表的任何单元格中,您可以input:

 =EvalText 

它会返回任何在B4中的string作为公式。 它会吐出一个错误,如果它不是一个适当的Excel的公式。

为什么不这样做呢?

放:

 =TRIM(CONCATENATE(B2&" "&C2&" "&D2&" "&E2&" "&F2&" "&G2&" "&H2)) 

在单元格B6和

 =FORMULATEXT(B6) 

在单元格B4。