1职场实例
小伙伴们大家好,今天我们来学习一个经典的Excel办公技巧:如何统计同一单元格内所有项目的个数?下面我们用几组简化的基础数据进行说明讲解。
如下图所示:
A列为科目类别,B列为对应的各个科目名称,我们发现每个不同科目名称之间用分隔符顿号进行的间隔区分,我们想要在C列统计出对应科目名称单元格内不同科目的个数。

2解题思路
解决这个经典的个数统计问题,同样需要用到几个职场办公中使用频率极高的经典函数:LEN函数、SUBSTITUTE函数,再利用清晰科学的逻辑思路,快速的解决此类问题。
下面我们来介绍一下具体的解决方案。

我们在C2单元格输入函数公式:
=SUBSTITUTE(B2,"、",)
利用SUBSTITUTE函数,并省略SUBSTITUTE函数的第三参数的参数值,表示从B2单元格中将所有的顿号替换为空值,即从B2单元格中删除所有的分隔符号顿号。
SUBSTITUTE函数用于对指定字符串进行替换。
语法结构为:
=SUBSTITUTE(需要替换的文本,旧文本,新文本,[替换第几个])

我们继续完善C2单元格中的函数公式变为:
=LEN(SUBSTITUTE(B2,"、",))
在利用LEN函数计算出B2单元格中替换掉分隔符(删除所有分隔符后)顿号后的字符的个数。
LEN函数常用于Excel软件中,其功能是返回文本字符串中的字符数。
语法格式为:
=LEN(text)

我们继续完善C2单元格中的函数公式变为:
=LEN(B2)-LEN(SUBSTITUTE(B2,"、",))
利用LEN函数计算出B2单元格的字符个数。用这个函数返回结果,与LEN函数计算出B2单元格中替换掉分隔符(删除所有分隔符后)顿号后的字符的个数,进行相减的操作,最终的返回结果即为分隔符顿号“、”的个数。

我们继续完善C2单元格中的函数公式变为:
=LEN(B2)-LEN(SUBSTITUTE(B2,"、",))+1
由于单元格内不同的科目名称的个数总是比分隔符号顿号“、”的个数多1,因此再上一步骤中公式基础上加1即可得到单元格内不同科目的个数。

公式完善到目前为止,基本已经解决了今天的问题,但是还是存在一定的弊端:如果我们继续向下填充公式至C5单元格,我们发现B4和B5单元格为空值单元格,即没有任何科目的记录,那么C列公式返回结果却是1,结果是错误的。如下图所示:

为了避免在B列单元格为空时,公式返回错误结果1,我们可以在原有的公式的基础上加上B2不等于空的判断,当B2单元格为空时,最终结果返回0。
我们继续完善C2单元格中的函数公式变为:
=(LEN(B2)-LEN(SUBSTITUTE(B2,"、",))+1)*(B2<>"")
