Page 1 of 1

การจัดการแบ่งจำนวนคนเป็นทีมเพื่องานแข่งขัน

Posted: Mon Feb 17, 2020 11:20 pm
by Xengsue
สวัสดีครับ
มีเรื่องมาให้ปวดหัวอีกแล้วครับ
รบกวน ด้วยครับ

คือบริษัทผมให้มีการสุ่มดูว่าใครจะได้อยู่ทีมไหน โดยกำหนดให้มี 4 ทีม, ในแต่ละทีมจำนวนคนต้องเท่ากันเช่น:
- พนักงานทั้งหมดมี 20 คน สุ่มแบ่งเป็น 4 ทีมให้เท่ากัน จะได้ทีมละ 5 คน.

- หรือว่าพนักงานมี 22 คน สุ่มแบ่งเป็น 4 ทีม จะได้ ทีมที่ 1 และ 2 ทีมละ 6 คน, ส่วนทีมที่ 3 และ 4 จะได้ทีมละ 5 คน.

ผมพยายามทำแล้วไม่ได้สักที จึ่งต้องมารบกวนช่วยให้คำชี้แนะหน่อย
และ ผมอยากทราบอีกว่า ถ้าจะกระจายชื่อทีมตามจำนวนคนที่อยู่ในทีมเช่น:

- ทีมที 1 มีด้วยกัน 5 คน
- ทีมที 2 มีด้วยกัน 3 คน

ผลที่ต้องการคือ

ทีมที 1
ทีมที 1
ทีมที 1
ทีมที 1
ทีมที 1
ทีมที 2
ทีมที 2
ทีมที 2

ข้อนี้ผมได้ใช้ Function IF ก็ได้ตามต้องการอยู่จริงแต่ ติดข้อสงสัยว่า
ถ้าจำนวนทีมมีเยอะเป็น 20 ทีมละครับ สูตร IF ของผมจะยาวไปถึงไหน เพราะฉะนั้น ผมจึ่งอยากขอคำแนะนำที่ทำให้สูตรของผมสั้นลงครับ
ผมจึ่งอยากขอคำแนะนำที่ทำให้สูตรของผมสั้นลงครับ

ขอบคุณครับ

Re: การจัดการแบ่งจำนวนคนเป็นทีมเพื่องานแข่งขัน

Posted: Mon Feb 17, 2020 11:52 pm
by snasui
:D ดาวน์โหลดไฟล์จาก Link นี้ไปศึกษาแล้วลองปรับใช้ดูก่อน ติดตรงไหนค่อยถามกันต่อครับ wordpress/random-in-group/

Re: การจัดการแบ่งจำนวนคนเป็นทีมเพื่องานแข่งขัน

Posted: Tue Feb 18, 2020 9:34 pm
by Xengsue
snasui wrote: Mon Feb 17, 2020 11:52 pm :D ดาวน์โหลดไฟล์จาก Link นี้ไปศึกษาแล้วลองปรับใช้ดูก่อน ติดตรงไหนค่อยถามกันต่อครับ wordpress/random-in-group/
ขอบคุณมากครับ
ปัญหาแรกได้ตามคำแนะนำของอาจารย์ครับ นำไปประยุกต์ใช้ได้หลายอย่างด้วยครับ

แล้วยังมีอีกข้อที่ยังไม่ได้ ไม่รู้จะทำยังไงต่อครับ คืออยากหาวิธีลดสูตรให้สั้นลงกว่าสูตรเดิมครับ
คึอสูตรก็ทำได้ตามต้องการครับ แต่ถ้าหากจำนวนทีมมีมากเป็น 10-20 ทีม จะทำให้สูตร IF ช้อน IF ยาวมากครับ เลยอยากถามว่าพอมีวิธีอื่นที่ทำได้ไหมครับ
Screenshot_20200218-212228_Excel.jpg

Re: การจัดการแบ่งจำนวนคนเป็นทีมเพื่องานแข่งขัน

Posted: Tue Feb 18, 2020 9:42 pm
by snasui
:D ไฟล์ที่แนบมานี้ต้องการจะทำอะไร ถ้าเป็นปัญหาเดียวกันเหตุใดไม่ใช้สูตรที่ผมแนะนำไป หรือทำแล้วติดปัญหาตรงไหน กรุณาอธิบายพร้อมชี้ให้เห็นปัญหาที่เกิดขึ้นจะได้ตอบต่อไปจากนั้นครับ

Re: การจัดการแบ่งจำนวนคนเป็นทีมเพื่องานแข่งขัน

