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