设一个excel主表作为为输入,设副表用等号关联主表每个单元格,但是主表整行移动位置后副表并未移动

主表和副表的表格都是一样的,内容我是在主表里输入,副表的每个单元格都是用等号关联主表的相对应单元格。使用时发现一个问题,比如我更改排序,想把第一行移动到第三行,用排序功能和复制粘贴方式更改的话副表都会跟主表变化,但我用直接移动第一行到第三行或者剪切第一行后插入剪切的单元行到第三行这两种方式时副表并没有变化,查看副表中第一行单元格的输入栏由原来的=主表!a1变为=主表!a3了。请问这个怎么解决?

你意思是主表移动时,副表的公式要求不要变化时吧。追问

是的。我用vlookup同样制作一个副表就没有这种情况,用等号关联的为什么在移动时公式会有变化呢?

追答

那用INDIRECT()把副表中的公式处理一下。
举例说,比如原公式是=A1+B1,这个公式中是引用的真正的单元格,所以会随着主表变化。
如果想办法把A1和B1用文本的方式表示出来,再你函数转化成单元格,那么它就不会变了。
INDIRECT()函数就能办到。
上面的公式可以写成=INDIRECT("A1")+INDIRECT("B1")
如果是跨表引用的单元格,可以这样写:
=INDIRECT("Sheet1!A1")+INDIRECT("Sheet1!B1")

追问

按照你的这种方法试了,但是这个函数好像不能自动填充,右拉下拉公式里单元格位置没改变。看来还是得用vlookup。

追答

噢,要想实现填充效果,需要这么写:
=INDIRECT("Sheet1!A"&ROW(A1))+INDIRECT("Sheet1!B"&ROW(A1))

=INDIRECT("Sheet1!A"&ROW(1:1))+INDIRECT("Sheet1!B"&ROW(1:1))
像你的情况是只引用一个单元格,没有数学运算,可以这么写:
=INDIRECT("Sheet1!A"&ROW(A1))

=INDIRECT("Sheet1!A"&ROW(1:1))
意思就是说,只把列号部分用文本表示出来,行号是动态的,用ROW()函数来取值。
上面的公式中的ROW(A1)或ROW(1:1)表示的是取值为1,若改成ROW(A10)或ROW(10:10),意思是取值为10,这样它会随着下拉动态变化。

追问

奥,懂了,但这种也只能是向下填充是吧?向右还是不行,只能是每一列单独录入公示向下填充是吧?

温馨提示:答案为网友推荐,仅供参考