2016-06-12 86 views
0

Microsoft Excel二千零十三分之二千零一十,我有五个数据列如下:如何使用Excel在公式中引用值而不是公式?

  | 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. 

然而,E1式(这是C1*D1)给出8.57而不是8.55,我想通了,Excel使用C1的公式,而不是显示的值,这不是我的期望!

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

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

ROUND(C1,2)*D1 

...但我想一个解决方案,将直接获取所显示的值不格式化C1两次。

+3

也可以做在C1'= ROUND(A1/B1,2)' –

+0

实际上我喜欢scott的一个在这一个上有点不同。围绕你的结果展示你将要展示的内容。 –

+0

如果您可以处理其他副作用,您也可以将工作簿设置为使用“显示的精度” –

回答

2

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

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

即使用CELL功能找出号码是多少地方格式化,然后创建与此小数位数的格式和在一个TEXT函数中使用它来获取C1中的数字到它显示的位置数。

无论你是否想要这样做当然是另一回事。

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

值可以省略,因为乘法会强制字符串“1.71”到一个号码: -

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

enter image description here

+0

您的解决方案完美运行,但它有点复杂,因为它可能会被初学者用户使用,我更喜欢无论是在斯科特提到的“C1”还是在“E1”中。谢谢 –

+0

是的,我同意斯科特是一个明智的做法。 –

1

这是进入一个单元格的内容,因为你原来的问题问及如何访问的值,而不是其产生的值的公式:

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