Excel精英培训网

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

[已解决]文本与数字随机生成

[复制链接]
发表于 2015-3-20 14:36 | 显示全部楼层 |阅读模式
本帖最后由 张雄友 于 2015-3-21 08:19 编辑

文本能否与数字一样能产生可延续性?
最佳答案
2015-3-21 07:11
  1. Sub dsmch()
  2. Dim w, rng As Range, arr, i&, j&
  3. ActiveSheet.UsedRange = ""
  4. Set rng = Application.InputBox("选取填充区域", Type:=8)
  5. If rng.Count < 2 Then Exit Sub
  6. arr = rng
  7. ReDim w(1 To 50)
  8. 'w(1) = "停产": w(2) = "滞销"
  9. For i = 1 To UBound(w)
  10.     w(i) = i
  11. Next
  12. n = UBound(w)
  13. '根据单元格大小,确定抽取不重复随机次数
  14. m = IIf(rng.Count > n, n, rng.Count)
  15. For i = 1 To UBound(arr)
  16.     For j = 1 To UBound(arr, 2)
  17.         n2 = n - s
  18.         x = Int(Rnd * n2 + 1)
  19.         arr(i, j) = w(x)
  20.         w(x) = w(n2)
  21.         s = s + 1
  22.         If s = m Then GoTo 100
  23.     Next
  24. Next
  25. 100:
  26. rng = arr
  27. End Sub
复制代码

文本.rar

10.55 KB, 下载次数: 8

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-3-20 15:01 | 显示全部楼层
QQ截图20150320145432.jpg
方便看


1)范围改下。=RANDBETWEEN(1,102)
2)替换掉多出的2个特殊数值。比如,可将101替换为停产,102替换为滞销
回复

使用道具 举报

 楼主| 发表于 2015-3-20 15:08 | 显示全部楼层
爱疯 发表于 2015-3-20 15:01
方便看

这样会重复的,不妥啊。
回复

使用道具 举报

发表于 2015-3-20 15:12 | 显示全部楼层
是否重复的说明,在哪儿呢?!
回复

使用道具 举报

 楼主| 发表于 2015-3-20 15:15 | 显示全部楼层
爱疯 发表于 2015-3-20 15:12
是否重复的说明,在哪儿呢?!

工作表的第一句就说了的:想在上述区域产生不重复随机数。请查看。
回复

使用道具 举报

发表于 2015-3-20 15:40 | 显示全部楼层
既然第一句就说了:想在上述区域产生不重复随机数。

为何结果中又存在重复?有多个单元格中是"停产"或"滞销"
回复

使用道具 举报

发表于 2015-3-20 15:51 | 显示全部楼层
其实还是一样的思路呀。可以用字典判断一下,去重。
回复

使用道具 举报

发表于 2015-3-20 15:58 | 显示全部楼层
本帖最后由 dsmch 于 2015-3-20 16:58 编辑


Sub Macro1()
Dim w(1 To 102), arr, i&, j%
arr = [b2:j10]
w(1) = "停产": w(2) = "滞销"
For i = 3 To 102
    w(i) = i - 2
Next
n = UBound(w)
For i = 1 To UBound(arr)
    For j = 1 To UBound(arr, 2)
        n2 = n - s
        x = Int(Rnd * n2 + 1)
        arr(i, j) = w(x)
        w(x) = w(n2)
        s = s + 1
    Next
Next
[b2:j10] = arr
End Sub

评分

参与人数 1 +6 收起 理由
张雄友 + 6 研究一下先。

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2015-3-20 22:16 | 显示全部楼层
爱疯 发表于 2015-3-20 15:40
既然第一句就说了:想在上述区域产生不重复随机数。

为何结果中又存在重复?有多个单元格中是"停产"或"滞 ...

我的语文水平从来不及格,不是说不清楚就是误导别人,我也很怪我自己的其实。唉。。。。。。
回复

使用道具 举报

 楼主| 发表于 2015-3-21 06:04 | 显示全部楼层
dsmch 发表于 2015-3-20 15:58
Sub Macro1()
Dim w(1 To 102), arr, i&, j%
arr =

利用此方法输出不重复随机数超快!问题是当区域总个数如本例:[A1:C20]有60个单元格,大于总个数50时,会出错,能不能输出50个?
因为60个单元格足够装下50个不重复数据了!

文本参与生成随机数的问题.rar

12.2 KB, 下载次数: 4

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-28 21:06 , Processed in 0.564038 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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