ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-7 17:48 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

帮忙看看,谢谢
代码单号组序号每组需要取数数量如何取数
SASC0201BJ06180225005815BJ061802250058
SASC0201BJ06180225009215
#VALUE!
SASC0201BJ06180225008115
#VALUE!
SASC0201BJ06180225007315
#VALUE!
SASC0201BJ06180225009015
#VALUE!
SASC0201BJ06180225009115
SASC0201BJ06180226002215
SASC0201BJ06180226001115
SASC0201BJ06180226001815
SASC0201BJ06180226006815
SASC0301CD07180225003127
#VALUE!
SASC0301CD07180225002927
#VALUE!
SASC0301CD07180226000527
#VALUE!
SASC0301CD07180226000127
#VALUE!
SASC0301CD07180226001127
#VALUE!
SASC0301CD07180226000727
#VALUE!
SASC0301CD07180226002027
#VALUE!
SASC0301CD07180226001027
SASC0301CD07180226001527
SASC0301CD07180226002127
SASC0301CD07180226001427
SASC0301CD07180226003127
SASC5201HDJX180226000234
#VALUE!
SASC5201HDJX180226000134
#VALUE!
SASC5201HDJX180226001034
#VALUE!
SASC5201HDJX180226000634
#VALUE!
SASC5201HDJX180226000834
SASC5201HDJX180226000734
SASC5201HDJX180226001134
SASC5201HDJX180226001234
SASC5201HDJX180226000334

TA的精华主题

TA的得分主题

发表于 2018-3-7 17:54 | 显示全部楼层
如何取数.rar (16.02 KB, 下载次数: 13)

结果是按1,2,3排列,但1,2,3内部是乱序的。

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-3-7 18:04 | 显示全部楼层
梦幻小丑 发表于 2018-3-7 17:54
结果是按1,2,3排列,但1,2,3内部是乱序的。

你这个有取巧嫌疑,直接把对应数量成为常量数组呀,换个数据不就又要改了

TA的精华主题

TA的得分主题

发表于 2018-3-7 18:06 | 显示全部楼层
本帖最后由 LSL1128xgw 于 2018-3-8 09:12 编辑

我提供两个一个是区域数组 一次性给出 一个是对应区域给出
对应区域公式更改为:=IF(SUM(N(C$2:C2=C2))>D2,"",INDEX(B:B,SMALL(IF((C$2:C32=C2)*(COUNTIF(F$1:F1,B$2:B32)=0),ROW($2:32)),1+RAND()*(SUM(N(C$2:C32=C2))-SUM(N(C$2:C2=C2))))))

如何取数.zip

16.78 KB, 下载次数: 13

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-3-7 18:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

数组公式 需要三键输入
  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)),RAND()*(COUNTIF(A:A,A2)-ROW()+MATCH(A2,A:A,)-1)+1+SUM(N(E$1:E1="")))),"")
复制代码


如何取数.rar

15.99 KB, 下载次数: 6

TA的精华主题

TA的得分主题

发表于 2018-3-7 18:10 | 显示全部楼层
(先)G3:G5=SUM(I$2:I2)+1

(先)J3:J5=SUM(I$2:I2)

E2:E19{=IF(ROW(A1)>SUM(I$3:I$5),"",INDEX(B:B,SMALL(IF((C$2:C$32=LOOKUP(ROW(A1),G:G,H:H))*(COUNTIF(E$1:E1,B$2:B$32)=0),ROW(C$2:C$32)),RANDBETWEEN(1,SUM(N(C$2:C$32=LOOKUP(ROW(A1),G:G,H:H)))+1-ROW(A1)+VLOOKUP(ROW(A1),G:J,4,1)))))

K2:K5=SUMPRODUCT(COUNTIF(B$2:B$32,OFFSET(E$2,J3,,I3))*COUNTIF(OFFSET(E$2,J3,,I3),OFFSET(E$2,J3,,I3)))

E2:E19格式化 (2組)=(ROW(A1)>I$3)*(ROW(A1)<=I$3+I$4)
4151.png

TA的精华主题

TA的得分主题

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

TA的精华主题

TA的得分主题

发表于 2018-3-7 19:00 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
LSL1128xgw 发表于 2018-3-7 18:04
你这个有取巧嫌疑,直接把对应数量成为常量数组呀,换个数据不就又要改了

本来数量就是已知数,没必要自已给自已找麻烦。非要用公式求的话用LOOKPU{1,2,3},)就可以了。

TA的精华主题

TA的得分主题

发表于 2018-3-7 20:45 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-3-7 22:00 | 显示全部楼层
如何取数-h.rar (7.74 KB, 下载次数: 22)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 19:25 , Processed in 0.049536 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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