在Excel 2007中,我使用以下公式来引用同一工作簿中其他工作表中的单元格:
=INDIRECT($B$2&"!A9")
B2包含包含目标单元格的工作表的名称(我想将其转换为模板,因此我不会在公式中输入名称)。该公式有效,但我想在多行(A10,A11,A12 [...] A1000)上使用相同的公式。我在多行但使用不同的字段(B9,C9等)上使用相同的代码,具有各种不同的内容类型(数据,数字,文本)。
该公式的替代版本如下:
='Worksheetname'!A9
但同样,这需要对工作表的名称进行硬编码,这对我来说是不可取的。
由于行的数量庞大,手动编辑不是一个选项:有没有办法改变这个公式,所以我可以轻松地在多行上使用它?最好不使用VBA,但这不是必需的。
答案 0 :(得分:3)
如果您的记录位于两个工作表中的相同单元格中,则可以使用以下内容:
=INDIRECT($B$2&"!"&ADDRESS(ROW();COLUMN()))
如果现在,您可以使用给定的 ADDRESS 功能
轻松抵消它们P.S。请注意使用INDIRECT函数会降低工作簿上的计算性能(很少有函数可以,但是如果你有10,000个函数那么你可能会看到一些延迟)
答案 1 :(得分:0)
如果你想为几个列使用相同的公式,你可以包括这样的东西:
=INDIRECT("'"&$B$2&"'!"&ADDRESS(MATCH($B4;INDIRECT(CONCATENATE ($B$2;"!";"B:B"));0);MATCH(B$3;INDIRECT(CONCATENATE($D$2;"!";"A3:AR3"));0)))
B2=reference to sheet name
B4=first row for your data
B3=Column header
答案 2 :(得分:0)
对于那些想要从具有相同布局(并链接了每个单元格)的多张工作表中提取所有相同数据列的人来说,花了我几个小时才能解决,但实际上可以用一种相对简单的方法来解决: = OFFSET(INDIRECT(“'”&G $ 2&“'!l7”),$ A6,0,1,1)
间接部分将您带到正确的工作表和正确的单元格G2,H2 ...具有工作表名称(请注意工作表名称带有空格,您将需要使用',这是我的工作簿的情况) ),以及该工作表的L7单元格,我希望L8,L9,---- L200全部通过; 偏移可帮助您导航行的范围,A6是我添加的附加编号行,可移动到每张纸的右行。
希望有帮助!