Excel: การสร้างกลุ่มแบบสุ่ม

สถานการณ์:

120 คน ต้องเลือก 3 ตัวเลือกจากทั้งหมด 10 รายการ

ฉันต้องสุ่มเลือก 2 ตัวจากตัวเลือก (ต่อคน) แล้วแบ่ง (120 คน) ออกเป็น 12 กลุ่ม

12 กลุ่ม ได้แก่ รายชื่อ 10 + 2 คู่ จากรายชื่อ 10 ที่ได้รับเลือกมากที่สุด

ขนาดสูงสุดของกลุ่มคือ 20

ฉันพบสูตรนี้เพื่อสุ่มเลือก 1 ตัวเลือกจาก 3 ตัวเลือก แต่ฉันติดอยู่กับขั้นตอนถัดไป:

=INDEX($A$2:$A$4,RANDBETWEEN(1,COUNTA($A$2:$A$4)),1)

โดยตัวเลือกของคนแรกอยู่ใน A2, A3 และ A4

มีความคิดอะไรบ้าง?

ข้อมูลตัวอย่าง:

รายการ 10 ตัวเลือก: choice1 choice2 ... choice10

รายชื่อผู้ใช้ 120 ราย: user1 user2 ... user120

รายชื่อ 12 กลุ่ม: groupchoice1 groupchoice2 ... groupchoice10 groupchoicewhatevergetspickedthemost groepchoicewhatevergetspickedthesecondmost

ผู้ใช้ 1 เลือก choice4, choice6 และ choice10

ผู้ใช้ 2 เลือก choice1, choice4, choice7

ผู้ใช้ 3 เลือก choice5, choice6, choice7

...

ผู้ใช้ 120 เลือก choice3, choice4, choice9

=> ฉันต้องสุ่มเลือก 2 จาก 3 ตัวเลือกจากผู้ใช้แต่ละคน และจัดผู้ใช้นั้นไว้ใน 2 กลุ่มนั้น เติมกลุ่มจนถึง 20


person Bram Mostinckx    schedule 19.06.2017    source แหล่งที่มา
comment
มันยากที่จะเข้าใจปัญหาของคุณ บางทีคุณสามารถเพิ่มตัวอย่างได้?   -  person Karoline Brynildsen    schedule 19.06.2017
comment
เพิ่มข้อมูลตัวอย่างบางส่วน   -  person Bram Mostinckx    schedule 20.06.2017
comment
ฉันคิดว่าฉันเห็นสิ่งที่คุณกำลังพยายามทำ -- แต่ทำไมคุณถึงพยายาม สุ่ม นั่นทำให้ยากขึ้นมากที่จะปฏิบัติตามข้อจำกัด 20 คนในแต่ละกลุ่ม (โดยแต่ละคนแยกเป็น 2 กลุ่ม) หากคุณทิ้งข้อกำหนดการสุ่ม ก็สามารถตั้งค่าเป็นปัญหาการเขียนโปรแกรมจำนวนเต็มซึ่งตัวแก้ปัญหาสามารถแก้ไขได้ ไม่เช่นนั้นอาจจำเป็นต้องใช้ VBA สูตรสเปรดชีตแบบธรรมดาไม่น่าจะเพียงพอ   -  person John Coleman    schedule 20.06.2017


คำตอบ (1)


ตั้งค่าไฟล์... :

column A = user1 user2 ... user120. [starting at A1]
column B,C,D = "choice1 choice2 choice3"
column G,H = "pick 2 from the 3 choices"

column F is used for G & H determination.

ส่วนเรื่องค่านิยมนั้น

A1 = user1
A2 = user2 ...

และสูตร:

