ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: ok_back

[已解决] 提取重复值

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-5-20 13:33 | 显示全部楼层
=TEXTJOIN(,,IFERROR(IF(FIND(--MID(A2,ROW($1:$9),1),A2)=ROW($1:$9),MID(A2,ROW($1:$9),1),""),""))

TA的精华主题

TA的得分主题

发表于 2020-5-20 13:38 | 显示全部楼层
浮生若梦~~~ 发表于 2020-5-20 13:20
=RIGHT(SUM(RIGHT(SMALL(IFERROR(FIND(ROW($1:$11)-1,A2)/1%+ROW($1:$11)-1,),ROW($1:$11)))/10^ROW($1:$ ...

一般我写这么无脑的。
=--CONCAT(UNIQUE(MID(A2,ROW($1:$99),1)))

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-5-20 13:39 | 显示全部楼层
静看流年RSSQ 发表于 2020-5-20 13:38
一般我写这么无脑的。
=--CONCAT(UNIQUE(MID(A2,ROW($1:$99),1)))

哎,一般人没你写的函数啊

TA的精华主题

TA的得分主题

发表于 2020-5-20 13:47 | 显示全部楼层
静看流年RSSQ 发表于 2020-5-20 13:38
一般我写这么无脑的。
=--CONCAT(UNIQUE(MID(A2,ROW($1:$99),1)))

这个公式简洁、能应对文本和数字,学习了。
平时忽略了函数UNIQUE

TA的精华主题

TA的得分主题

发表于 2020-5-20 14:35 | 显示全部楼层
浮生若梦~~~ 发表于 2020-5-20 13:20
=RIGHT(SUM(RIGHT(SMALL(IFERROR(FIND(ROW($1:$11)-1,A2)/1%+ROW($1:$11)-1,),ROW($1:$11)))/10^ROW($1:$ ...

好像也不对,比如35563,运行的结果是356,题主的意思应该是删除连续的重复值

TA的精华主题

TA的得分主题

发表于 2020-5-20 15:36 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-5-20 16:33 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
C2:C9 {=MID(TEXT(SUM(IFERROR(RIGHT(SMALL(IF(FIND(ROW($1:$10)-1,B2&1/17)<=LEN(B2),FIND(ROW($1:$10)-1,B2&1/17)/1%+ROW($1:$10)-1),ROW($1:$10)),2)*10^-ROW($1:$10),)),"0."&REPT(0,COUNT(FIND(ROW($1:$10)-1,B2)))),3,9)

E2:N9 {=IFERROR(MID($B2,SMALL(IF(FIND(ROW($1:$10)-1,$B2&1/17)<=LEN($B2),FIND(ROW($1:$10)-1,$B2)),COLUMN(A1)),1)&F2,"")
6963.png

TA的精华主题

TA的得分主题

发表于 2020-5-21 14:42 | 显示全部楼层
本帖最后由 wshcw 于 2020-5-21 14:44 编辑

低版本(数组)公式
=MID(SUM((0&MID(A2,SMALL(FIND(ROW($1:$10)-1,A2&5^19),ROW($1:$10)),1))/10^ROW($1:$10))&"00",3,COUNT(FIND(ROW($1:$10)-1,A2)))
2019新函数(数组)公式(两个):
=CONCAT(MID(A2,SMALL(FIND(ROW($1:$10)-1,A2&5^19),ROW($1:$10)),1))
=TEXTJOIN(,1,MID(A2,SMALL(FIND(ROW($1:$10)-1,A2&5^19),ROW($1:$10)),1))

TA的精华主题

TA的得分主题

发表于 2020-5-21 14:49 | 显示全部楼层
本帖最后由 wshcw 于 2020-5-21 14:52 编辑

VBA法:
================================================
Function 单元格字符去重(Rng, Optional F As Boolean)
'第二参数为1时,从左至右去重,为0或省略时,从右至左去重。
'Dim dic As New Dictionary
        If Rng = "" Then 单元格字符去重 = "": Exit Function
Set dic = CreateObject("Scripting.Dictionary")
If Not F Then
        For i = Len(Rng) To 1 Step -1
            If Not dic.Exists(Mid(Rng, i, 1)) Then
                dic(Mid(Rng, i, 1)) = ""
                单元格字符去重 = 单元格字符去重 & Mid(Rng, i, 1)
            End If
        Next
    Else
        For i = 1 To Len(Rng)
            If Not dic.Exists(Mid(Rng, i, 1)) Then
                dic(Mid(Rng, i, 1)) = ""
                单元格字符去重 = 单元格字符去重 & Mid(Rng, i, 1)
            End If
        Next
    End If
End Function
================================================
公式:
=单元格字符去重(A2,1)
A2输入“高高兴兴”
公式输出结果为:
“高兴”

TA的精华主题

TA的得分主题

发表于 2020-5-21 14:58 | 显示全部楼层
静看流年RSSQ 发表于 2020-5-20 13:38
一般我写这么无脑的。
=--CONCAT(UNIQUE(MID(A2,ROW($1:$99),1)))

我电脑没有UNIQUE 函数
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-19 07:59 , Processed in 0.047390 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表