我在第一张纸中引用了一系列单元格,以构建第二张纸。我经常在第一张纸的中间添加行。在引用第一个工作表的第二个工作表中,在我添加了一行的单元格编号中有一个跳过。
第1页:包含我的主列表,已更新
向SHEET 1添加新行(A3):
第2页:参考表1并浏览行
但是,你可以看到第3行应该包含添加的行'Rachael',而它已经向下移动到Sheet1!A4并且一起错过了A3。
我该如何解决这个问题?
答案 0 :(得分:1)
尝试在sheet2中使用此公式: (将其添加到Sheet2,A2,然后将其复制。)
=offset(sheet1!$A$1,row(a2)-1,column(a2)-1,1,1)
答案 1 :(得分:0)
要直接回答您的问题 - 您可以使用INDIRECT功能实现此目的。 INDIRECT允许您通过公式动态引用单元格,该公式不一定遵循Excel的“跟踪”规则。请记住,通常,Excel为每个单元格提供一个“唯一ID”,当您最初引用任何单元格时,内部逻辑指向该特定“唯一ID”,可见引用指向“A1”样式引用细胞。这样做是为了您可以插入行和列而不会无意中丢失所有引用。
做我要展示的内容通常不是一个好主意,因为你失去了直接引用提供的固有好处(通常:更容易维护)。但是,为了向您展示它是如何工作的,请参见下文[这假设您需要一个标题行,并且结果表中的列应与原始数据表中的列匹配]:
=INDIRECT("Sheet1!R"&ROW()+1&"C"&COLUMN())
答案 2 :(得分:0)
尽量避免使用公式volatilty,这意味着公式会重新计算工作表的更改,即使其先例没有更改。
在工作表中包含大量易失性公式可能会导致性能问题。
任何使用OFFSET()函数或INDIRECT()函数的公式都会自动变为volatile。但是在这两个函数中,INDIRECT比OFFSET差得多。两者都是易变的,但OFFSET非常快,而INDIRECT非常慢。
不要使用间接()。
最好的选择是INDEX()函数。它甚至比OFFSET功能更快,而且INDEX不易变。
所以在第二张的单元格A2中使用以下公式:
=INDEX(Sheet1!$1:$1048576,ROW(),COLUMN())
...然后根据需要复制。