Excel精英培训网

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

[已解决]重复号码的提取

[复制链接]
发表于 2015-3-30 20:26 | 显示全部楼层 |阅读模式
本帖最后由 dulian168 于 2015-3-31 02:43 编辑


各位  老师       麻烦帮我提取下重复号码   



详细 在附件


谢谢
最佳答案
2015-3-31 02:24
  1. Function cf(rg As Range, tj As Integer) '1 代表重复,2代表替换
  2. '=cf(单元格,1)   =cf(单元格,2)
  3. Dim x, d, s, st, st1
  4. Set d = CreateObject("scripting.dictionary")
  5. st1 = rg
  6.     For x = 1 To Len(rg)
  7.       st = Mid(rg, x, 1)
  8.         If d.exists(st) Then
  9.             st1 = Replace(st1, st, "")
  10.             If InStr(s, st) = 0 Then s = s & st
  11.          Else
  12.             d(st) = ""
  13.         End If
  14.     Next
  15. cf = IIf(tj = 1, s & "", IIf(tj = 2, st1, ""))
  16. End Function
复制代码

3D数据tiqu.zip

230.88 KB, 下载次数: 11

发表于 2015-3-30 22:07 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2015-3-31 00:05 | 显示全部楼层
26759761@qq.com 发表于 2015-3-30 22:07
自定义函数行不行

只要是能复制的  就可以
回复

使用道具 举报

发表于 2015-3-31 02:24 | 显示全部楼层    本楼为最佳答案   
  1. Function cf(rg As Range, tj As Integer) '1 代表重复,2代表替换
  2. '=cf(单元格,1)   =cf(单元格,2)
  3. Dim x, d, s, st, st1
  4. Set d = CreateObject("scripting.dictionary")
  5. st1 = rg
  6.     For x = 1 To Len(rg)
  7.       st = Mid(rg, x, 1)
  8.         If d.exists(st) Then
  9.             st1 = Replace(st1, st, "")
  10.             If InStr(s, st) = 0 Then s = s & st
  11.          Else
  12.             d(st) = ""
  13.         End If
  14.     Next
  15. cf = IIf(tj = 1, s & "", IIf(tj = 2, st1, ""))
  16. End Function
复制代码

3D数据tiqu.zip

360.46 KB, 下载次数: 5

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 12:05 , Processed in 0.280653 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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