如何使一个单元格的值等于另一个单元格中的表达式(Excel 2010)?

15 浏览
0 Comments

如何使一个单元格的值等于另一个单元格中的表达式(Excel 2010)?

我正在处理一个电子表格,想要实现如下功能:

价格 回报 净利润
22   22
45   45
7     7
25+25 50

数据被输入为表达式,表示特定项目的回报值。我无法理解的是如何使下一个单元格的值等于第一个单元格的表达式值,就像单元格中是"=22"和"=25+25"一样。非常感谢任何帮助。

0
0 Comments

问题的原因是作者记起了一个关于将字符串公式转换为实际公式的问题,并找到了解决方法。解决方法是使用Evaluate函数,这是一个未记录在案的Microsoft XLM宏。但是,您必须在定义的名称中使用它,否则会出现“函数无效”错误消息。另外,由于它实际上是一个宏,所以必须将其所在的工作簿保存为.xlm,并启用宏才能使其正常工作。如果这些方法适用于您,以下是如何做到这一点(如果不适用,请参考上面SO问题的被接受答案,或者参考Cook的答案,这是我在撰写本答案时出现的):

1. 在工作表中选择B1(本例中为Sheet1)。

2. 单击Ctrl-F3打开Excel的名称管理器。

3. 创建一个新名称,命名为EvaluateCellToLeft。

4. 将范围设置为Sheet1。

5. 在引用框中输入=evaluate(Sheet1!A1)。

在Excel 2010中,它看起来是这样的:

enter image description here

现在,在B列中输入=EvaluateCellToLeft。请记住,它是一个命名范围,而不是一个公式,所以末尾没有括号。

enter image description here

实际上,我无法想出为什么要这样做而不是像Cook那样添加一个宏。这两种方法都需要启用宏,但使用宏的方法更加灵活,因为您可以指定要计算的单元格。而且使用宏,您可以将其放在插件中,从而避免了启用宏的要求,而我不确定使用此方法是否可以。而且,谁知道也许有一天Excel 4宏将被停用。

0
0 Comments

问题原因:在Excel 2010中,没有内置的工作表函数能够使一个单元格的值等于另一个单元格中的表达式的值。

解决方法:可以使用VBA中的Evaluate函数来解决这个问题。可以创建一个用户定义函数(UDF),将Evaluate函数嵌入其中,并将其命名为Evalu8。通过在单元格中输入=Evalu8(A4)来调用该函数,其中A4是包含表达式的单元格。

下面是一个简单的UDF的例子:

Function Evalu8(ByVal S As String) As String
    Evalu8 = Evaluate(S)
End Function

通过调用=Evalu8(A4),可以使一个单元格的值等于另一个单元格中表达式的值。这种方法非常简单且有效。

0