公司领导对我说:如果你的工作离不开EXCEL,你迟早会用到Excel宏表函数!
每天一点小技能
职场打怪不得怂

编按:在日常工作中,Excel宏表函数是常常被忽略的存在,但是如果你一直和EXCEL打交道,那么你一定有一天需要用到它!当你一切手段都解决不了问题的时候,EXCEL宏表函数或许是你最后的希望。它比VBA简单,比大多数函数都简单,只需要掌握一个技巧,就能轻松实现各种单元格信息的获取……

这是前不久一个网友问笔者的一道题,说实话,当时确实也把笔者难住了,但在查阅一些资料后还是得到了圆满的解答。不敢藏私,拿出来和大家分享一下,也能够让大家都GET到一点新知识。虽不至九塔浮屠,犹胜在赠花留香。
她的问题是这样的,如下图:

公众号回复:入群,下载课件
问题描述:
A列是字段,其中字体的格式中有“加粗”、“下划线”、“斜体”,而且三种格式有“混用”情况;B列是对应的数值。现在要求分别计算出这些字体对应数值的合计值,如果是混用的字体则可以重复计算数值。
问题分析:
其实从题意来说还是比较好理解的,大家是要判断A列的字体是否为加粗、斜体、下划线,如果是就可以使用SUMIF函数来处理。其中的难点是如何判断,相信大家此时是无从下手的。
笔者初看此题的第一反应就是使用VBA来判断,简写如下:
Sub 判断字体()
If Worksheets("sheet1").Range("A1").Font.Bold = True Then
a = "加粗 "
Else
a = ""
End If
If Worksheets("sheet1").Range("A1").Font.Italic = True Then
b = "斜体 "
Else
b = ""
End If
If Worksheets("sheet1").Range("A1").Font.Underline > 0 Then
c = "下划线 "
Else
c = ""
End If
MsgBox a & b & c
End Sub
但是许多小伙伴说,VBA不好掌握,有没有函数的方法呢?
宏表函数解题:
答案是肯定的,大家可以使用宏表函数来做此题。
STEP1:
使用CTRL+F3快捷键,打开名称管理器。

按“新建”按钮,在名称处输入“加粗”,在引用位置输入内容“=Get.Cell(20,Sheet1!$A2)”,然后用鼠标点击确定。

STEP2:
按照下面的方法,再建立两个名称,分别为“斜体”和“下划线”。

STEP3:
设置完名称,回到工作表中,在C2单元格输入“=加粗”,把鼠标放在单元格右下角的小黑点上,按住鼠标左键,下拉至末行填充。

↑↑↑ 笔者为了便于同学们观看,加了条件格式
同理,在D2单元格输入“=斜体”,然后下拉至末行填充。;在E2单元格输入“=下划线”,同样下拉至末行。至此大家就得到了对于A列字体的“判断辅助列”,如下图:

STEP4:
接下来的数值统计,对于许多小伙伴来说应该都不是难事了。

在H4单元格输入函数:=SUMIF(C2:C15,TRUE,B2:B15)
在H5单元格输入函数:=SUMIF(D2:D15,TRUE,B2:B15)
在H6单元格输入函数:=SUMIF(E2:E15,TRUE,B2:B15)
STEP5:
虽然得到了最后的结果,但是还有不得不说的话,因为大家使用的是“宏表函数”,所以当保存这个工作薄的时候,EXCEL会提示大家:

不要犹豫,点“否”!!!
用鼠标点击“否”以后会弹出“另存为”窗口,将文件保存为“启用宏的工作薄”,即后缀为.XLSM的文件格式。这样才能保存此次的宏表函数(或者VBA代码),下次打开的时候才可以使用,切记,切记!!
【编后语】
对于宏表函数来说,还有很多好用的功能,比如说按“单元格填充颜色汇总数值”,笔者之前也介绍过用宏表函数“打印设置信息”、“批量制作分表”的功能。而且它的功能更方便,确实要比VBA代码简单很多。
虽然用了函数解决,但是依然还是离不开“宏”的概念,宏永远是EXCEL不可分割的一部分,所以真心建议大家有时间还是接触一下这些内容,如果你的工作离不开EXCEL,早晚你会遇到用“宏”才能解决的问题。
扫一扫,在线咨询Excel课程

Excel教程相关推荐
想要全面系统学习Excel,不妨关注部落窝教育《一周Excel直通车》视频课或者《Excel极速贯通班》。
主讲老师:滴答

Excel技术大神,资深培训师;
课程粉丝100万+;
开发有《Excel小白脱白系列课》
《Excel极速贯通班》。
原价299元
限时特价 99 元
少喝两杯咖啡,少吃两袋零食
就能习得受用一生的Excel职场技能!