首页 文章

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

提问于
浏览
1

我所拥有的是excel中工作表上数据的后端,这个后端只是A列中的1列数据 .

我有5张必须使用公式简单地引用这些数据:

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

等等

当我将新的数据行插入到工作表1中时,它会在其他工作表上混淆公式 - 就好像其他工作表无法读取已在表单1中输入新的数据行 . 例如,假设我添加第1页中A2和A3之间的新行,其他工作表不会选择此项并保留相同的数据,尽管现在而不是

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

而现在的公式如下:

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

它应保持相同的公式,并应阅读:

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

有没有办法自动纠正?

1 回答

  • 1

    Explanation of what you are really looking for

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

    不要将每个单元视为仅由其行和列位置命名的网格,而应将每个单元视为唯一的数据 . 首先,左上角的单元格(我们将给出唯一的ID cell1)位于A1 . 这是它的位置,而不是它的ID . 如果我们在cell1的左侧插入一个新列,则cell1本身已沿网格移动 . 所以现在cell1恰好位于B1,而不是A1 .

    这被称为直接引用 - 我们通过说='Sheet1'来直接引用特定的单元格!A2 . 看起来我们正在说“拉动位于A2的单元格”但实际上它意味着“当我第一次输入此公式时,找到当前位于A2的单元格的唯一ID . 无论该单元格如何从行或列移动改变,总是指那个细胞“ . 因此,当您注意到时,公式会四处移动 .

    为了避免这种情况(当然,有些时候我们想要避免这种情况)你需要使用间接引用 . 间接引用是一种通过Grid位置永久引用单元格的方法,而不是通过其唯一ID(我们将忽略的间接引用的其他用途) .

    To do what you are asking 就像说:

    =INDIRECT("'Sheet1'!A2")
    

    无论Cell A2如何移动,此公式将始终精确指向基于Grid的位置,而不是唯一的单元ID .

    EDIT to account for the fact that you actually have hundreds of cells to change

    您实际上可以将公式构建为INDIRECT,它将根据计算引用特定单元格 . 我们首先假设您的所有单元格都在A列中,并且您始终希望一张纸中的A1引用另一张纸中的A1,而A5则引用A5 . 这看起来如下:

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

    ROW()为您提供单元格所在公式的行号 . 因此,在第1行中,这将成为A1 . 在第5行,这变成了A5 .

    现在让's assume you want this in all cells from A1 to D500. Here, we obviously can' t硬编码"A" . 所以我们将使用COLUMN()函数,就像上面的ROW()函数一样 . 但是,请注意COLUMN()返回列号,我们通常会引用列字母 . 这可以通过两种方式修复 - 将数字转换为字母[可以完成,但通常更长]或使用INDIRECT允许的R1C1引用样式 .

    R1C1是标准A1参考方法的替代方案 . 例如,R5C4说:'细胞5行向下,4个细胞向右) . 所以使用INDIRECT函数,它看起来像这样:

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

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

相关问题