靖寬瓊
摘要:我們?cè)谑褂霉讲樵兓騾R總多工作表數(shù)據(jù)時(shí)經(jīng)常需要用到整個(gè)工作簿所有工作表的名稱,該文通過案例介紹如何用宏表函數(shù)GET.WORKBOOK來提取Excel工作表名稱。
關(guān)鍵詞:Excel;宏表函數(shù)
中圖分類號(hào):TP317.3 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)27-0195-01
我們?cè)谑褂霉讲樵兓騾R總多工作表數(shù)據(jù)時(shí)經(jīng)常需要用到整個(gè)工作簿所有工作表的名稱,下面通過案例介紹如何用宏表函數(shù)GET.WORKBOOK來提取工作表名稱。
案例展示如圖1所示,2013級(jí)1-9班學(xué)生技能成績(jī)已統(tǒng)計(jì)出來,放在各工作表的E51:J52中,本例是要通過宏表函數(shù)GET.WORKBOOK和查找、引用函數(shù)將各工作表中的數(shù)據(jù)自動(dòng)填入如圖2的統(tǒng)計(jì)表匯總表中。
操作步驟如下:
一、提取工作表名稱過程:
1)打開本例工作簿文件,選擇【公式】-【名稱管理器】命令,彈出“名稱管理器”對(duì)話框。
2)單擊“名稱管理器”對(duì)話框中的“新建”按鈕,打開“新建名稱”對(duì)話框。
3)在“名稱”框里輸入一個(gè)定義名稱(本例輸入SheetName),方便在工作表中引用,并在“引用位置”處輸入公式“=GET.WORKBOOK(1)&T(NOW())”,如圖3所示。
4)點(diǎn)擊“確定”按鈕后返回工作表,在單元格A2中輸入如下公式。
=REPLACE(INDEX(sheetname,ROW(A1))&T(NOW()),1,F(xiàn)IND("]",INDEX(sheetname,ROW(A1))),"")
提示:sheetname的工作表名稱返回的是包括工作簿名稱和工作表名的全名稱。我們用REPLACE函數(shù)是將工作表名以外的所有字符替換掉,即只留下工作表名稱。
5)按公式向下填充,就可以看到順序返回了所有工作表名稱,這樣就可以在其他函數(shù)中引用了。結(jié)果如圖4所示。
二、批量提取表中數(shù)據(jù)
工作表名稱提取出來后,我們就可以套用在公式中,讓指定表中的相關(guān)數(shù)據(jù)乖乖的來到匯總表中了。如圖5所示,在D4單元格中建立公式=INDEX(INDIRECT(""&$K2&"!52:52"),COLUMN(E$52)),確定后即可得出工作表中數(shù)據(jù),分別向右、向下復(fù)制公式,就可得到如圖2的數(shù)據(jù)了。
計(jì)算完后將“統(tǒng)計(jì)匯總表”工作表中的K列數(shù)據(jù)進(jìn)行隱藏即可。
本例中首先利用宏表函數(shù)取出當(dāng)前工作簿中的所有工作表名稱,再利用INDEX函數(shù)依次取出各個(gè)工作表名稱,利用REPLACE函數(shù)將工作表名以外的所有字符替換成空白。這里需要說明的是GET.WORKBOOK宏函數(shù)公式在工作表發(fā)生新建或刪除工作表后不能自動(dòng)更新,所以在公式里用了T(NOW())函數(shù),其意義是讓NOW函數(shù)產(chǎn)生當(dāng)前時(shí)間,再利用T函數(shù)轉(zhuǎn)換成0,從而在不影響提取工作表名稱的前提下,能讓公式可以自動(dòng)重算。
另外,如果是在2007版Excel中使用宏表函數(shù),在保存工作簿時(shí)可選擇另存為97-2003版Excel格式,也就是擴(kuò)展名為.xls的格式。
參考文獻(xiàn):
[1] 起點(diǎn)文化. 圖書:Excel2010函數(shù)與公式速查手冊(cè),2011-02.