【问题标题】:how to display the formula of a cell in another cell in excel [duplicate]如何在excel中的另一个单元格中显示一个单元格的公式[重复]
【发布时间】:2016-01-20 01:16:38
【问题描述】:

我在单元格g4中有以下公式:

=xirr(D3:D4,B3:B4)

这会在单元格 g4 中显示值 1523%

我想出现在单元格 g5 中的是:

xirr(D3:D4,B3:B4)

但我不希望公式在单元格 g5 中进行计算。 我只是想看看公式。 我不想把它写出来。 我希望我可以复制和粘贴多个我想做的这样的单元格。

这是我的spreadseet 我正在寻找 excel 或 google 电子表格的解决方案,但我希望它可以应用于两者。

【问题讨论】:

  • 最简单的解决方案是 [vba] 或 [google-spreadsheet-api] UDF,通过 Range.Formula property(或等效项)从单元格返回公式。
  • tks,但我不想在这种情况下使用代码。
  • 好的,很公平。在这种情况下,没有本地工作表公式可以执行此操作。

标签: excel google-sheets


【解决方案1】:

我从 excel 帮助中发现这个很方便

在工作表上显示公式及其值之间切换
按 CTRL + `(重音)。

然后我将我想要的单元格复制到记事本中,并在开始时删除了 = 并将其替换为 ' 这给了我类似 'xirr(D3:D4,B3:B4) 的内容,然后我将其粘贴到 excel 或 google 电子表格中。

【讨论】:

  • 您是否需要添加'tick'作为前缀字符?没有等号,公式只是文本。
  • 好点,' 仅当您想在公式 '=xirr(D3:D4,B3:B4) 中显示 = 符号时才需要这样做,否则 xirr(D3:D4,B3:B4) 将不需要 ' tks
【解决方案2】:

解决方案从 会有所不同,但方法相似。在 VBA 中,在检查单元格的Range.HasFormula property 后,可以使用Range.Formula propertyRange.FormulaR1C1 propertyRange.FormulaLocal propertyRange.FormulaR1C1Local property 返回结果。

以下是用户定义的函数¹(又名 UDF)。实施见脚注。

Function showFormula(rng As Range, _
                     Optional xlRefStyle As Variant, _
                     Optional bPFX As Boolean = False, _
                     Optional bLOC As Boolean = True)

    If IsMissing(xlRefStyle) Then
        xlRefStyle = Application.ReferenceStyle
    ElseIf xlRefStyle <> 1 Then
        xlRefStyle = xlR1C1
    End If

    If rng.Cells(1, 1).HasFormula Then
        Select Case xlRefStyle
            Case xlA1
                If bLOC Then
                    showFormula = _
                      Replace(rng.Cells(1, 1).FormulaLocal, Chr(61), IIf(bPFX, Chr(61), vbNullString))
                Else
                    showFormula = _
                      Replace(rng.Cells(1, 1).Formula, Chr(61), IIf(bPFX, Chr(61), vbNullString))
                End If
            Case xlR1C1
                If bLOC Then
                    showFormula = _
                      Replace(rng.Cells(1, 1).FormulaR1C1Local, Chr(61), IIf(bPFX, Chr(61), vbNullString))
                Else
                    showFormula = _
                      Replace(rng.Cells(1, 1).FormulaR1C1, Chr(61), IIf(bPFX, Chr(61), vbNullString))
                End If
        End Select
    Else
        showFormula = vbNullString
    End If

End Function

B4 中SUMIFS 公式的示例。

        
                   showFormula UDF 语法

在具有德语区域设置(以及 Excel 的 DE-DE 语言版本)的系统上,上述内容将显示为 SUMMEWENNS(B1:B3; A1:A3; "a")

        
                   在 DE-DE 系统中显示公式 UDF 语法


¹ 用户定义函数(又名 UDF)被放入标准模块代码表中。点击Alt+F11,当VBE打开时,立即使用下拉菜单Insert ► ModuleAlt+I,M)。将功能代码粘贴到标题为 Book1 - Module1 (Code) 的新模块代码表中。点击 Alt+Q 返回您的工作表。

【讨论】:

  • 无法让它在 excel 中工作,不知道为什么。当我在单元格中输入 showFormula 时,它没有显示为要使用的函数。
  • 10 次中有 9 次 UDF 被简单地放入了错误的位置(例如,右键单击工作表名称选项卡并查看代码)。有关将其合并到 Excel 工作簿的说明,请参见上文。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-13
  • 1970-01-01
相关资源
最近更新 更多