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

时间:2016-06-12 01:56:05

标签: excel excel-formula

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

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

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

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

即。使用CELL函数找出格式化数量的位置,然后创建一个具有此小数位数的格式,并在TEXT函数中使用它将C1中的数字转换为显示的位数。

你是否愿意这样做当然是另一回事。

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

VALUE可以省略,因为乘法会强制字符串" 1.71"一个数字: -

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

enter image description here