如何统计带分隔符的字符串中不重复的子字符串数?
发布时间:2022-02-15 01:47:51
Q:某些情况下,我们可能要统计带有分隔符的字符串中不重复的子字符串数。如下所示,我想知道单元格A1中不重复的数字有几个,应该怎么编写公式?
A:下面的数组公式可以完成单元格A1的字符串不重复值的统计:
=SUM(N(MATCH(TRIM(MID(SUBSTITUTE(A1,”,”,REPT(“”,999)),ROW(INDIRECT(“1:” &LEN(A1)-LEN(SUBSTITUTE(A1,”,”,””))+1))*999-998,999)),TRIM(MID(SUBSTITUTE(A1,”,”,REPT(“”,999)),ROW(INDIRECT(“1:” &LEN(A1)-LEN(SUBSTITUTE(A1,”,”,””))+1))*999-998,999)), )=ROW(INDIRECT(“1:”& LEN(A1)-LEN(SUBSTITUTE(A1,”,”,””))+1))))
结果为6。注意,公式输入完成后要按下Ctrl+Shift+Enter组合键。
公式解析
这么长的公式,一看到可能被吓着了,让我们来看看这个复杂的公式是怎么得来的。
上面的公式可以简化为:
=SUM(N(MATCH(单元格中的子字符串组成的数组, 单元格中的子字符串组成的数组, )=连续数字组成的数组))
其中,生成单元格中的子字符串组成的数组的公式:
TRIM(MID(SUBSTITUTE(A1,”,”,REPT(“”,999)),ROW(INDIRECT(“1:” &LEN(A1)-LEN(SUBSTITUTE(A1,”,”,””))+1))*999-998,999))
ROW(INDIRECT(“1:”& LEN(A1)-LEN(SUBSTITUTE(A1,”,”,””))+1))获得从1至子字符串个数的连续数字。本例中,单元格中的子字符串组成的数组为:
{“1″;”2″;”3″;”1″;”2″;”3″;”4″;”5″;”6”}
上述数组作为MATCH函数的参数,查找每个子字符串在上面数组中出现的位置,得到下面的数组:
{1;2;3;1;2;3;7;8;9}
公式中的:
ROW(INDIRECT(“1:”& LEN(A1)-LEN(SUBSTITUTE(A1,”,”,””))+1))
生成由连续的数字组成的数组:
{1;2;3;4;5;6;7;8;9}
上面生成的两个数组进行比较:
{1;2;3;1;2;3;7;8;9}={1;2;3;4;5;6;7;8;9}
得到由布尔值组成的数组:
{TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE}
其中的TRUE表明是不重复的值,FALSE表明值出现的重复。因为不重复值出现的位置应该与其在子字符串中的位置一致,也就是说比较的结果为TRUE;如果位置不一致,则前面已经出现过该子字符串,即为重复值,比较的结果为FALSE。
N函数将上述布尔值数组转换成由和1组成的数组:
{1;1;1; ; ; ;1;1;1}
数组中元素之和即为不重复的值的个数。


猜你喜欢
- 相信大多数用户都已经收到了Win11正式版的推送且进行更新了,但是在使用的过程中发现存在bug。Win11正式版不兼容VirtualBox
- 有非常多的用户都喜欢使用PPT来制作幻灯片,而我们在制作PPT的时候难免需要去设置表格标题格式,但不少新用户不清楚要如何去操作,其实非常简单
- 编辑文档内容的时候,有时候会遇到在文档内容中插入日期的情况,所以就需要编辑文档的小伙伴们在需要插入日期的位置将日期插入。当遇到这种情况的时候
- 本次的练习是:在列A中给定一个整数值,例如单元格A2,并且2 <= A2 <= 100,要在列B中(例如单元格B2)使用公式进行
- 如今 许多WPS表格都要用到斜线表头, 比方 最多见的课程表, 假如你 仍是不会 建造斜线表头的话,那就很难办了。 以至连 平常的 事情都
- 对于进入bios的操作的方法,因为不同的电脑品牌,进入bios的操作也会不同。那操作方式是什么呢?小编这就将本人使用的电脑的演示给你们怎么进
- Excel中经常用到三次方符号,具体该如何输入三次方符号呢?下面是由小编分享的excel中输入三次方符号的方法,以供大家阅读和学习。exce
- 在WPS word文档中,我们可能经常会需要使用到插入批注功能,这种情况下我们可以将插入批注工具添加到快速访问工具栏,这样我们就可以快速地进
- 在上网的时候想要有一个快的速度是每个人都梦寐以求的,不过在win8系统下载之后,打开文件夹有人会发现速度很慢,甚至是弹出了文件夹没有响应的故
- 经常会利用Excel表格中的MIN函数来比较参数列表中的最小值。MIN函数便是可以在表格中求出参数列表中的最小值。那具体要怎操作的那?现在让
- NTFS文件系统的优点是比FAT32具有更高的安全性,FAT32的长处是兼容性比NTFS好,两者各有利弊。那么在满足应用的前提下,究竟那种文
- Word是我们日常工作中使用最普遍的文档处理工具之一,但是很多朋友在使用时对碰到的文档出错,常常无计可施。难道只能眼睁睁的看着急需的文档无法
- 我们在使用电脑的过程中,经常需要设置一些个性化的设置,而桌面壁纸肯定是其一。而win7的背景桌面有两种更换壁纸的方法,下面小编就为大家详细讲
- 在 Mac 上进行图片处理的时候,拥有一些专业级的图片编辑软件是不可或缺的,对于在工作中经常需要处理图片的小伙伴福利来了,今天小编给大家精心
- 有些使用Win7旗舰版的小伙伴,之前为了个人文件的隐私保护,把某些文件夹给隐藏起来了,结果需要用到的时候却打不开了,忘记如何显示隐藏文件夹了
- 如何利用无线WiFi连接小米手机与电脑?一般来说,大家习惯使用数据线将手机与电脑连接,如果电脑有蓝牙、也可以借助蓝牙。其实这些方法还算不上简
- ①全选正文后,将字体缩小具体的操作方法是:选中文字,执行菜单“格式”→“字体”,在弹出的字体对话框中,将字体的大小改小,让文字变小.②缩小行
- 微软本周将推送Win10 PC/Mobile 10586稳定版,这次版本号为10586.318,主要包括Bug修复和性能、稳定性提升,预计在
- 下面请看具体操作:(1)首先在页面中插入文本框并输入文字,然后设置字号和字体等格式。(2)点击【开始】-【绘图】-【形状】组,选择矩形,添加
- Word如何拆分窗口?近期有用户由于文档很长,需要前后相互比较修改,这时候我们可以使用到Word文档中的拆分窗口功能,那么应该如何操作呢?本