2016-06-12 1148 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)