如何使用Excel在公式中引用值而不是公式?

在Microsoft Excel 2010/2013中,我有五个数据列,如下所示:

| A | B | C | D | E | ------------------------------ line 1 | 12| 7| 1.71| 5| 8.57| C1: it's a formula ==> A1/B1, and it's formatted as two decimal places. 

然而, E1C1*D1 )的公式是8.57而不是8.55,我发现Excel使用C1的公式而不是显示的值,这不是我的期望!

那么如何强制Excel使用单元格的值(显示)而不是公式来计算另一个公式?

注意:我可以在E1使用下面的公式:

 ROUND(C1,2)*D1 

…但我想要一个解决scheme,直接获取显示值,而不是格式化C1两次。

我想这是问题的实际答案:

 =D1*VALUE(TEXT(C1,"#."&REPT(0,RIGHT(CELL("format",C1),1)))) 

即使用CELL函数来找出有多less位数被格式化,然后创build一个具有这个小数位数的格式,并在TEXT函数中使用它来获取C1中的数字与显示的位数。

不pipe你是否想要这样做,当然是另一回事。

CELL的缺点是,如果您在C1中更改数字的格式,则不会更新,直到您重新计算电子表格。

VALUE可以省略,因为乘法将把string“1.71”强制为一个数字: –

 =D1*TEXT(C1,"#."&REPT(0,RIGHT(CELL("format",C1),1))) 

在这里输入图像说明

这是对单元格内容的访问,因为原来的问题是如何访问该值而不是生成该值的公式:

 =CELL("contents",$C$1)