在制作Excel表格時(shí),一個(gè)工作簿中有很多excel工作表,對(duì)數(shù)據(jù)的查找造成了很不便,這該怎么辦呢?
有人說(shuō)我不會(huì)代碼,但可以通過(guò)插入-超鏈接來(lái)完成,難道不會(huì)代碼就只能一個(gè)個(gè)這樣純手工來(lái)插入嗎?今天不用VBA代碼,告別純手工操作,用函數(shù)公式來(lái)完成。
一、建立目錄并超鏈接
步驟一:選中A1單元格-公式-定義名稱(或按Ctrl+F3調(diào)出名稱管理器-新建)。
步驟二:輸入名稱,引用位置
=IFERROR(MID(INDEX(GET.WORKBOOK(1),ROW(目錄!A1)),FIND(']',INDEX(GET.WORKBOOK(1),ROW(目錄!A1)))+1,100)&T(NOW()),'')
步驟三:在A1單元格輸入=目錄,敲回車,向下填充。
步驟四:
在B1輸入公式:
=HYPERLINK('#'&A1&'!a1','點(diǎn)我跳轉(zhuǎn)')
向下填充。
A列就是該工作簿的所有工作表名稱,B列就是對(duì)應(yīng)的跳轉(zhuǎn)鏈接。
下面分別來(lái)解釋下這兩條公式的意思:
公式一:
=IFERROR(MID(INDEX(GET.WORKBOOK(1),ROW(目錄!A1)),FIND(']',INDEX(GET.WORKBOOK(1),ROW(目錄!A1)))+1,100)&T(NOW()),'')
GET.WORKBOOK(1)是宏表函數(shù),以[Book.xlsx]Sheet的形式返回工作簿中所有工作表名的數(shù)組。
函數(shù)ROW返回引用的行號(hào);函數(shù)INDEX在給定的單元格區(qū)域中,返回特定行列交叉處單元格的值,INDEX(單元格區(qū)域或數(shù)組常量,行號(hào),列號(hào)),該公式省略了第二參數(shù)行號(hào),公式補(bǔ)全應(yīng)該是INDEX(GET.WORKBOOK(1),1,ROW(目錄!A1))。
函數(shù)FIND是為了找到']'的位置,用MID函數(shù)去掉工作簿名,提取工作表名。
函數(shù)T檢測(cè)給定值是否為文本,不是文本則返回雙引號(hào)(空文本);
函數(shù)NOW是易失性函數(shù),T(NOW())并不影響公式結(jié)果,相當(dāng)于刷新,工作表改名或移動(dòng)、增加、刪除工作表時(shí),公式都能自動(dòng)重新計(jì)算。
函數(shù)IFERROR容錯(cuò),比如該工作簿中只有8個(gè)工作表,A8單元格公式繼續(xù)下拉填充時(shí)提取不到工作表名,A9單元格就會(huì)出現(xiàn)錯(cuò)誤值#REF!,用函數(shù)IFERROR容錯(cuò)返回空。
公式二:
=HYPERLINK('#'&A1&'!a1','點(diǎn)我跳轉(zhuǎn)')
函數(shù)HYPERLINK是創(chuàng)建一個(gè)快捷方式或鏈接,該函數(shù)有兩個(gè)參數(shù),第一參數(shù)是指超鏈接的文件的路徑和文件名或是要跳轉(zhuǎn)的單元格地址;第二參數(shù)是指要在超鏈接單元格中顯示的內(nèi)容,可以是指定的字符串或某一單元格的值。
二、返回目錄
點(diǎn)擊B列的超鏈接就可以跳轉(zhuǎn)到對(duì)應(yīng)的工作表,那么該怎么返回目錄呢?
操作步驟:選中工作表1月,按住Shift鍵不放,選中工作表6月,在E1單元格輸入=HYPERLINK('#目錄!a1','返回目錄'),回車,所有選中的工作表都添加了返回目錄的超鏈接。
作者:仰望~星空
聯(lián)系客服