之前的教程中跟大家分享过使用宏表函数EVALUATE快速完成包裹体积计算的案例。案例中我们体验到了宏表函数的魅力。原本需要多个文本函数来解决处理的问题,被EVALUATE宏表函数轻松击破。今天我们就跟大家一起罗列一下几个常用的宏表函数使用案例,相信你会大吃一惊的哦!首先我们要理解宏表函数到底是什么函数。宏表函数是早期低版本excel中使用的,现在已由VBA顶替它的功能;但仍可以在工作表中使用,不过只能在”定义的名称”中使用;还有极少数的宏表函数使用后不会自动改变,而需要按快捷键更新。

1

get.workbook宏表函数

函数语法为get.workbook(type_num,name_text),即提取工作表信息,参数type_num表示提取的类型编号,name_text表示是打开的工作表名称,如果省略则表示当前活动工作簿。参数type_num包含的代码较多,我们主要使用的是1,表示“正文值的水平数组,返回工作簿中所有工作表的名称”。举例:下表是某公司产品型号明细表,汇总表A列是工作表名称,现在需将工作表名称提取放置在A列。

第一步:单击【公式】选项中的【名称管理】。

第二步:单击【新建】打开【新建名称对话框】,输入名称以及引用位置。

第三步:单击【确定】后我们可以在【名称管理器】中看到刚刚添加的一条记录,单击关闭。

第四步:在汇总表A2单元格中输入函数公式=INDEX(名称,ROW(A1)),通过INDEX引用之前定义的宏函数。ROW(A1)目的是为了INDEX函数的第二个参数随之向下填充而变化,这样我们就能依次提取第1、2、3、4……N个工作表的名称。

我们还可以通过=TRANSPOSE(名称)公式来完成。选中A2:A10单元格区域后输入=TRANSPOSE(名称):

然后使用数组公式快捷键ctrl+shift+enter即可完成提取。

2

get.cell宏表函数

函数语法为get.cell(Type_num, Reference),Type_num指明单元格信息的类型,范围为1-66。Reference为引用的单元格或区域。经常使用的是63,63 返回单元格的填充背景颜色。下表数据存在3种不同的背景填充颜色,现在需要通过宏表函数将颜色编号统计出来,最后通过编号完成按颜色求和。

第一步:打开名称管理器,在【新建名称】对话框中输入名称YS(颜色),引用位置=GET.CELL(63,WW!$D2)。63表示提取单元格背景填充颜色。

注意:在引用单元格时必须锁定列,输入$D2。第二步:单击【确定】关闭名称管理器,在E2单元格输入=YS后向下填充,可以看到每一种颜色均由不同编号标识。

第三步:最后通过SUMIF函数求和即可。如下所示:

3

EVALUATE宏表函数

EVALUATE用于统计引用单元格中以文本形式表示的算术表达式的值。举例:下表中G列数据为包裹的长宽高数据,现在需要根据G列数据统计包裹体积。

第一步:打开【名称管理器】新建一条名称记录如下:

第二步:单击【确定】关闭名称管理器,在H2单元格输入=体积,向下填充即可。

4

GET.FORMULA函数

GET.FORMULA作用是返回引用单元格内的公式。函数语法:GET.FORMULA(reference),reference:指定引用的单元格。GET.FORMULA宏表函数使用以R1C1样式返回结果。(这句话文章后面会解释)举例:

上图是某员工通过函数公式计算包裹体积。现在需要将K列的公式提取出来并以文本形式显示。第一步:选中K列数据区域,打开【名称管理器】,新建一个MM的名称记录,引用位置为:=GET.FORMULA(GET.FORMULA!$K$2:$K$10)

第二步:单击【确定】关闭名称管理器后L2单元格中输入=MM即可显示K2单元格中所使用的函数公式。

大家看到公式中的RC[-4]是不是有点疑问?其实这是单元格引用的另一种表示形式——R1C1形式,R后面的数字表示行数,C后面的数字表示列数。不加“[]”的数字表示的是从第一行(列)数起的第几行(列);加“[]”的数字表示从公式所在单元格算起,行位置向上或下移动的行数,列位置向左或向右移动的列数。比如:rc[-3]*rc[-2]表示当前单元格(公式所在单元格)向左移动3格所在单元格的数值,乘以当前单元格向左移动两格所在单元格的数值。本例中的RC-4表示K2单元格向左数第四列。

5

GET.DOCUMENT宏表函数

GET.DOCUMENT用于按照指定信息类型返回名称。GET.DOCUMENT函数语法:GET.DOCUMENT(type_num,name_text),type_num:指明信息类型的数字,一共有88中数字代码表示88种类型。通常使用GET.DOCUMENT(76)和GET.DOCUMENT(88)来返回活动工作表和活动工作簿的文件名。举例:第一步:打开【名称管理器】新建一条名称记录。我们设置名称为MC,引用位置为=GET.DOCUMENT(76),单击【确定】后关闭【名称管理器】。

第二步:在任意单元跟中输入=MC后即可返回当前工作表名称。

6

FILES宏表函数

FILES宏表函数的作用是返回指定目录下的文件名,FILES宏表函数以一维数组的形式返回结果。

FILES函数语法:FILES(path),path:指定从哪一个目录中返回文件名。

path接受通配符,问号 (?) 和星号 (*)。问号匹配任意单个字符;星号匹配任意字符序列。举例:我们现在要返回本计算机C盘下的所有文件名称。第一步:打开【名称管理器】,【新建名称】对话框中输入名称为CP,引用位置为:=FILES(“C:\*.*”)。其中”C:\*.*”就表示路径C盘下的所有带后缀的文件,星号通配符表示所有,不包含文件夹。

第二步:关闭【名称管理器】,在A1单元格输入=INDEX(CP,ROW(A1))后向下填充。

与C盘文件对比完全一致。好了今天我就跟大家分享这6个常用的宏表函数,其实宏表函数虽然陌生但是使用起来还是相当的简单的哦!比起我们常规的函数嵌套要容易很多,这么简单而且用处大大的宏表函数大家一定要学会哦!也许会帮你大忙!希望大家可以自己尝试操作!