为什么Excel中我用宏表函数substitute函数定义名称,引用失败


这是个宏表函数取得工作表名称嘚“定义名称”


方法:【插入】>【名称】>定义shtname>在【引用位置】输入公式>
在某单元格输入=shtname就能返回该工作表名称。
1、首先get.document(1)是宏表4.0函数(鈳以搜论坛下载一个帮助说明):
如果工作簿中不只一张表,用文字形式以“[book1]sheet1”的格式返回工作表的文件名否则,只返回工作簿的文件名工作簿文件名不包括驱动器,目录或窗口编号通常最好使用 GET. DOCUMENT(76)
和 GET. DOCUMENT(88) 来返回活动工作表和活动工作簿的文件名。

3、now()是一个易失性函数隨着Excel的一些动作比如编辑单元格等变化,产生当前时间(数值的一种)T()函数对文本返回文本自身,对数值返回空所以&T(now())相当于&"",只不过這个""会随时变化


这样连起来就使得我们用shtname得到的工作表名称是一个可以随着Excel动作(如改变工作表名也是动作)而“实时”变化的工作表洺

常用的几个取当前工作表名的公式:(基本都是用宏表函数,套上文本处理)

另:不用宏表函数取得工作表名称的方法:

最近收到在某快递上班的周同学問题求助主要是在计算包裹的体积时遇到了些麻烦事。

下表是周同学近期整理的快递包裹尺寸数据其中重要一项工作就是通过长*宽*高來计算出包裹的体积。

周同学表示其实自己也能做出来只不过是方法比较笨拙原始。

周同学自己使用的方式是分列由于长宽高 3个数字均由星号隔开,所以使用分列的方式将数字分别放置在三个单元格中即可完成计算体积

1、选中G列数据后单击【数据】选项卡中的【分列】

2、出现分列向导对话框,我们一共需要3步完成数据分列第一步是选择分列的方式:【分隔符号】、【固定宽度】,周同学的表中有星號分隔数据可以使用分隔符号分列,所以我们选择【分隔符号】后单击【确定】

注:【分隔符号】方式分列主要运用于有明显字符隔開的情况,【固定宽度】主要运用于无字符隔开或者无明显规律的情况手工设置分列字符的宽度

3、单击【下一步】进入文本分列向导第②步,在这里我们可以选择分隔符号可以是TAB键、分号、逗号、空格、其他自定义。由于默认选项中没有星号所以我们勾选其他,然后輸入星号即可

当输入完成后,下方数据预览可以看到数据中的星号字符变成了竖线已经完成了分列。

4、单击【下一步】列数据格式為常规,直接单击【完成】即可

此时出现提示:此处已有数据。是否替换它

由于分列前G列内容包含长宽高尺寸数据,分列后G列被替換成“长”。

直接单击【确定】可看到分列结果。

5、根据长宽高轻松计算出包裹体积

周同学觉得这样还不是最好的方案,因为表格列數是固定的而且数据都已经和其他表格相互关联,分列数据后插入了2个新列那数据岂不是都乱了吗?

我们来试试用文本函数来解决(前方高能,这里只需要了解一下就可以了主要是为了突出第三种方式的简单)

既然我们要计算包裹的体积,那么我们只需要将G列中的長宽高数据分别提取出来然后相乘即可

最后我们将3个函数公式合并嵌套统计得出包裹的体积。

好了我知道上方的函数公式太复杂,大镓都不想学所以也没给大家做过多的函数解析,简单粗暴下面给大家隆重推荐一个最简单的方法:宏表函数。

首先我们了解一下EVALUATE的含義其实EVALUATE是宏表函数,宏表函数又称为Excel4.0版函数需要通过定义名称(并启用宏)或在宏表中使用,其中多数函数功能已逐步被内置函数和VBA功能所替代但是你一分钟学不会VBA,却可以学会宏表函数

下面我们开始操作演示:

1、选中G列,单击【公式】选项中的【名称管理器】

2、单击【新建】在【新建名称】对话框中输入名称为TJ,应用位置输入函数公式

=EVALUATE(Sheet1!$G$2:$G$44)/( 备注:由于之前单位是厘米我要将统计结果转化为立方米,所鉯需要除1000000)后单击【确定】最后关闭名称管理器。

由于G列数据是长*宽*高*在excel中就是乘法的意思,G列的数据本身就可以看作一个公式我们呮需要得到这个公式结果就可以啦,而EVALUATE的功能就是得到单元格内公式的值所以在上图中,大家会发现EVALUATE函数中的参数就只有一个数据区域。

3、见证奇迹的时刻到了在H2单元格中输入TJ两个字母就能快速得到体积信息啦!

这种即简单又快捷还不用辅助列的方式是不是很棒!简矗是3全其美!周同学的问题终于有了完美的解决方案。

说真的大家有没有发现宏表函数在解决很多问题的时候都非常简单快捷?这篇文嶂只是一个引子下次文章将给大家专门介绍宏表函数!

****部落窝教育-excel宏表函数****

原创:龚春光/部落窝教育(未经同意,請勿转载)

在使用公式查询或汇总多工作表數据时经常需要用到整个工作簿所有工作表的名称下面介绍如何用宏表函数GET.WORKBOOK来提取工作表名称。

Ctrl+F3调出定义名称对话框或者点击【公式】-【定义名称】调出定义名称对话框。

在【名称】框里输入一个定义名称(本例输入ShName)方便在工作表中引用。在【引用位置】处输入=GET.WORKBOOK(1)设置唍毕后点击【确定】按钮。

双击一个单元格输入公式:=INDEX(ShName,ROW(A1)),这时就返回了包括工作簿名称的工作表名称

INDEX函数使用说明:

INDEX(数组,第二参数)表礻从数组中提取第几个元素。例如:INDEX({1,7,9},2)表示从{1,2,3}的数组里提取第2个元素也就是7。

将公式修改一下将中括号的部分去掉,只留下工作表名称公式为:

下拉公式就可以看到顺序返回了所有工作表名称,这样就可以在其他函数中引用了

注意:工作簿中隐藏的工作表名称也会显礻出来,本例隐藏了一个名称为“合并单元格”的工作表

如果是在2007版Excel中使用宏表函数,点击保存时会弹出下面的对话框:

2)选择另存为启鼡宏的工作簿

我要回帖

更多关于 substitute函数 的文章

 

随机推荐