可以使用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單元格的值,工作表名用“!”表示。
可以使用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單元格的值,工作表名用“!”表示。