额是穷银 发表于 2021-11-5 11:02:00

请教随机不重复选择问题

又来叨扰各位大佬,之前发过一个相似求助,但因为是在EXCEL里排分表做了每个教室的平面图,由于人数和座位的区别,所以不太好实现需求。现在我做了一下优化,希望大佬能够帮忙解决。如图:A列A3开始是手动输入的考生姓名,B-M列第一行是考室名称,第二行是每个考室最大容纳人数,一共最大能容纳578名考生,需求是:
1.在录入任意数量考生后,以随机乱序的方式从3-1教室开始分配考生(姓名自动填入,直至当前教室最大容量),比如,这次一共有60名考生,那么在B列B3往下就会随机有45个考生姓名,然后C列C3往下就有15名考生姓名,以此列推。
2.如果录入考生数量超过578名(所有教室已经分配满),将剩余未分配的考生姓名自动列入N列N3往下。
感谢帮助!

内蒙古龙之匠装饰有限责任公司 发表于 2021-12-16 10:00:04


vba解

实习生 发表于 2022-1-13 03:55:43

感谢大佬帮助!同时希望能了解函数解法。

陈育彬 发表于 2022-1-13 15:43:30

函数就是rand和rank函数

吐槽小达人 发表于 2022-1-21 00:28:21

这个知识比较空白,麻烦具体指教一下,谢谢!

石杰 发表于 2022-1-22 17:29:57

(辅助 1) P3:P580=RAND()
(辅助 2) Q3:Q580=RANK(P3,P:P)
B3:N3 下拉{=IF((ROW(A1)>B$2)*(B$2<>""),"",IFERROR(INDEX($A:$A,RIGHT(SMALL($Q$3:$Q$580/1%%+ROW($3:$580),SUM($A$2:A$2)+ROW(A1)),4)),""))
TEST :人数刚好第二行减少人数N列即产生

祁俊 发表于 2022-2-13 03:17:25

厉害。。。。!!!
页: [1]
查看完整版本: 请教随机不重复选择问题