在制作Excel表格时,一个工作簿中有很多excel工作表,对数据的查找造成了很不便,这该怎么办呢?
有人说我不会代码,但可以通过插入-超链接来完成,难道不会代码就只能一个个这样纯手工来插入吗?今天不用VBA代码,告别纯手工操作,用函数公式来完成。
一、建立目录并超链接
步骤一:选中A1单元格-公式-定义名称(或按Ctrl+F3调出名称管理器-新建)。
步骤二:输入名称,引用位置
=IFERROR(MID(INDEX(GET.WORKBOOK(1),ROW(目录!A1)),FIND(']',INDEX(GET.WORKBOOK(1),ROW(目录!A1)))+1,100)&T(NOW()),'')
步骤三:在A1单元格输入=目录,敲回车,向下填充。
步骤四:
在B1输入公式:
=HYPERLINK('#'&A1&'!a1','点我跳转')
向下填充。
A列就是该工作簿的所有工作表名称,B列就是对应的跳转链接。
下面分别来解释下这两条公式的意思:
公式一:
=IFERROR(MID(INDEX(GET.WORKBOOK(1),ROW(目录!A1)),FIND(']',INDEX(GET.WORKBOOK(1),ROW(目录!A1)))+1,100)&T(NOW()),'')
GET.WORKBOOK(1)是宏表函数,以[Book.xlsx]Sheet的形式返回工作簿中所有工作表名的数组。
函数ROW返回引用的行号;函数INDEX在给定的单元格区域中,返回特定行列交叉处单元格的值,INDEX(单元格区域或数组常量,行号,列号),该公式省略了第二参数行号,公式补全应该是INDEX(GET.WORKBOOK(1),1,ROW(目录!A1))。
函数FIND是为了找到']'的位置,用MID函数去掉工作簿名,提取工作表名。
函数T检测给定值是否为文本,不是文本则返回双引号(空文本);
函数NOW是易失性函数,T(NOW())并不影响公式结果,相当于刷新,工作表改名或移动、增加、删除工作表时,公式都能自动重新计算。
函数IFERROR容错,比如该工作簿中只有8个工作表,A8单元格公式继续下拉填充时提取不到工作表名,A9单元格就会出现错误值#REF!,用函数IFERROR容错返回空。
公式二:
=HYPERLINK('#'&A1&'!a1','点我跳转')
函数HYPERLINK是创建一个快捷方式或链接,该函数有两个参数,第一参数是指超链接的文件的路径和文件名或是要跳转的单元格地址;第二参数是指要在超链接单元格中显示的内容,可以是指定的字符串或某一单元格的值。
二、返回目录
点击B列的超链接就可以跳转到对应的工作表,那么该怎么返回目录呢?
操作步骤:选中工作表1月,按住Shift键不放,选中工作表6月,在E1单元格输入=HYPERLINK('#目录!a1','返回目录'),回车,所有选中的工作表都添加了返回目录的超链接。
作者:仰望~星空
联系客服