Excel在复制时更改公式中的string

我在公式中有一个string(“A1”)的单元格编号,这需要在复制时相对更改,就像自动执行正常的单元格引用一样。 所以我不必访问400个单元格并手动更改它们。 任何方式我可以pipe理这个? 谢谢您的帮助。

我在400个单元格中使用的公式:

=IF(IDENTIC($M$10;"Entries are correct.");IF(ISNUMBER(FIND("A1";$N$5));"S1";IF(ISNUMBER(FIND("A1";$N$6));"S2";IF(ISNUMBER(FIND("A1";$N$7));"S3";IF(ISNUMBER(FIND("A";$N$8));"S4";IF(ISNUMBER(FINDEN("A1";$N$9));"S5";"")))));"") 

我不想在所有400个单元格中将每个单元格都作为文本进行更改,它应该相对于正常的单元格引用进行相对更改。

要在Excel中获取单元格引用作为string,您可以使用CELL函数 :

 =CELL("address";A1) 

由于函数的第二个参数是实际的单元格引用,所以如果复制并粘贴此公式,它将自动更新。

请记住,这将返回一个包含绝对地址的string,所以它将返回"$A$1" ,而不是"A1"

CELL(…)将工作。

更一般地说,您也可以使用连接来将公式构build为string。 当你有一个列表的东西,你想有公式引用这些名字,这可能是有用的。 或者在你的情况下,它也可以工作。

build立公式为带连接符的string,然后search和replace

首先,我尽可能多地build立公式,以便总体结构已经形成(只有你想要改变的参考不会是最终的):

以你的案例为例:

在这里输入图像说明

然后,我把这个几乎形成的公式包装成一个CONCATENATE()。 然后我会安排一些参考资料,我将在CONCAT()中指向自动递增到我实际上想包括在我的公式中的文本。 像这样的东西:

 =CONCATENATE("IF(FIND(""",A1,"""$A$4),TRUE, FALSE)") 

A1,是指实际的单元格,所以单元格的内容就是我的公式中所包含的内容。 然后,您可以一路增加,为每个单元格(您的案例中的400个单元格)build立适当的公式。 你需要三元组“”“,因为你想要包括A1,B1等……是文本引用,而不是单元格。

在这里输入图像说明

然后,所有你需要做的就是select所有的公式,复制它们,并确保select过去作为值,说下线(保持连接完好,所以你可以稍后编辑它,如果需要)。 然后用所有选定的粘贴线,您使用查找和replace在公式的开头添加“=”符号。 在查找和replace方面最好是太具体,所以find“IF(F”),并用“= IF(F”或类似的replace,然后发生魔法:

在这里输入图像说明

你可以看到A1,C1,D1已经返回TRUE,其余的都是#VALUE! 因为find方法找不到string。