Excel中,如何显示单元格公式中的值而不是引用

当您单击Excel中的单元格时,您会看到像=A1+B1的公式。 这是与单元格引用的公式。 我想看看单元格值的公式,例如: =10+20

 A1 =10 //Cell A1 has the value 10 A2 =20 //Cell A2 has the value 20 C2 =A1+B1 //Cell C2 has the value A1 + A2 D2 =10+20 //I want Excel to derive this. 

我不希望公式显示在单元格或任何东西。 我仍然希望C2显示30.我只是想这样,如果我点击C2,我可以看到=10+20在公式栏中。

另外,如果C2在显示计算的地方显示了注释(所以点击C2会显示注释“= 10 + 20”,这也可以。

这不是Excel的工作原理。 如果在单元格中有一个公式,这就是公式栏中显示的内容。

编辑

您可以使用VBA(从Tools > Macros > Visual Basic Editor ),但是,编写代码将使用A + B的值更新C单元格的内容,如下所示:

 Private Sub HideFormula() Dim lastrow As Long, r1 As Long ' Get the last row in the worksheet lastrow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row For r1 = 1 To lastrow ' If A & B aren't blank, make the formula of cell C equal to A + B. If Sheet1.Range("$A$" & r1).Value <> "" And _ Sheet1.Range("$B$" & r1).Value <> "" Then ' In the example, C2 = A1 + B1, so offset C by one Sheet1.Range("$C$" & (r1 + 1)).Value = _ "=" & Sheet1.Range("$A$" & r1).Value & "+" & _ Sheet1.Range("$B$" & r1).Value End If Next End Sub 

编辑2

如果要用公式中的值replaceC单元格的内容,可以使用.Formula值来查找其公式,并从此处开始:

 Private Sub ReplaceFormulaWithValues() Dim lastrow As Long, r1 As Long Dim temp As String, arTemp ' Get the last row in the worksheet lastrow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row For r1 = 1 To lastrow ' If A & B aren't blank, make the formula of cell C equal to A + B. If Sheet1.Range("$C$" & r1).Value <> "" Then ' Get the formula for the current C cell temp = Replace(Sheet1.Range("$C$" & r1).Formula, "=", "") ' Create an array by splitting the formula on the + sign arTemp = Split(temp, "+") Sheet1.Range("$C$" & r1).Value = _ "=" & Sheet1.Range(arTemp(0)).Value & "+" & _ Sheet1.Range(arTemp(1)).Value End If Next End Sub 

这是不可能的,但是如果原因是您很快要识别这些值,那么您可以使用“跟踪先导”,在一张表内的相关字段上绘制箭头,而无需用户识别单元格和范围时间。
也许这有助于如果这是你的目的…
您可以在function区的“公式”选项卡中find该function。

这里有一个技巧来回答你的第一个问题:

在公式栏中,在formlula中select要查看…的值的单元格引用,例如A1,然后按F9。 嘿presto,公式的突出部分评估:= 10 + A2。

仍然在公式栏中,现在对A2进行相同操作,您将看到= 10 + 20单元格中显示的值仍然是30,但不再是从A1和A2派生的,因为这些单元格中的值已经在您的公式解决。 按ENTER键接受评估的公式。

您可以使用F9来评估公式的任何部分,以查看Excel将返回的内容 – 如果可以的话 – 您可以在更长的公式中多次执行以检查一个接一个的部分。 NB! 在公式栏中select/突出显示的部分必须是一个“完整”的短语,因为它是可以评估的,例如括号的完整集合,公式中的所有参数等。

当一个较长的公式返回一个错误,并且您想要find哪个部分导致问题时,这是最有用的…我一直使用它。 在数组公式中find一个单一的哑值或者在一个范围内显示值时非常有帮助。 NB! 长度限制适用…

最后,一定要在查看公式的评估组件后点击Esc,以便公式返回到开始的状态。 否则,你的公式简单地变成一系列的数字或string,不再作为一个公式。 如果你忘了这个,那么撤销/ Ctrl + Z来恢复你的公式。

要回答第二个问题:有一个Excel函数N(“…”),允许您将注释添加为公式中的文本string,而不是单独的注释框。

例如:= SUM($ B $ 2:$ B $ 21)+ N(“所有20个销售代表的总销售额”)

= N(“任何文本string”)总是评估为0(使用上面的提示来确认这一点),因此加0不会改变你的答案,但允许单独的公式带着他们自己的小Rem语句。 N(3)评估为3,而N(“3”)评估为0,btw。

只是为了好玩,你可以通过在公式中添加N()语句来保护/修改你的表单:= SUM($ B $ 2:$ B $ 21)/ N(IF) ))

其中$ F $ 3(一些无害的单元格,文本颜色白色)必须在其中input“Go”一词,以停止公式被0分割。可以使它被一些随机数等分开,使结果无意义。或者至less放慢某人的速度。

HTH

您可以使用CONCATENATE获得所需的结果。 对于你的情况,input如下function:

D2 = concatenate(“=”,A1,“+”,A2)