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

时间:2015-11-04 18:53:13

标签: excel excel-formula

我无法找到一种方法来设置两列,一列显示可编辑的整个公式,另一列显示实际执行公式。

理想情况下,我希望我的工作表设置如下:

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

我希望能够更改“公式”列并让它自动更新“值”列。

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

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

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

我也尝试使用=RIGHT(A2,LEN(A2)-1)但没有“=”,并且无法弄清楚如何将“5 + 2”转换为我可以用来解决的文本。我希望用公式和没有宏/ VBA来做到这一点。

3 个答案:

答案 0 :(得分:3)

以下是如何做到的。

1

打开名称管理器。从工作表中控制-F3,然后单击“新建”按钮。

2

对于对话框中的名称字段,请输入EVALA。我刚刚选了这个名字;它代表"评估A"。但你可以选择你喜欢的任何名字。

3

对于Refers to字段,请输入此

=EVALUATE($A1)

4

单击“确定”,然后单击“关闭”。

5

在B1中输入以下公式:

=EVALA

那就是它。

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

答案 1 :(得分:1)

您可以使用VBA轻松地创建用户定义的函数,但如果您不经常使用VBA,则另一种方法是创建Name对象。名称对象可以访问单元格公式中通常不可用的某些函数。其中一个函数是“Evaluate”,它将字符串计算为数学表达式。这是一个如何做到这一点的演示。

注意:请特别注意$的使用。您可能不希望在名称定义中使用任何$,因为这样可以防止它以相对方式运行。另外,Sheet1!表示这不适用于其他工作表。

更新我只想将此方法归功于以下来源。这是非常整洁的东西,所以对于任何感兴趣的人都可以阅读。最后一个链接特别提供了一个创建没有数据点的图表的简洁示例。

MSDN Evaluating Defined Names
The power of evaluate (ozgrid)
XL4 Macro Functions in Names - JKP
Evaluate and Indirect
More unique functionality of Defined Names

enter image description here

这可能是OP的最佳解决方案,因为它要求避免使用VBA;但是,这种方法有些局限。它需要在每张要使用的纸张上进行手动设置。我认为更优选的是创建一个非常简单的UDF ...

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

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

答案 2 :(得分:0)

只需在A列中的公式前添加一个''=5+2会在您的单元格中显示为" = 5 + 2"。然后在B列中,正常执行公式=5+2