Excel精英培训网

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

[已解决]抽取数字组合

[复制链接]
发表于 2014-11-27 09:53 | 显示全部楼层 |阅读模式
本帖最后由 米特峰 于 2014-11-27 11:07 编辑

组合.zip (10.39 KB, 下载次数: 15)
发表于 2014-11-27 10:09 | 显示全部楼层
T1单元格复制一下公式,下拉;
=MID(R$3,INT((ROW()-1)/4)+1,1)&MID($R$4,INT((MOD(ROW()-1,4))/2)+1,1)&MID($R$5,MOD(ROW()-1,2)+1,1)
回复

使用道具 举报

 楼主| 发表于 2014-11-27 10:15 | 显示全部楼层
baksy 发表于 2014-11-27 10:09
T1单元格复制一下公式,下拉;
=MID(R$3,INT((ROW()-1)/4)+1,1)&MID($R$4,INT((MOD(ROW()-1,4))/2)+1,1)&M ...

R3:R5我每个单元格都输入3个数字,这个公式就无效了,老师请用VBA,谢谢,
回复

使用道具 举报

发表于 2014-11-27 10:24 | 显示全部楼层    本楼为最佳答案   
本帖最后由 dsmch 于 2014-11-27 10:28 编辑
  1. Sub Macro1()
  2. dim arr,brr(1 to 60000,1 to 1)
  3. arr = [r3:r5]
  4. n = UBound(arr)
  5. For i = 1 To n - 2
  6.     For i2 = 1 To Len(arr(i, 1))
  7.         s1 = Mid(arr(i, 1), i2, 1)
  8.         For j = i + 1 To n - 1
  9.             For j2 = 1 To Len(arr(j, 1))
  10.                 s2 = Mid(arr(j, 1), j2, 1)
  11.                 For k = j + 1 To n
  12.                     For k2 = 1 To Len(arr(k, 1))
  13.                         s3 = Mid(arr(k, 1), k2, 1)
  14.                         s = s + 1
  15.                         brr(s, 1) = "'" & s1 & s2 & s3
  16.                     Next
  17.                 Next
  18.             Next
  19.         Next
  20.     Next
  21. Next
  22. Range("u1").Resize(s) = brr
  23. End Sub
复制代码

评分

参与人数 1 +1 收起 理由
米特峰 + 1 很给力!老师的理解能力真强

查看全部评分

回复

使用道具 举报

发表于 2014-11-27 10:59 | 显示全部楼层
………………

副本.rar

10.12 KB, 下载次数: 9

回复

使用道具 举报

 楼主| 发表于 2014-11-27 11:05 | 显示全部楼层
  1. Sub Macro1()
  2. Range("T:T").ClearContents
  3. Dim arr, brr(1 To 60000, 1 To 1)
  4. arr = [r3:r5]
  5. n = UBound(arr)
  6. For i = 1 To n - 2
  7.     For i2 = 1 To Len(arr(i, 1))
  8.         s1 = Mid(arr(i, 1), i2, 1)
  9.         For j = i + 1 To n - 1
  10.             For j2 = 1 To Len(arr(j, 1))
  11.                 s2 = Mid(arr(j, 1), j2, 1)
  12.                 For k = j + 1 To n
  13.                     For k2 = 1 To Len(arr(k, 1))
  14.                         s3 = Mid(arr(k, 1), k2, 1)
  15.                         s = s + 1
  16.                         brr(s, 1) = "'" & s1 & s2 & s3
  17.                     Next
  18.                 Next
  19.             Next
  20.         Next
  21.     Next
  22. Next
  23. Range("T1").Resize(s) = brr
  24. End Sub
复制代码
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 05:16 , Processed in 0.317707 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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