
早上去给闺女交学费,幼儿园的章老师,激动的拉着我的手说:
今天是端午节,幼儿园里刚包的粽子,一定要吃一个尝尝。
然后就拉着我往办公室里走。
到了办公室,粽子没看到,等来的是章老师的一个考勤表。
1- 问题描述
章老师:拉老师,粽子在锅里,你帮我看看这个表格的问题先吧。
拉登:这。。。好吧。
章老师:这个月,每个小朋友的缺勤我都登记好了,怎么快速计算缺勤的天数?我现在都是手动数的,非常麻烦。

2- 原因分析
吃粽子是假,问表格问题是真。
我们还是使用2W1H的框架分析一下。
WHAT,这是什么问题?
表面上这是一个数据统计的问题。
通常Excel中统计数量是很简单的操作,方法有很多。
1- COUNTIF统计

2- 透视表统计
用透视表一拖一拽就可以搞定。

不过很遗憾,针对这个问题,这两个方法都用不了。
WHY,为什么用不了
因为考勤内容被保存到了同一个单元格中了。

而透视表和COUNTIF的前提是,数据必须保存到单独的单元格里,建立一维数据表。

记录数据的格式,和统计方法需求的格式不符,所以导致问题性质发生了改变,难度也变大了。
问题的本质,由简单的统计变成了:
1- 单元格内容拆分成行
2- 或者,统计文本指定字符数量的问题。
HOW,如何解决问题
方法1,单元格内容拆分
根据指定字符拆分单元格的内容,可以用分列功能,可以用Power Query,这里推荐用Power Query,具体的方法,可以参考文章《销售:不能不知的数据拆分和提取神器》。
方法2,统计文本字符数量
先给大家出一个智力题。
一个10升的杯子,一个6升的杯子。
怎么倒水让10升的杯子里有8升的水
。。。
思考5秒钟
再看答案
。。。
答案很简单
1- 6升杯子装满水,倒进10升杯子里
2- 再用6升装满睡,倒进10升杯子里,倒满后6升杯子里剩2升
3- 将10升杯子倒空,倒进2升,再倒进6升
这个智力题告诉我们。
如果一次无法完成,就把需求拆分一下,分步骤完成。
统计文本字符的数量,和倒水的题目是类似的。
如果没有办法,用一个函数一次性搞定问题,那就把需求拆分一下。
1- 有没有直接统计指定字符数量的函数?没有
2- 缺勤天数,可以用其他方式表示吗?可以,统计顿号的数量,然后加1。
3- 如何统计顿号的数量?先计算文本总长度a,把顿号都删掉,然后统计长度b,a-b就是顿号的数量了。
3- 解决方法
根据前面的分析,统计的步骤可以拆分成:
1- 计算文本的长度a
2- 文本中删除顿号
3- 统计无顿号文本长度b
4- 计算缺勤天数。缺勤天数 = a - b +1
这几个步骤对应的公式,分别如下:
1- 计算文本长度

2- 删除顿号

3- 统计无顿号长度

4- 计算缺勤天数

最后把这几列的公式,合并起来,组合成一个长公式,就可以了。
=LEN(D7)-LEN(SUBSTITUTE(D7,"、",""))+1
4- 总结
函数公式,其实就像是一道数学应用题。
如果没有办法直接用计算器一步到位计算出结果,那就需要把需求拆分成小的目标,用你掌握的技能,把每个小目标实现。
每个小的步骤组合起来,总的目标就实现了。
另外一个核心要点是,要积累足够多的函数经验。单词都不会,还写啥作文啊。
5- 聊5毛钱
章老师是湖南人,喜欢吃咸粽子。
拉老师是山东人,喜欢吃甜粽子。
你是哪里人?喜欢吃甜的,还是咸的粽子?
我是拉小登,一个会设计表格的Excel老师
= = 推荐文章 = =
销售:不能不知的数据拆分和提取神器
教师:这个排班表让我想辞职
财务:期初本金公式怎么写?
一个生日提醒案例,总结出长公式套路
会一点VBA是一种什么感受?
错啦,柏拉图你一直都做错了