数据场景
▲效果展示
大家好,明天就是中秋节了,提前祝大家节日快乐,今天也不发什么烧脑的技能了,分享一个冷门技巧。
话说有一张成绩表,包含3个字段,[班级]、[姓名]、[成绩],要求在B3单元格自由输入分数线,就能算出合格人数,这也没有什么难度,一个COUNTIF就能解决。
但有一个前提:表格被筛选后只统计可见单元格的成绩合格人数,这就有点意思了,有些小伙伴肯定会想到用SUBTOTAL函数,可是没办法将条件(大于分数线)添加到公式中,这可怎么办呢?
我们可以采用一种迂回的方式,用COUNTIFS函数统计成绩大于分数线且行高不等于0的人数。
可问题又来了,行高怎么计算呢?
问题的关键就在这里,好像Excel中没有专门的函数计算行高,没有我们就自己创造,写个自定义函数就ok了。
那么怎么写自定义函数呢?具体步骤参见动图演示:
快捷键 [ALT+F11] 进入VBE编辑器,新建模块,把下面的代码复制进去。
Function行高(rngAsRange)行高=rng.HeightEndFunction
代码很简单,就一句话,把单元格的行高赋值给函数名。
这里的rng定义为单元格对象,是函数的参数,也就是只要在函数的括号中放入一个单元格引用,例如:A1,就能获得A1单元格的行高。
关于自定义函数的创建方法请参见网易云课堂《揭秘Excel真相》视频课程VBA篇章。
当单元格被隐藏后,行高的值为0,这个也好理解,行高为0就是被隐藏了嘛!
接下来我们在D列添加一个辅助列计算每一行的行高。如下图所示:
最后只要用COUNTIFS函数来计算合格人数即可,公式如下:
第一个条件为成绩大于分数线(这里是85分),第二个条件是D列行高不等于0,"<>"表示不等于号。
接下来就可以自由的筛选查看结果啦!今天的分享就到这里,我们下期再见!希望大家中秋节玩的开心!
更多Excel技能,欢迎您加入布衣公子网易云课堂《揭秘Excel真相》课程。
PPT课程地址:/Rm4oVdo
Excel课程地址:/Rm4oCLR
或直接单击「阅读原文」加入。
关联阅读:
仪表板可视化速成大法,3分钟就能搞定!|Excel116
还在用Excel做数据分析报告吗?PowerBI已经被众星捧月|Excel115
朋友请我帮忙汇总客户评价,刷新我只用了1秒 |Excel114
别人用4张图才能搞定的事儿我1张图就解决了!|Excel113
还记得各国GDP排名时时变化的动态图表吗?究竟是如何做出来的呢?|Excel112
Power Map 精确定位怎能少得了经纬度!|Excel111
区县级地图自定义大法,不看准后悔!|Excel110
地图可视化,一个鼠标就够了!|Excel109
PowerMap让地图可视化变得如此简单!|Excel108
新老客户数咋算,我有绝招!|Excel107
销售部的业绩究竟如何?PP帮你一探究竟|Excel106
……
更多技能分享请您后台回复「目录」查看
福利关键词:70、PNG、地图、姜饼人、图标、样机、手、试看、试听,后台回复有惊喜哦!
布衣公子《揭秘Excel真相》课程原价299
前5000人惠顾仅需199元
单击了解>>《揭秘EXCEL真相》课程详情
▼单击「阅读原文」进入Excel课程传送