Excel精英培训网

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

[已解决]按条件提取

[复制链接]
发表于 2014-11-21 19:39 | 显示全部楼层 |阅读模式
本帖最后由 left369 于 2014-11-21 21:42 编辑

按条件提取
最佳答案
2014-11-21 20:08
  1. Function zdy(rng, n)
  2. Dim w(9), i%
  3. x = Split(rng, ",")
  4. For i = 1 To UBound(x)
  5.     y = Mid(x(i), n, 1)
  6.     w(y) = y
  7.     If Len(Join(w, "")) = 5 Then zdy = Join(w, ""): Exit For
  8. Next
  9. End Function
复制代码

xt.rar

3.59 KB, 下载次数: 8

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-11-21 20:06 | 显示全部楼层
回复

使用道具 举报

发表于 2014-11-21 20:08 | 显示全部楼层    本楼为最佳答案   
  1. Function zdy(rng, n)
  2. Dim w(9), i%
  3. x = Split(rng, ",")
  4. For i = 1 To UBound(x)
  5.     y = Mid(x(i), n, 1)
  6.     w(y) = y
  7.     If Len(Join(w, "")) = 5 Then zdy = Join(w, ""): Exit For
  8. Next
  9. End Function
复制代码

xt.zip

8.86 KB, 下载次数: 8

回复

使用道具 举报

 楼主| 发表于 2014-11-21 21:40 | 显示全部楼层
dsmch 发表于 2014-11-21 20:08

极度强大的函数,谢谢。一个函数名就解决了。非常感谢!

如果是求余下的5个不同数字,代码不知道哪里修改,老师!

点评

余下的5个不同数字具体指什么?  发表于 2014-11-21 21:54
回复

使用道具 举报

 楼主| 发表于 2014-11-21 22:09 | 显示全部楼层
dsmch 发表于 2014-11-21 20:08

比如已提取的5个不同的数字:如提取是01467  ,那么余下的5个数字为:23589  。这个也可以用函数求出么。
回复

使用道具 举报

发表于 2014-11-21 22:18 | 显示全部楼层
  1. Function zdy2(rng, n)
  2. Dim w(9), i%, zf$$
  3. zf = "0123456789"
  4. x = Split(rng, ",")
  5. For i = 1 To UBound(x)
  6.     y = Mid(x(i), n, 1)
  7.     w(y) = y: zf = Replace(zf, y, "")
  8.     If Len(Join(w, "")) = 5 Then zdy2 = zf: Exit For
  9. Next
  10. End Function
复制代码
回复

使用道具 举报

 楼主| 发表于 2014-11-21 22:52 | 显示全部楼层
dsmch 发表于 2014-11-21 22:18

  • Dim w(9), i%, zf$$
  • 谢谢老师! 这句代码后面是不是多了一个$  。


点评

论坛故障,一生二,由来已久。  发表于 2014-11-22 05:25
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 12:10 , Processed in 0.353476 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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