Excel表格中目錄怎麼生成(excel表格怎樣做目錄)
在Excel表格插入工作表目錄,是一個老生常談的技巧。但大數多使用者只會套用,並不懂其中的原理,畢竟製作過程太過複雜。所以,離開了教程也做不出來了。
為了讓大家可以隨時隨地做自已做目錄,今天小編就剖析一下製作Excel目錄的過程。
製作過程:
1、公式 - 定義名稱:shname
=MID(GET.WORKBOOK(1),FIND("]",GET.WORKBOOK(1)) 1,99)&T(NOW())
乖乖,好多陌生的函式....新手看了這個公式估計要暈掉。別急,小編一步步幫大家分析。
在Excel中有一類函式叫巨集表函式,功能非常強大,可以提取Excel或電腦的資訊,比如提取單元格顏色,提取檔案目錄。今天要用到的是一個可以提取所有工作表名稱的函式:Get.Workbook
由於巨集表函式只能在定義名稱中使用,所以必須先定義名稱:
公式 - 定義名稱 - 輸入自定義的名稱 - 在引用位置輸入公式:
=get.workbook(1)
注: get.workbook的引數是1時,可以提取所有工作表名稱
定義的名稱可以在單元格公式中直接使用,比如輸入 =Shname即可返回所有工作表名稱。(選中公式按F9可以檢視所有值)
由於返回的工作表名稱前含工作簿名稱“[抖音Excel技巧集.xlsm]”,所以下一步把用函式它刪除:
用Find函式查詢"]'的位置,然後用MID函式擷取。
=MID(GET.WORKBOOK(1),FIND("]",GET.WORKBOOK(1)) 1,99)
怎麼把工作表名稱顯示到一列中?
可以用Index函式 row函式提取:index可以根據位置提取資料,Row函式可以在向下複製時生成1,2,3,4...序數
=INDEX(shname,ROW(A1))
名稱有了,下一步是給工作表名稱新增連結,這一步要用
=Hyperlink(#工作表名稱!單元格地址,工作表名稱)
即:
=HYPERLINK("#"&INDEX(shname,ROW(A1))&"!a1",INDEX(shname,ROW(A1)))
當公式超出工作表個數時,再複製公式會返回錯誤值,所以需要再外套IFerror函式。
=IFERROR(HYPERLINK("#"&INDEX(shname,ROW(A1))&"!a1",INDEX(shname,ROW(A1))),"")
好像很完美了? No...當你修改、刪除工作表時,目錄並不會自動更新:
問題出在哪?原來我們在定義名稱時少了兩個函式:T和Now
- Now函式可以生成自動更新的時間,可以讓公式強制重新整理
- T函式則可以把數字(時間也是數字)轉換為空白
所以T(Now())即可以讓公式強制重新整理(雙擊或其他單元格內容更新),又不影響單元格的值。
接下來修改定義的名稱:
至此,目錄的公式設定完成。無論新增、刪除工作表或修改工作表名稱,雙擊任一個單元格或任一單元格內容發生修改,目錄都會自動更新。
完成了嗎?No! 我們還少最後一步,把工作簿另存為啟用巨集的工作簿。
注:盤點了一下,製作目錄共用了兩大類9個函式,對新手真的有點難度,所以要想隨時隨地製作目錄,你還真的需要理解這些函式的用法。