向现有公式添加函数

向现有公式添加函数

我希望能够修改现有的公式并批量添加新函数。例如,我最初编写了一个计算

=Sheet1!D38-Sheet1!E38

并想添加一个,=IFERROR使其看起来像这样:

=IFERROR(Sheet1!D38-Sheet1!E38, 0%)

当您有一两个时,手动完成相对容易,但我有一整篇包含公式的文档需要修改。

有没有一种简单的方法可以将新函数添加到现有公式中,而不用逐一检查所有公式?

给出的例子是随机的;我可能必须用更长更复杂的公式来做,比如=COUNTIFS

快的我之前尝试过的修复包括:

  1. =查找公式开头的所有内容并将其替换为#- 这会将公式转换为纯文本
  2. 将新公式的第二部分(即最后出现的部分)复制并粘贴到每个单元格中。在本例中,公式为, 0%)
  3. #用替换=IFERROR(得到公式,并得到我想要的附加信息

但这不是一个非常有效的方法。

答案1

您可以通过 2 个步骤进行替换,无需手动编辑:
1- 搜索并替换==IFERROR(
这会产生大量错误)
2- 搜索并替换行尾,0%)
输入以下 2 个按键作为行尾:
Control-M
Control-J

请注意,您在输入时不会看到任何字符,但它可以起作用。

答案2

我通常使用正则表达式插件比内置搜索/替换更灵活地处理文本。

它提供了查找/替换以及带有正则表达式的工作表功能。

在您的示例中,您需要

  • 寻找:=(.*)
  • 替换为:=iferror($1,0%)

请注意,此插件不具备仅在选择中替换的功能,因此您需要小心编写足够具体的外观表达。

答案3

假设我们有一组需要批量编辑的单元格:

在此处输入图片描述

我们选择单元格并运行这个简短的宏:

Sub FixFormula()
'
'   hi-light the cells you wish to process
'
    Dim r As Range, rngF As Range, s As String

    Set rngF = Selection.Cells.SpecialCells(xlCellTypeFormulas)
    For Each r In rngF
        s = "(" & Mid(r.Formula, 2) & ")"
        r.Formula = "=IFERROR(" & s & ","""")"
    Next r
End Sub

并且所有公式都将转换为:

=A1/B1

到:

=IFERROR((A1/B1),"")

答案4

A暂时的解决方案来演示可能的修复;见图片。但是对我的评论的规定

复制/粘贴公式,单击并按住的方法。 在此处输入图片描述

相关内容