Excel中怎么用才能引用多个工作表中同一位置单元格中的数据到一张工作表的同一列?
1、比如在汇总工作表中需要从事引用第一季度,第二季度,第三季度工作表的F13单元格。首先在第一季度工作表中输入100
2、同时在第二季度工作表中同样输入一个数字,这里还是输入100。
3、接着在第三季度工作表中同样输入一个数字,这里还是输入100,以方便于大家记忆和验证汇总表计算的正确性。
4、然后在汇总表中需要显示计算结果的单元格中输入计算公式,“第一季度:第三季度!”表示的是引用第一季度到第三季度这几张工作表,F13表示的是引用这几种工作表的具体单元格。
5、公式输入完毕之后单击“ENTER”键,可以看到其计算结果是300,正确。
6、如果不嫌弃麻烦也可以垮单元格逐个引用,其计算公式如下所示:
7、同样也可以得到应用多个工作表同一单元格的数值,其结果也是正确的。
可以使用INDIRECT函数来返回引用。如果表名有规律,如Sheet1、Sheet2……SheetN,可以直接引用,如果表名没规律,得先用宏表函数取出表名,再引用。
以下图为例,假设工作表分别为Sheet1-Sheet5,各表的A1单元格分别为1-5,汇总表在后面,要把各分表的A1单元格取到汇总表。
方法一:表名有规律的方法。
B1 =IFERROR(INDIRECT("sheet"&ROW()&"!A1"),"")
公式下拉复制,就可以了,如上图。
方法二:表名没有规律的方法。
步骤1:定义名称 x 如下
=REPLACE(GET.WORKBOOK(1),1,FIND("]",GET.WORKBOOK(1)),"")
步骤2:A1输入公式
=IF(ROW()>COLUMNS(x)-1,"",INDEX(x,ROW()))
公式下拉到足够容纳所有工作表名
步骤3:C1输入公式
=IFERROR(INDIRECT(A1&"!A1"),"")
公式下拉,结果如下图
知识扩展:
1、GET.WORKBOOK(1)是4.0宏表函数,以“[工作簿1.xlsm]Sheet1”的形式返回所有工作表名的水平数组,再用REPLACE函数把工作簿名去掉,只保留所有工作表名,再用INDEX函数逐个取出。
2、由于使用了4.0宏表函数,因此,工作簿必须保存为启用宏的工作簿(*.xlsm),不能保存为不启用宏的工作簿格式(*.xlsx)。
3、INDIERECT函数的用途就是,返回由文本字符串指定的引用,如=INDIRECT("Sheet1!A1"),就是返回Sheet1工作表的A1单元格的值,工作表名用“!”表示。
起始输入公式的单元格是第一行
被引用数据所在位置与显示位置不同。
比如在表1中A1引用TC001中的B3数据;在表1中A2引用TC002中的B3数据;在表1中A3引用TC003中的B3数据;
=INDIRECT("TC"&TEXT(ROW(),"000\!\B3"))