在Excel表格插入工作表目錄,是一個(gè)老生常談的技巧。但大數(shù)多用戶只會(huì)套用,并不懂其中的原理,畢竟制作過(guò)程太過(guò)復(fù)雜。所以,離開(kāi)了教程也做不出來(lái)了。
為了讓大家可以隨時(shí)隨地做自已做目錄,今天蘭色就剖析一下制作Excel目錄的過(guò)程。
制作過(guò)程:
1、公式 - 定義名稱(chēng):shname
=MID(GET.WORKBOOK(1),FIND("]",GET.WORKBOOK(1))+1,99)&T(NOW)
乖乖,好多陌生的函數(shù)....新手看了這個(gè)公式估計(jì)要暈掉。別急,蘭色一步步幫大家分析。
在Excel中有一類(lèi)函數(shù)叫 宏表函數(shù),功能非常強(qiáng)大,可以提取Excel或電腦的信息,比如提取單元格顏色,提取文件目錄。今天要用到的是一個(gè)可以提取所有工作表名稱(chēng)的函數(shù): Get.Workbook
由于宏表函數(shù)只能在定義名稱(chēng)中使用,所以必須先定義名稱(chēng):
公式 - 定義名稱(chēng) - 輸入 自定義的名稱(chēng) - 在引用位置輸入公式:
=get.workbook(1)
注: get.workbook的參數(shù)是 1時(shí),可以提取所有工作表名稱(chēng)
定義的名稱(chēng)可以在單元格公式中直接使用,比如輸入=Shname即可返回所有工作表名稱(chēng)。( 選中公式按F9可以查看所有值)
由于返回的工作表名稱(chēng)前含工作簿名稱(chēng)“ [抖音Excel技巧集.xlsm]”,所以下一步把用函數(shù)它刪除:
用 Find函數(shù)查找"]'的位置,然后用 MID函數(shù)截取。
=MID(GET.WORKBOOK(1),FIND("]",GET.WORKBOOK(1))+1,99)
怎么把工作表名稱(chēng)顯示到一列中?
可以用 Index函數(shù)+ row函數(shù)提取:index可以根據(jù)位置提取數(shù)據(jù),Row函數(shù)可以在向下復(fù)制時(shí)生成1,2,3,4...序數(shù)
=INDEX(shname,ROW(A1))
名稱(chēng)有了,下一步是給工作表名稱(chēng)添加鏈接,這一步要用
=Hyperlink(#工作表名稱(chēng)!單元格地址,工作表名稱(chēng))
即:
=HYPERLINK("#"&INDEX(shname,ROW(A1))&"!a1",INDEX(shname,ROW(A1)))
當(dāng)公式超出工作表個(gè)數(shù)時(shí),再?gòu)?fù)制公式會(huì)返回錯(cuò)誤值,所以需要再外套 IFerror函數(shù)。
=IFERROR(HYPERLINK("#"&INDEX(shname,ROW(A1))&"!a1",INDEX(shname,ROW(A1))),"")
好像很完美了? No...當(dāng)你修改、刪除工作表時(shí),目錄并不會(huì)自動(dòng)更新:
問(wèn)題出在哪?原來(lái)我們?cè)诙x名稱(chēng)時(shí)少了兩個(gè)函數(shù): T和 Now
- Now 函數(shù)可以生成自動(dòng)更新的時(shí)間,可以讓公式強(qiáng)制刷新
- T 函數(shù)則可以把數(shù)字(時(shí)間也是數(shù)字)轉(zhuǎn)換為空白
所以 T(Now)即可以讓公式強(qiáng)制刷新( 雙擊或其他單元格內(nèi)容更新),又不影響單元格的值。
接下來(lái)修改定義的名稱(chēng):
至此,目錄的公式設(shè)置完成。無(wú)論添加、刪除工作表或修改工作表名稱(chēng),雙擊任一個(gè)單元格或任一單元格內(nèi)容發(fā)生修改,目錄都會(huì)自動(dòng)更新。
完成了嗎?No! 我們還少最后一步,把工作簿另存為啟用宏的工作簿。
蘭色說(shuō):盤(pán)點(diǎn)了一下,制作目錄共用了兩大類(lèi)9個(gè)函數(shù),對(duì)新手真的有點(diǎn)難度,所以要想隨時(shí)隨地制作目錄,你還真的需要理解這些函數(shù)的用法。