ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > 函数与公式 > 如何按照顺序不重复提取单元格中的文本型数字?

如何按照顺序不重复提取单元格中的文本型数字?

作者:绿色风 分类: 时间:2022-08-17 浏览:129
楼主
水星钓鱼
Q:单元格内有一串文本型数字,希望用公式按顺序提取不重复数字,例如:01398761524289  提取结果为:0139876524
A:假设数字在A1单元格,在B1输入如下数组公式:
  1. =IF(-LEFT(A1),"",0)&SUM(MID(0&A1,LARGE(IF(FIND(MID(A1,ROW($1:$99),1),A1)=ROW($1:$99),ROW($1:$99)+1,1),ROW($1:$99)),1)*10^(ROW($1:$99)-1))
2楼
willin2000
谢谢分享. 不过此公式对空单元格不纠错.

为了解决单元格只有0时,变成00,公式稍微修改一下(同时IF里的""可以省略)
  1. =IF(-LEFT(A1),,0)&TEXT(SUM(MID(0&A1,LARGE(IF(FIND(MID(A1,ROW($1:$99),1),A1)=ROW($1:$99),ROW($1:$99)+1,1),ROW($1:$99)),1)*10^(ROW($1:$99)-1)),"0;;")
3楼
wshcw
公式123字符
  1. =IF(-LEFT(A1),,0)&SUM(MID(0&A1,LARGE((FIND(MID(A1,ROW($1:15),1),A1)=ROW($1:15))*ROW($1:15),ROW($1:15))+1,1)*10^ROW($2:16))%

公式140字符
  1. =LEFT(IF(-LEFT(A1),,0)&SUM(MID(A1&5^19,SMALL(FIND(ROW($1:$10)-1,A1&5^19),ROW($1:$10)),1)*10^(10-ROW($1:$10))),COUNT(FIND(ROW($1:$10)-1,A1)))
4楼
willin2000
谢谢wshcw补充,同样123不纠空和单0, 140不纠空.
我也再补充一个124(适用空,单0):
  1. =MID(10^11+SUM((0&MID(A1,LARGE(FIND(ROW($1:$10)-1,A1&5^19),ROW($1:$10)),1))*10^ROW($1:$10)),2,COUNT(FIND(ROW($1:$10)-1,A1)))
5楼
wshcw
版主:
我也在你基础上补充两个公式:
118字(同样适用空,单0时显示为空)

=MID(SUM((0&MID(A1,SMALL(FIND(ROW($1:$10)-1,A1&5^19),ROW($1:$10)),1))/10^ROW($1:$10)),3,COUNT(FIND(ROW($1:$10)-1,A1)))

121字(同样适用空,单0):

=MID(SUM((0&MID(A1,SMALL(FIND(ROW($1:$10)-1,A1&5^19),ROW($1:$10)),1))/10^ROW($1:$10))&10,3,COUNT(FIND(ROW($1:$10)-1,A1)))


单元格内数字去重.rar
6楼
yoka
再改改
=MID(SUM((0&MID(A1,SMALL(FIND(ROW($1:$10)-1,A1&5^19),ROW($1:$10)),1))/10^ROW($1:$10))&"00",3,COUNT(FIND(ROW($1:$10)-1,A1)))
=MID(SUM((MID(A1,SMALL(FIND(ROW($1:$10)-1,A1&5^19),ROW($1:$10)),1)&1%^5)/10^ROW($2:$11),1),3,COUNT(FIND(ROW($1:$10)-1,A1)))
121 的好像也有问题
比如12012 返回121

7楼
wshcw
请版主看看,简化到119个字符,应该没问题了.
=MID(SUM(MID(A1&5^19,SMALL(FIND(ROW($1:$10)-1,A1&5^19),ROW($1:$10)),1)/10^ROW($1:$10)),3,COUNT(FIND(ROW($1:$10)-1,A1)),


单元格内数字去重.rar
8楼
yoka
同样少右边的0比如12345679890
9楼
wshcw
看来还得再调整公式,两个公式都是121个字符:
=MID(SUM(MID(A1&5^19,SMALL(FIND(ROW($1:$10)-1,A1&5^19),ROW($1:$10)),1)/10^ROW($1:$10))&0,3,COUNT(FIND(ROW($1:$10)-1,A1)))
=MID(SUM((0&MID(A1,SMALL(FIND(ROW($1:$10)-1,A1&5^19),ROW($1:$10)),1))/10^ROW($2:$11))&1%,4,COUNT(FIND(ROW($1:$10)-1,A1)))
单元格内数字去重.rar
10楼
春雷
你们的公式应用的都非常的经典,我看的很费力呀!不过还是看的懂得!!!
11楼
洋五月
谢谢版版们的分享!
12楼
yaoxuhuijsz
学习
13楼
yaoxuhuijsz
都怎么想出来的偶

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap