在相邻的单元格中运行文本公式

我很难找出有两列的方法,一个是显示可编辑的整个公式,另一个是实际执行公式的方法。

理想情况下,我希望我的表格可以这样设置:

Formula | Value =5+2 | 7 =3-2 | 1 

我想能够更改公式列,并让它自动更新值列。

我尝试过使用GetFormula()函数,但我不认为这就是我想要做的,因为我最终会根据我想要做的循环引用。 我得到的最接近的是在公式列或空格中使用Right()函数和Text,并删除空格。 但是,我最终的文字,而不是解决的公式。

使用=RIGHT(A2, LEN(A2)-1)

 Formula | Value =5+2 | =5+2 

我也尝试使用=RIGHT(A2,LEN(A2)-1)但没有“=”,不知道如何将“5 + 2”转换成文本,我可以用来解决。 我希望用一个公式来做到这一点,没有macros/ VBA。

这是如何做到这一点。

1

打开名称pipe理器。 从工作表控制F3,然后单击新buildbutton。

2

对于对话框中的名称字段,inputEVALA 。 我只是选了这个名字 它代表“评估A”。 但是你可以select你喜欢的任何名字。

3

对于“ Refers to字段,请input

 =EVALUATE($A1) 

4

单击确定,然后closures。

在B1中input这个公式:

 =EVALA 

而已。

您现在可以在工作表中的任何一行上使用此公式,并且它将评估input公式的行的单元格中的任何内容。

您可以使用VBA轻松创build用户定义的函数,但是如果您不经常使用VBA,则另一种方法是创build一个Name对象。 名称对象可以访问单元格公式中通常不可用的特定function。 其中一个函数是“评估”,它将评估一个string作为一个mathexpression式。 这里有一个演示如何做到这一点。

注意:要特别注意使用$ 。 有机会,你不想在你的名字定义任何$ ,因为这将阻止它的行为相对的方式。 另外, Sheet1! 意味着这不会在另一张纸上工作。

更新我只是想把这个方法归功于下面的来源。 这是相当整洁的东西,所以有兴趣的人给它一个阅读。 最后一个链接特别给出了一个创build没有数据点的图表的简单例子。

MSDN评估定义的名称
评估的力量(ozgrid)
XL4macros名称的function – JKP
评估和间接
定义名称的更多独特function

在这里输入图像说明

这可能是OP的最佳解决scheme,因为它要求避免使用VBA; 但是,这种方法有一定的局限性。 它需要在每张纸上使用手动设置。 我认为最好的办法就是创build一个非常简单的UDF。

 Function Eval(Expr As String) Eval = Application.Evaluate(Expr) End Function 

这可以添加到任何可访问的加载项,使其可用于Excel的任何实例。 多一点设置,但less维护。

只需在A列中input公式之前放置一个'=5+2就会显示在您的单元格中“= 5 + 2”。 然后在B列中,按正常方式做公式=5+2