将excel 2013中的一行添加到一组数据中,使另一组公式不正确

我所拥有的是Excel表格数据的后端,这个后端只是A列中的一列数据。

我有5张,必须很简单地用这个公式来引用这个数据:

='Sheet1'!A2 ='Sheet1'!A3 

等等

当我在工作表1中插入新的一行数据时,它会在其他工作表上混淆公式 – 就像其他工作表不能在工作表1中input新的一行数据一样。例如,假设我添加在表格1中的A2和A3之间的新行,其他表格不会select它并保留相同的数据,而不是

 ='Sheet1'!A2 ='Sheet1'!A3 

相反,公式现在读取:

 ='Sheet1'!A2 ='Sheet1'!A4 

在哪里应该保持相同的公式,并应该阅读:

 ='Sheet1'!A2 ='Sheet1'!A3 ='Sheet1'!A4 

有没有办法自动纠正这一点?

解释你真正在寻找什么

您误解了Excel处理单元格引用的基石之一。

不要将每个单元格视为一个由其行和列位置命名的网格,而应将每个单元格视为一个独特的数据。 首先,左上方的单元格(我们将给出唯一的ID单元格1)位于A1。 这是它的位置,而不是它的ID。 如果我们在cell1的左边插入一个新的列,cell1本身已经沿着网格移动了。 所以现在cell1碰巧位于B1,而不是A1。

这就是所谓的直接引用 – 我们直接通过说='Sheet1'!A2来引用特定的单元格。 看起来我们的意思是“拉出位于A2的单元格”,但实际上它的意思是“当我第一次input这个公式时,find当前位于A2的单元格的唯一ID,不pipe该单元格如何从行或列移动改变,总是指那个细胞“。 因此,公式会随着您的注意而移动。

为了避免这种情况发生(当然,当我们想要避免这种情况时,您已经看到了这种情况),您需要使用间接引用。 间接引用是一种通过其网格位置永久引用单元格的方法,而不是通过其唯一的ID(还有其他我们将忽略的间接引用)。

做你所问的只是说:

 =INDIRECT("'Sheet1'!A2") 

无论Cell A2如何移动,该公式总是精确地指向基于Grid的位置,而不是唯一的Cell ID。

编辑,以说明你实际上有数百个细胞改变的事实

你实际上可以build立一个公式到INDIRECT,它将根据一个计算来引用一个特定的单元格。 我们首先假设你所有的单元格都在列A中,并且总是希望一个表单中的A1引用另一个表单中的A1,而A5引用A5。 这看起来如下所示:

 =INDIRECT("'Sheet1'!A"&ROW()) 

ROW()给出了单元格所在公式的行号。所以在第一行中,这变成了A1。 在第5行,这成为A5。

现在让我们假设你需要从A1到D500的所有单元格。 在这里,我们显然不能硬编码“A”。 所以我们将使用COLUMN()函数,就像上面的ROW()函数一样。 但是请注意,COLUMN()返回列 ,正如我们通常所指的那样是列字母 。 这可以通过两种方式来解决 – 或者将数字转换为一个字母[可以完成,但通常更长],或者使用INDIRECT允许的R1C1引用风格。

R1C1是标准A1方法的替代方法。 例如R5C4说:'单元格5行,右边4个单元格。 因此,使用INDIRECT函数,这看起来像这样:

 =INDIRECT("'Sheet1'!R"&ROW()&"C"&COLUMN,FALSE) 

通过在INDIRECT后面添加“,FALSE”,我们告诉Excel使用R1C1的引用方法。