B1 ---> =RANDBETWEEN(1,10)
C1 ---> =INDEX(IF(B1=1,{2,3,4,5,6,7,8,9,10},IF(B1=2,{1,3,4,5,6,7,8,9,10},IF(B1=3,{1,2,4,5,6,7,8,9,10},IF(B1=4,{1,2,3,5,6,7,8,9,10},IF(B1=5,{1,2,3,4,6,7,8,9,10},IF(B1=6,{1,2,3,4,5,7,8,9,10},IF(B1=7,{1,2,3,4,5,6,8,9,10},IF(B1=8,{1,2,3,4,5,6,7,9,10},IF(B1=9,{1,2,3,4,5,6,7,8,10},IF(B1=10,{1,2,3,4,5,6,7,8,9},"ERROR")))))))))),RANDBETWEEN(1,9))
D1 ---> =INDEX(IF(OR(AND(B1=1,C1=2),AND(B1=2,C1=1)),{3,4,5,6,7,8,9,10},IF(OR(AND(B1=1,C1=3),AND(B1=3,C1=1)),{2,4,5,6,7,8,9,10},IF(OR(AND(B1=1,C1=4),AND(B1=4,C1=1)),{2,3,5,6,7,8,9,10},IF(OR(AND(B1=1,C1=5),AND(B1=5,C1=1)),{2,3,4,6,7,8,9,10},IF(OR(AND(B1=1,C1=6),AND(B1=6,C1=1)),{2,3,4,5,7,8,9,10},IF(OR(AND(B1=1,C1=7),AND(B1=7,C1=1)),{2,3,4,5,6,8,9,10},IF(OR(AND(B1=1,C1=8),AND(B1=8,C1=1)),{2,3,4,5,6,7,9,10},IF(OR(AND(B1=1,C1=9),AND(B1=9,C1=1)),{2,3,4,5,6,7,8,10},IF(OR(AND(B1=1,C1=10),AND(B1=10,C1=1)),{2,3,4,5,6,7,8,9},IF(OR(AND(B1=2,C1=3),AND(B1=3,C1=2)),{1,4,5,6,7,8,9,10},IF(OR(AND(B1=2,C1=4),AND(B1=4,C1=2)),{1,3,5,6,7,8,9,10},IF(OR(AND(B1=2,C1=5),AND(B1=5,C1=2)),{1,3,4,6,7,8,9,10},IF(OR(AND(B1=2,C1=6),AND(B1=6,C1=2)),{1,3,4,5,7,8,9,10},IF(OR(AND(B1=2,C1=7),AND(B1=7,C1=2)),{1,3,4,5,6,8,9,10},IF(OR(AND(B1=2,C1=8),AND(B1=8,C1=2)),{1,3,4,5,6,7,9,10},IF(OR(AND(B1=2,C1=9),AND(B1=9,C1=2)),{1,3,4,5,6,7,8,10},IF(OR(AND(B1=2,C1=10),AND(B1=10,C1=2)),{1,3,4,5,6,7,8,9},IF(OR(AND(B1=3,C1=4),AND(B1=4,C1=3)),{1,2,5,6,7,8,9,10},IF(OR(AND(B1=3,C1=5),AND(B1=5,C1=3)),{1,2,4,6,7,8,9,10},IF(OR(AND(B1=3,C1=6),AND(B1=6,C1=3)),{1,2,4,5,7,8,9,10},IF(OR(AND(B1=3,C1=7),AND(B1=7,C1=3)),{1,2,4,5,6,8,9,10},IF(OR(AND(B1=3,C1=8),AND(B1=8,C1=3)),{1,2,4,5,6,7,9,10},IF(OR(AND(B1=3,C1=9),AND(B1=9,C1=3)),{1,2,4,5,6,7,8,10},IF(OR(AND(B1=3,C1=10),AND(B1=10,C1=3)),{1,2,4,5,6,7,8,9},IF(OR(AND(B1=4,C1=5),AND(B1=5,C1=4)),{1,2,3,6,7,8,9,10},IF(OR(AND(B1=4,C1=6),AND(B1=6,C1=4)),{1,2,3,5,7,8,9,10},IF(OR(AND(B1=4,C1=7),AND(B1=7,C1=4)),{1,2,3,5,6,8,9,10},IF(OR(AND(B1=4,C1=8),AND(B1=8,C1=4)),{1,2,3,5,6,7,9,10},IF(OR(AND(B1=4,C1=9),AND(B1=9,C1=4)),{1,2,3,5,6,7,8,10},IF(OR(AND(B1=4,C1=10),AND(B1=10,C1=4)),{1,2,3,5,6,7,8,9},IF(OR(AND(B1=5,C1=6),AND(B1=6,C1=5)),{1,2,3,4,7,8,9,10},IF(OR(AND(B1=5,C1=7),AND(B1=7,C1=5)),{1,2,3,4,6,8,9,10},IF(OR(AND(B1=5,C1=8),AND(B1=8,C1=5)),{1,2,3,4,6,7,9,10},IF(OR(AND(B1=5,C1=9),AND(B1=9,C1=5)),{1,2,3,4,6,7,8,10},IF(OR(AND(B1=5,C1=10),AND(B1=10,C1=5)),{1,2,3,4,6,7,8,9},IF(OR(AND(B1=6,C1=7),AND(B1=7,C1=6)),{1,2,3,4,5,8,9,10},IF(OR(AND(B1=6,C1=8),AND(B1=8,C1=6)),{1,2,3,4,5,7,9,10},IF(OR(AND(B1=6,C1=9),AND(B1=9,C1=6)),{1,2,3,4,5,7,8,10},IF(OR(AND(B1=6,C1=10),AND(B1=10,C1=6)),{1,2,3,4,5,7,8,9},IF(OR(AND(B1=7,C1=8),AND(B1=8,C1=7)),{1,2,3,4,5,6,9,10},IF(OR(AND(B1=7,C1=9),AND(B1=9,C1=7)),{1,2,3,4,5,6,8,10},IF(OR(AND(B1=7,C1=10),AND(B1=10,C1=7)),{1,2,3,4,5,6,8,9},IF(OR(AND(B1=8,C1=9),AND(B1=9,C1=8)),{1,2,3,4,5,6,7,10},IF(OR(AND(B1=8,C1=10),AND(B1=10,C1=8)),{1,2,3,4,5,6,7,9},IF(OR(AND(B1=9,C1=10),AND(B1=10,C1=9)),{1,2,3,4,5,6,7,8},"error"))))))))))))))))))))))))))))))))))))))))))))),RANDBETWEEN(1,8))
F1 ---> =RANDBETWEEN(1,3)
G1 ---> =IF(F1=1,C1,B1)
H1 ---> =IF(F1<>3,D1,C1)

หวังว่านี่จะช่วยได้ .. (:

person p._phidot_    schedule 19.08.2018