每天清晨六點(diǎn),準(zhǔn)時(shí)與您相約
Excel數(shù)據(jù)匯總中有這樣一個(gè)問題:在很多個(gè)工作表中,同一項(xiàng)數(shù)據(jù)都位于同一個(gè)單元格,比如:每個(gè)月份的銷量都位于每個(gè)月份工作表的B1單元格,而我們需要把每個(gè)月的銷量匯總到一個(gè)總表中,在該總表中,各個(gè)月的銷量分布為同一列。
這種匯總情況如下動(dòng)圖:
以上示例中,每個(gè)分工作表的命名是有規(guī)律的:從1到12月。但這種有規(guī)律的情況,只是個(gè)例,而普遍存在的是:每個(gè)分工作表的名稱是無規(guī)律可尋的。
比如,以下動(dòng)圖,各個(gè)分表名稱是超市名,而超市名是沒有1——12等數(shù)字規(guī)律的:
上述兩種情況,需要不同的匯總方法。
韓老師一一講述:
在B2單元格輸入公式:
=IFERROR(INDIRECT(ROW(A1)&'月'&'!B1'),'')
公式向下填充,即得所有工作表B1單元格的數(shù)據(jù)。
ROW(A1)&'月':
公式在B2單元格時(shí),ROW(A1)返回1,即得工作表名稱1月,公式向下填充到B3單元格時(shí),該部分變?yōu)镽OW(A2),即得工作表名稱2月,再向下填充,得到其它月份工作表名稱。
ROW(A1)&'月'&'!B1':
連接工作表名稱與單元格,得到:1月B1,2月B1,……12月B1.
INDIRECT(ROW(A1)&'月'&'!B1'):
引用1月B1,2月B1,……12月B1的值。
IFERROR(INDIRECT(ROW(A1)&'月'&'!B1'),''):
如果引用有結(jié)果,返回正確值,否則返回空值。
1、鼠標(biāo)放在第一個(gè)超市名稱的單元格A2,【公式】——【定義名稱】:輸入名稱BM(此名稱可任意?。梦恢锰庉斎牍剑?br>
=INDEX(GET.WORKBOOK(1),ROW(A2))
GET.WORKBOOK(1)是宏表函數(shù),取所有工作表的名稱。
2、在A2單元格輸入公式:
=IFERROR(BM,'')
向下填充,得到所有超市名稱:
IFERROR函數(shù)是容錯(cuò)處理,如果沒有超市名稱,返回空值。
3、在B2單元格輸入公式:
=IFERROR(INDIRECT(A2&'!B1'),'')
公式向下填充,即得所有超市工作表B1單元格的數(shù)值:
4、如果不喜歡上圖中帶工作簿名稱的超市名,可以把公式改為:
=IFERROR(MID(BM,13,9),'')
因?yàn)楣ぷ鞑久Q有12個(gè)字節(jié),所有用公式MID(BM,13,9),從第13個(gè)字節(jié)開始提取超市名稱。其中9是隨意取的長度,根據(jù)超市名稱字符數(shù)的多少,該數(shù)值可靈活改變。
※特別注意:
工作表名稱無規(guī)律的情況,因?yàn)橐昧撕瓯砗瘮?shù),所以文件保存時(shí)要保存成“啟用宏的工作簿.xlsm”。
知識(shí)參考:
聯(lián)系客服