Posted: Wed Feb 19, 2020 7:20 pm
by Xengsue
snasui wrote: Tue Feb 18, 2020 9:42 pm :D ไฟล์ที่แนบมานี้ต้องการจะทำอะไร ถ้าเป็นปัญหาเดียวกันเหตุใดไม่ใช้สูตรที่ผมแนะนำไป หรือทำแล้วติดปัญหาตรงไหน กรุณาอธิบายพร้อมชี้ให้เห็นปัญหาที่เกิดขึ้นจะได้ตอบต่อไปจากนั้นครับ
ที่ อาจารย์แนะนำมา ผมทำได้แล้วครับ
ประเด็นที่ผมจะทำต่อคือ ขยายทีมออกแล้ว จะสุ่มกับทีมอื่นเพื่อแข่งขันกันครับ

แต่ผมก็ใช้ IF FUNCTION ทำได้ตามต้องการเช่นกัน แต่ผมอยากลดสูตรให้สั้นลงครับ

ขอบคุณครับ

Re: การจัดการแบ่งจำนวนคนเป็นทีมเพื่องานแข่งขัน

Posted: Wed Feb 19, 2020 9:53 pm
by snasui
:D ผมคิดว่าสามารถใช้สูตรที่แนะนำไปมาช่วยได้ ได้ลองทำแล้วหรือไม่ หากยังไม่ได้ลองกรุณาลองทำมาดูก่อน ติดตรงไหนค่อยถามกันต่อครับ

Re: การจัดการแบ่งจำนวนคนเป็นทีมเพื่องานแข่งขัน

Posted: Sun Feb 23, 2020 5:00 pm
by Xengsue
snasui wrote: Wed Feb 19, 2020 9:53 pm :D ผมคิดว่าสามารถใช้สูตรที่แนะนำไปมาช่วยได้ ได้ลองทำแล้วหรือไม่ หากยังไม่ได้ลองกรุณาลองทำมาดูก่อน ติดตรงไหนค่อยถามกันต่อครับ
ผมทำได้ตามต้องการแล้วครับ
จากสูตร
1582450624748.jpg
เปลี่ยนเป็นสูตรนี้ครับ
Screenshot_20200223-163232_Excel.jpg
ผมโหลดไว้ให้เพื่อมีใครค้นหาเจอเพื่อเอาไปศึกษาดู

และ ขอบคุณ อาจารย์ ทุกท่านที่ให้คำแนะนำครับ

Re: การจัดการแบ่งจำนวนคนเป็นทีมเพื่องานแข่งขัน

Posted: Mon Feb 24, 2020 1:07 am
by Bo_ry
B2
=CEILING((COUNTA($D$2:$D$22)-SUM(B$1:B1))/COUNTA($A2:$A$5),1)

F2
=INDEX($A:$A,AGGREGATE(15,6,ROW($A$2:$A$5)/(COUNTIF(F$1:F1,$A$2:$A$5)<$B$2:$B$5),RANDBETWEEN(1,SUMPRODUCT(--(COUNTIF(F$1:F1,$A$2:$A$5)<$B$2:$B$5)))))

H2
=INDEX($A:$A,AGGREGATE(15,6,ROW($B$2:$B$5)/($B$2:$B$5>=COLUMN($A$1:$I$1)),ROWS(H$2:H2)))

I2
=INDEX($E$2:$E$15,MATCH(H2,INDEX($F$2:$F$15&REPT(0,ISNUMBER(MATCH($E$2:$E$15,I$1:I1,))),),))

Re: การจัดการแบ่งจำนวนคนเป็นทีมเพื่องานแข่งขัน

Posted: Mon Feb 24, 2020 10:49 am
by Xengsue
Bo_ry wrote: Mon Feb 24, 2020 1:07 am B2
=CEILING((COUNTA($D$2:$D$22)-SUM(B$1:B1))/COUNTA($A2:$A$5),1)

F2
=INDEX($A:$A,AGGREGATE(15,6,ROW($A$2:$A$5)/(COUNTIF(F$1:F1,$A$2:$A$5)<$B$2:$B$5),RANDBETWEEN(1,SUMPRODUCT(--(COUNTIF(F$1:F1,$A$2:$A$5)<$B$2:$B$5)))))

H2
=INDEX($A:$A,AGGREGATE(15,6,ROW($B$2:$B$5)/($B$2:$B$5>=COLUMN($A$1:$I$1)),ROWS(H$2:H2)))

I2
=INDEX($E$2:$E$15,MATCH(H2,INDEX($F$2:$F$15&REPT(0,ISNUMBER(MATCH($E$2:$E$15,I$1:I1,))),),))
ขอบคุณมากสำหรับอีกแนวทางครับ