Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2405|回复: 8

[已解决]去掉一个单元格中的重复数字

[复制链接]
发表于 2016-7-30 11:11 | 显示全部楼层 |阅读模式
如;9951600284这个数字是在一个单元格中 ,我想在另一个单元格生成 95160284就是把相同的数字只显一个,看看哪位大侠能帮助一下。
最佳答案
2016-7-30 15:08
  1. Sub cdsr() '假设数据在A列
  2.     Dim i%, j%, d As Object
  3.     Set d = CreateObject("scripting.dictionary")
  4.     For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
  5.         For j = 1 To Len(Cells(i, 1))
  6.             d(Mid(Cells(i, 1), j, 1)) = ""
  7.         Next
  8.         s = d.keys
  9.         Cells(i, 2) = Join(s, "")
  10.     Next
  11. End Sub
复制代码
发表于 2016-7-30 12:54 | 显示全部楼层
回复

使用道具 举报

发表于 2016-7-30 13:29 | 显示全部楼层
如果数据在A列
Sub xx()
Dim arr, ar, i%, s, d As Object, k, brr(), n%
Set d = CreateObject("scripting.dictionary")
arr = Range("a1", [a1].End(4))
For Each ar In arr
i = Len(ar)
s = StrReverse(ar)
For j = 1 To i
d(Mid(s, j, 1)) = ""
Next
For Each k In d.keys
x = k & x
Next
n = n + 1
ReDim Preserve brr(1 To n)
brr(n) = x
x = ""
d.RemoveAll
Next
[b1].Resize(n) = Application.Transpose(brr)
End Sub
回复

使用道具 举报

发表于 2016-7-30 15:08 | 显示全部楼层    本楼为最佳答案   
  1. Sub cdsr() '假设数据在A列
  2.     Dim i%, j%, d As Object
  3.     Set d = CreateObject("scripting.dictionary")
  4.     For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
  5.         For j = 1 To Len(Cells(i, 1))
  6.             d(Mid(Cells(i, 1), j, 1)) = ""
  7.         Next
  8.         s = d.keys
  9.         Cells(i, 2) = Join(s, "")
  10.     Next
  11. End Sub
复制代码

评分

参与人数 3 +19 金币 +15 收起 理由
W517775882 + 1 来学习
望帝春心 + 3 诗人无处不在啊
心正意诚身修 + 15 + 15 赞一个

查看全部评分

回复

使用道具 举报

发表于 2016-7-30 16:08 | 显示全部楼层
数组公式
=MID(SUM(MID(A1&"0123456789",SMALL(FIND(ROW($1:$10)-1,A1&"0123456789"),ROW($1:$10)),1)/10^ROW($1:$10)),3,COUNT(FIND(ROW($1:$10)-1,A1)))

评分

参与人数 3 +34 金币 +30 收起 理由
W517775882 + 1 赞一个
望帝春心 + 3 太强大了
心正意诚身修 + 30 + 30 我和小伙伴都惊呆了

查看全部评分

回复

使用道具 举报

发表于 2016-7-31 11:08 | 显示全部楼层
好强大好强大啊, 好好哦
回复

使用道具 举报

发表于 2016-8-1 10:48 | 显示全部楼层
学习了!!!
回复

使用道具 举报

发表于 2016-8-1 12:23 | 显示全部楼层
开辆火车向五楼老师致敬,"A1&"思路太妙了,数组公式
  1. =SUM(MID(A1,SMALL(IF(IF(FREQUENCY(-MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),-MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>0,--MID(A1,ROW(INDIRECT("1:"&LEN(A1)+1)),1))<>FALSE,ROW(INDIRECT("1:"&LEN(A1)+1))),ROW(INDIRECT("1:"&COUNT(FIND(ROW($1:$10)-1,A1))))),1)*10^(COUNT(FIND(ROW($1:$10)-1,A1))-ROW(INDIRECT("1:"&COUNT(FIND(ROW($1:$10)-1,A1))))))
复制代码

评分

参与人数 3 +14 金币 +10 收起 理由
心正意诚身修 + 10 + 10 赞一个
huangcaiguang + 3 哇,龙哥还会开火车
W517775882 + 1 很给力

查看全部评分

回复

使用道具 举报

发表于 2016-8-1 18:59 | 显示全部楼层
本帖最后由 datongye 于 2016-8-1 19:19 编辑

正则(.)(?=.*\1)替换为""
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-29 12:11 , Processed in 0.285235 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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