Excel2010中让index函数自动更新的技巧介绍
脚本之家
Excel中以工作簿目录为例,如果要为工作表(sheet)做一个目录,我们会使用函数:=INDEX(GET.WORKBOOK(1),!$A1)
公式中 GET.WORKBOOK(1) 用于提取当前工作簿中所有工作表名称,INDEX 函数会按 A1 中的数字决定要显示第几张工作表的名称。
但由于宏表函数 GET.WORKBOOK(1) 在数据变动时不会自动重算,目录无法自动更新。怎么办呢?
这时,我们可以使用易失性函数。例如表示当前时间的函数 NOW(),借助于当前时间的不断变化来实现对任何变化的强制计算。再加上函数 T(),将 NOW() 产生的数值转为空文本以免影响原公式结果。
所以改进后的 index 函数表现为:=INDEX(GET.WORKBOOK(1),!$A1)&T(NOW())
注:宏表函数 GET.WORKBOOK,不能直接在单元格公式中使用,必须通过才能起作用。
操作步骤:
①如图所示,选中 B1 单元格,切换到“公式”选项卡,单击“定义名称”。
②在弹出的新建名称窗口中输入名称,如“目录”。在引用位置中则输入公式=INDEX(GET.WORKBOOK(1),!$A1)&T(NOW()),单击“确定”即可定义出一个名为“目录”的名称。
③回到当前页面后,选中B1单元格,在“用于公式”下拉菜单中,单击刚刚新建的“目录”公式。
④单击单元格右下角的十字形图标下拉拖出很多行(有几个sheet就拖出几行)。这时候在B1到Bn行,会显示出每个sheet的字符串名称。
公式中 GET.WORKBOOK(1) 用于提取当前工作簿中所有工作表名称,INDEX 函数会按 A1 中的数字决定要显示第几张工作表的名称。
但由于宏表函数 GET.WORKBOOK(1) 在数据变动时不会自动重算,目录无法自动更新。怎么办呢?
这时,我们可以使用易失性函数。例如表示当前时间的函数 NOW(),借助于当前时间的不断变化来实现对任何变化的强制计算。再加上函数 T(),将 NOW() 产生的数值转为空文本以免影响原公式结果。
所以改进后的 index 函数表现为:=INDEX(GET.WORKBOOK(1),!$A1)&T(NOW())
注:宏表函数 GET.WORKBOOK,不能直接在单元格公式中使用,必须通过才能起作用。
操作步骤:
①如图所示,选中 B1 单元格,切换到“公式”选项卡,单击“定义名称”。
②在弹出的新建名称窗口中输入名称,如“目录”。在引用位置中则输入公式=INDEX(GET.WORKBOOK(1),!$A1)&T(NOW()),单击“确定”即可定义出一个名为“目录”的名称。
③回到当前页面后,选中B1单元格,在“用于公式”下拉菜单中,单击刚刚新建的“目录”公式。
④单击单元格右下角的十字形图标下拉拖出很多行(有几个sheet就拖出几行)。这时候在B1到Bn行,会显示出每个sheet的字符串名称。