Excel 2007在多行上使用间接引用

时间:2014-06-11 09:37:14

标签: excel excel-formula excel-2007

在Excel 2007中,我使用以下公式来引用同一工作簿中其他工作表中的单元格:

=INDIRECT($B$2&"!A9")

B2包含包含目标单元格的工作表的名称(我想将其转换为模板,因此我不会在公式中输入名称)。该公式有效,但我想在多行(A10,A11,A12 [...] A1000)上使用相同的公式。我在多行但使用不同的字段(B9,C9等)上使用相同的代码,具有各种不同的内容类型(数据,数字,文本)。

该公式的替代版本如下:

='Worksheetname'!A9

但同样,这需要对工作表的名称进行硬编码,这对我来说是不可取的。

由于行的数量庞大,手动编辑不是一个选项:有没有办法改变这个公式,所以我可以轻松地在多行上使用它?最好不使用VBA,但这不是必需的。

3 个答案:

答案 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是我添加的附加编号行,可移动到每张纸的右行。

希望有帮助!