ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3492|回复: 12

[求助] 从10个数字中随机抽取5个数字

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-8-7 09:50 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
从10个数字中随机抽取5个数字(不重复),这个应该是怎么操作的呢?公式如何列出?

TA的精华主题

TA的得分主题

发表于 2023-8-7 09:56 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-8-7 10:00 | 显示全部楼层
本帖最后由 xlllw203 于 2023-8-7 10:02 编辑

=--RIGHT(SMALL(RANDBETWEEN(ROW($1:$10),50)/1%%%+ROW($1:$10),ROW($1:$5)),2)
选1列5个单元格,输入区域数组
1-10里取5个,如果是其他的数自己替换红色部分,数很大right就多取几位

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-8-7 10:17 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-8-7 10:19 | 显示全部楼层
xlllw203 发表于 2023-8-7 10:00
=--RIGHT(SMALL(RANDBETWEEN(ROW($1:$10),50)/1%%%+ROW($1:$10),ROW($1:$5)),2)
选1列5个单元格,输入区域 ...

这个也是看不明白呢?能做一个表格给我看看吗

TA的精华主题

TA的得分主题

发表于 2023-8-7 10:25 | 显示全部楼层
Sub GenerateRandomNumbers()
    Dim Numbers(1 To 10) As Integer
    Dim RandomIndex As Integer
    Dim Temp As Integer
    Dim LastPosition As Integer
    Dim i As Integer

    ' 初始化数组
    For i = 1 To 10
        Numbers(i) = i
    Next i

    LastPosition = 10

    ' 使用洗牌算法打乱数组
    For i = 1 To 5
        RandomIndex = Int(Rnd() * LastPosition) + 1
        ' 将随机选中的数字放到 A 列
        Cells(i, 1).Value = Numbers(RandomIndex)

        ' 交换当前随机选中的数字与数组的最后一个数字
        Temp = Numbers(RandomIndex)
        Numbers(RandomIndex) = Numbers(LastPosition)
        Numbers(LastPosition) = Temp

        ' 减小可选数字的范围
        LastPosition = LastPosition - 1
    Next i
End Sub

自动5.rar

14.66 KB, 下载次数: 23

TA的精华主题

TA的得分主题

发表于 2023-8-7 10:27 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-8-7 11:14 | 显示全部楼层
hbooy 发表于 2023-8-7 10:19
这个也是看不明白呢?能做一个表格给我看看吗

我传不了附件。。
这样,你鼠标框选a1:a5一共5个单元格,然后把公式复制进去,按CTRL+SHIFT+ENTER,三键一起按,结果就出来了

TA的精华主题

TA的得分主题

发表于 2023-8-7 15:35 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-8-7 16:05 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
=TAKE(SORTBY(ROW(1:10),RANDARRAY(10)),5)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 18:34 , Processed in 0.035321 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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