3

当您在 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”,这也可以。

4

5 回答 5

4

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

如果您想用公式中的值替换 C 单元格的内容,您可以使用该.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
于 2012-07-20T12:59:49.310 回答
3

这是不可能的,但如果原因是您想快速识别这些值,您可以使用“跟踪先例”,它会在一张纸上向相关字段绘制箭头,而用户无需识别所有单元格和范围时间。
如果这是您的目的,也许会有所帮助...
您可以在功能区的“公式”选项卡中找到此功能。

于 2012-07-20T13:03:21.163 回答
2

这是一个回答您的第一个问题的技巧:

在公式栏中,在公式内选择要查看...的值的单元格引用,例如 A1,然后按 F9。嘿 presto,计算公式中突出显示的部分:=10+A2。

仍然在编辑栏中,现在对 A2 执行相同操作,您会看到 =10+20 单元格中显示的值仍然是 30,但它不再来自 A1 和 A2,因为这些单元格中的值已经在你的公式中解决。按 ENTER 接受评估的公式。

您可以使用 F9 来评估公式的任何部分,以查看 Excel 将返回的内容(如果可以),您可以在较长的公式中执行多次以逐个检查部分。注意!您在公式栏中选择/突出显示的部分必须是一个“完整”的短语,可以评估,例如完整的括号集、公式中的所有参数等。

当较长的公式返回错误并且您想找出导致问题的部分时,这非常有用……我一直都在使用它。在数组公式等中查找单个无效值或显示范围内的值时非常有用。注意!适用长度限制...

最后,一旦您查看了公式的评估组件,请务必点击 Esc,以便公式返回到最初的状态。否则,您的公式只会变成一系列数字或字符串,而不再用作公式。如果您忘记了这一点,请撤消/Ctrl+Z 恢复您的公式。

要回答您的第二个问题:有一个 Excel 函数 N("...") 允许您在公式内部添加注释作为文本字符串,而不是在单独的注释框中。

例如:=SUM($B$2:$B$21)+N("所有 20 名销售代表的总销售额。")

=N("any text string") 总是计算为 0(使用上面的提示来确认这一点),因此添加 0 不会改变您的答案,但允许各个公式随身携带自己的小 Rem 语句。N(3) 计算为 3, ,而 N("3") 计算为 0,顺便说一句。

只是为了好玩,您可以通过将 N() 语句添加到如下公式中来保护/更改工作表: =SUM($B$2:$B$21)/N(IF($F$3="Go",1,"1" ))

其中 $F$3 (一些无害的单元格,文本颜色为白色)必须在其中输入单词“Go”以停止将公式除以 0。您可以将其除以一些随机数等,从而使结果毫无意义。 . 或者至少让某人慢下来。

高温高压

于 2015-12-05T09:38:12.233 回答
0

您可以使用 CONCATENATE 来获得所需的结果。对于您的情况,请输入以下函数:

D2 =连接(“=”,A1,“+”,A2)

于 2017-03-11T17:34:15.703 回答
-1

这并不复杂。选择要评估的单元格,然后单击公式 > 评估 > 继续单击评估,直到它显示您正在查找的单元格中的值。如果公式中包含的单元格太多,那就有点麻烦了。

于 2021-07-01T16:20:14.387 回答