这个计数有点意思:有分隔符、含重复值的条件计数

答疑解惑SOS:求助Excel中带分隔符的文本计数去重计算!


求助各位大神,真是急死了,因为文本有分隔符,实在不想拆开,想去重计数求数值,哪位大神给看看,带条件的、带分隔符的、含重复的文本统计个数。


小编想说,这种问题其实没有一点难度,贵在思路



如下图所示

A列为省份信息,B列是各个省份对应的员工姓名,我们发现每个单元格可能含多个姓名,且不同姓名之间由分隔符“/”进行间隔。并且同一个省份下的员工姓名可能出现重复值。


我们最终想要做的就是统计各省份下不同员工的人数。




下面分简单的几步,对公式拆解剖析。



第一步:去重(获取唯一条件)


使用UNIQUE去重函数:

=UNIQUE(A2:A9)


对A2:A9省份列数据可能含重复值的省份名称去重,得到唯一值列表。




第二步:条件筛选


使用FILTER条件筛选函数:

=FILTER(B$2:B$9,A$2:A$9=D3)


将D列与A列相同省份下的所有对应员工筛选出来。




第三步:合并


使用TEXTJOIN函数:

=TEXTJOIN("/",,FILTER(B$2:B$9,A$2:A$9=D3))

并下拉填充公式。


将D3省份“河北”返回的一列多行的数组溢出员工信息,用分隔符“/”合并到一个单元格显示。




第四步:拆分


使用TEXTSPLIT拆分函数:

=TEXTSPLIT(TEXTJOIN("/",,FILTER(B$2:B$9,A$2:A$9=D3)),"/")


将上一步以分隔符“/”合并在一个单元格的姓名数据,再用列分隔符“/”拆分到一行多列不同单元格中(分列)。




第五步:姓名去重


再次使用UNIQUE去重函数:

=UNIQUE(TEXTSPLIT(TEXTJOIN("/",,FILTER(B$2:B$9,A$2:A$9=D3)),"/"),TRUE)


将上一步返回的一行多列的员工姓名数组溢出结果,进行去重处理,留下数组内姓名的唯一值列表。




第六步:计数


使用COUNTA计数函数:

=COUNTA(UNIQUE(TEXTSPLIT(TEXTJOIN("/",,FILTER(B$2:B$9,A$2:A$9=D3)),"/"),TRUE))


将上一步返回的各省份去重后的员工姓名数组溢出结果,进行非空单元格个数的计数,最终得到的就是各省份下不同员工的人数。


原文链接:,转发请注明来源!