通过仅更改公式中的特定数据来批量替换单元格



我有一张包含以下公式的单元格的表格:

=IF(LEN('API Tool'!P358(,IF('API Tool'!P358/POWER(10,18(>C3+(C3*25/100(;API错误",'API工具!P358/POWER(10,18((,(

我想批量替换它们,并向C单元格引用添加间接函数,如下所示(检查粗体字母(:

=IF(LEN('API Tool'!P358(,IF('API Tool'!P358/POWER(10,18(>=间接("$C3"(+(间接("$C3"(*25/100(;API错误",'API工具'!P159/功率(10,18((,(

是否有任何脚本或正则表达式可以用于批量替换所有?

感谢

首先,使用$"带有INDIRECT的符号是多余的,在这种情况下,也只是使事情复杂化引号之间的每个间接引用的每个部分本质上是一个锁定引用。

也就是说,如果您想要进行的更改仅在特定范围内,请首先选择该范围。如果它们在整个工作表中或整个电子表格中,请转到下一步。

点击Ctrl-H(或Cmd-H或编辑>查找并替换(,调出";"查找和替换";对话框。

在";查找";字段,输入以下内容:

([^A-Z])(Cd+)

在";替换为";字段,输入以下内容:

$1INDIRECT("$2")

确保将";搜索";位置以匹配您想要的范围。(如果你选择了一个特定的范围,然后在这里选择"特定范围",你当前选择的范围将被填充。(

选中复选框中的";使用正则表达式搜索";以及";同时在公式中搜索"这也将自动选择";匹配大小写";(因为正则表达式区分大小写(。

单击";替换所有";按钮

REGEX必须包括(并避免(列可能偶然包含C的情况,例如对列AC的引用,这就是为什么它有两个部分:一个确保C前面的字符不是另一个有效的列字母,另一个抓住有问题的直接部分。

此外,虽然这不是你要求的内容,但我提醒你仔细思考为什么要用间接引用取代这些直接引用。很难想象在什么情况下有必要这样做。一旦将它们更改为INDIRECT,如果在任何位置添加或删除列或行,这些引用将不会相对于这些更改进行调整——这意味着此后每个引用都会指向错误的位置。

相关内容

最新更新