ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何从M个数里面随机取N个数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-3-7 15:54 | 显示全部楼层 |阅读模式
各位高手,求助

下面三组数,如何用公式实现组序号是1的,随机取5个(取单号列),组序号是2的,随机取7个(取单号列),组序号是3的,随机取4个(取单号列).

代码单号组序号每组需要取数数量
SASC0201BJ06180225005815
SASC0201BJ06180225009215
SASC0201BJ06180225008115
SASC0201BJ06180225007315
SASC0201BJ06180225009015
SASC0201BJ06180225009115
SASC0201BJ06180226002215
SASC0201BJ06180226001115
SASC0201BJ06180226001815
SASC0201BJ06180226006815
SASC0301CD07180225003127
SASC0301CD07180225002927
SASC0301CD07180226000527
SASC0301CD07180226000127
SASC0301CD07180226001127
SASC0301CD07180226000727
SASC0301CD07180226002027
SASC0301CD07180226001027
SASC0301CD07180226001527
SASC0301CD07180226002127
SASC0301CD07180226001427
SASC0301CD07180226003127
SASC5201HDJX180226000234
SASC5201HDJX180226000134
SASC5201HDJX180226001034
SASC5201HDJX180226000634
SASC5201HDJX180226000834
SASC5201HDJX180226000734
SASC5201HDJX180226001134
SASC5201HDJX180226001234
SASC5201HDJX180226000334

如何取数.rar

14.58 KB, 下载次数: 26

TA的精华主题

TA的得分主题

发表于 2018-3-7 15:59 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-7 16:03 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-3-7 16:45 | 显示全部楼层
楼主是需要一个公式下拉得出所有的吗 还是对应区域得到随机个数值

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-7 16:52 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
需要一个组合公式,取出对应组的单号,C列是组序号,D列是每组需要取出的单号数量,通过公式把要取的单号(B列)取出。

TA的精华主题

TA的得分主题

发表于 2018-3-7 16:52 | 显示全部楼层
LSL1128xgw 发表于 2018-3-7 16:45
楼主是需要一个公式下拉得出所有的吗 还是对应区域得到随机个数值

我先开个火车试试看吧...
E2,数组公式下拉
  1. =IF(ROW()-MATCH(A2,A:A,)<D2,INDEX(B:B,SMALL(IF(COUNTIF(E$1:E1,OFFSET(B$1,MATCH(A2,A:A,)-1,,COUNTIF(A:A,A2)))=0,ROW(INDIRECT("1:"&COUNTIF(A:A,A2)))+MATCH(A2,A:A,)-1),RANDBETWEEN(1,COUNTIF(A:A,A2)-ROW()+MATCH(A2,A:A,)))),"")
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-3-7 16:52 | 显示全部楼层
随机出来的数据要不要按原来的先后顺序排列?还是只要1的排在一起,2的排在一起,3的排在一起,还是可以乱排?

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-7 17:16 | 显示全部楼层
最好是在对应的组后面显示,如果不行,也可以乱排,只要满足条件。

TA的精华主题

TA的得分主题

发表于 2018-3-7 17:21 | 显示全部楼层
本帖最后由 七夕、 于 2018-3-7 17:27 编辑

简化一下:
  1. =IF(ROW()-MATCH(A2,A:A,)<D2,INDEX(B:B,SMALL(IF(COUNTIF(E$1:E1,B$2:B$32)=0,ROW($2:$32)),RANDBETWEEN(1+SUM(N(E$1:E1="")),SUM(N(E$1:E1=""))+COUNTIF(A:A,A2)-ROW()+MATCH(A2,A:A,)))),"")
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-7 17:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
七夕、 发表于 2018-3-7 16:52
我先开个火车试试看吧...
E2,数组公式下拉

帮忙再看看,没出来正确的,谢谢

代码        单号        组序号        每组需要取数数量        如何取数
SASC0201        BJ061802250058        1        5        #NUM!
SASC0201        BJ061802250092        1        5        #NUM!
SASC0201        BJ061802250081        1        5        #NUM!
SASC0201        BJ061802250073        1        5        #NUM!
SASC0201        BJ061802250090        1        5        BJ061802250058
SASC0201        BJ061802250091        1        5       
SASC0201        BJ061802260022        1        5       
SASC0201        BJ061802260011        1        5       
SASC0201        BJ061802260018        1        5       
SASC0201        BJ061802260068        1        5       
SASC0301        CD071802250031        2        7        CD071802250031
SASC0301        CD071802250029        2        7        CD071802250031
SASC0301        CD071802260005        2        7        #NUM!
SASC0301        CD071802260001        2        7        #NUM!
SASC0301        CD071802260011        2        7        #NUM!
SASC0301        CD071802260007        2        7        #NUM!
SASC0301        CD071802260020        2        7        #NUM!
SASC0301        CD071802260010        2        7       
SASC0301        CD071802260015        2        7       
SASC0301        CD071802260021        2        7       
SASC0301        CD071802260014        2        7       
SASC0301        CD071802260031        2        7       
SASC5201        HDJX1802260002        3        4        #NUM!
SASC5201        HDJX1802260001        3        4        #NUM!
SASC5201        HDJX1802260010        3        4        #NUM!
SASC5201        HDJX1802260006        3        4        #NUM!
SASC5201        HDJX1802260008        3        4       
SASC5201        HDJX1802260007        3        4       
SASC5201        HDJX1802260011        3        4       
SASC5201        HDJX1802260012        3        4       
SASC5201        HDJX1802260003        3        4       
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-27 20:11 , Processed in 0.037275 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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