Page 1 of 1
การสุ่มรายชื่อผู้โชกดีสามท่านในรายชื่อทั้งหมดโดยไม่ให้ช้ำกันในการสุ่มแต่ละครั้งโดยไม่ใช้ VBA มาช่วย
Posted: Tue Feb 11, 2020 10:59 am
by Xengsue
สวัสดีครับ
ขอบสอบถามด้วยครับ อาจารย์ทุกท่าน
คือว่าผมต้องการสุ่มรายชื่อผู้โชกดีสามท่านในรายชื่อทั้งหมดโดยไม่ให้ช้ำกันในการสุ่มแต่ละครั้งโดยไม่ใช้ VBA มาช่วย
คือตัวอย่าง
รายชื่อมี 5 ท่าน(A,B,C,D,E)
-สุ่มครั้งที1: ได้ 1 ท่านใน 5 ท่าน
-สุ่มครั้งที2: ได้ 1 ท่านใน 4 ท่านที่เหลือจากการสุ่มครั้งที 1
-สุ่มครั้งที3: ได้ 1 ท่านใน 3 ท่านที่เหลือจากการสุ่มครั้งที 1 และ คั้งที 2
ผมต้องทำยังไงครับ หรือว่าทำไม่ได้นอกจากใช้ VBA มาช่วยครับ
ขอบคุณครับ

- ไฟล์ตัวอย่าง
- Screenshot_20200211-105243_Excel.jpg (33.84 KiB) Viewed 76 times
Re: การสุ่มรายชื่อผู้โชกดีสามท่านในรายชื่อทั้งหมดโดยไม่ให้ช้ำกันในการสุ่มแต่ละครั้งโดยไม่ใช้ VBA มาช่วย
Posted: Tue Feb 11, 2020 8:58 pm
by Bo_ry
D3:D6
=AGGREGATE(15,6,A$3:A$7/ISNA(MATCH(A$3:A$7,D$2:D2,)),RANDBETWEEN(1,ROWS(A3:A$7)))
E3:E6
=index(B$3:B$7,d3)
Re: การสุ่มรายชื่อผู้โชกดีสามท่านในรายชื่อทั้งหมดโดยไม่ให้ช้ำกันในการสุ่มแต่ละครั้งโดยไม่ใช้ VBA มาช่วย
Posted: Wed Feb 12, 2020 2:45 pm
by Xengsue
Bo_ry wrote: Tue Feb 11, 2020 8:58 pm
D3:D6
=AGGREGATE(15,6,A$3:A$7/ISNA(MATCH(A$3:A$7,D$2:D2,)),RANDBETWEEN(1,ROWS(A3:A$7)))
E3:E6
=index(B$3:B$7,d3)
ขอบคุณมากครับ
แต่ยังไม่ตรงตามความต้องการ
คือต้องการสุ่มแค่ทีละคนครับไม่ใช่แบบทีละ 3คน ครับ
Re: การสุ่มรายชื่อผู้โชกดีสามท่านในรายชื่อทั้งหมดโดยไม่ให้ช้ำกันในการสุ่มแต่ละครั้งโดยไม่ใช้ VBA มาช่วย
Posted: Wed Feb 12, 2020 3:00 pm
by Xengsue
และผลทดสอบที่ได้มันช้ำกันครับ
ความต้องการก็คือ
ต้องการสุ่มรายชื่อผู้โชกดีให้ได้ครั้งละ 1 ท่าน
-สุ่มครั้งที1: ได้ 1 ท่านใน 5 ท่าน แล้วจะเหลืออยู่ 4 ท่านเพื่อจะเอาไปสุ่มต่อเป็นครั้งที 2.
-สุ่มครั้งที2: ได้ 1 ท่านใน 4 ท่านที่เหลือจากการสุ่มครั้งที 1 แล้วจะเหลืออยู่ 3 ท่านเพื่อจะเอาไปสุ่มต่อเป็นครั้งที 3.
-สุ่มครั้งที3: ได้ 1 ท่านใน 3 ท่านที่เหลือจากการสุ่มครั้งที 1 และ คั้งที 2 แล้วจะเหลือ 2 ท่านที่ไม่โชกดีครับ.
Re: การสุ่มรายชื่อผู้โชกดีสามท่านในรายชื่อทั้งหมดโดยไม่ให้ช้ำกันในการสุ่มแต่ละครั้งโดยไม่ใช้ VBA มาช่วย
Posted: Wed Feb 12, 2020 9:30 pm
by snasui

กรุณาแนบไฟล์ตัวอย่างที่เป็น Excel มาด้วยจะได้สะดวกในการตอบของเพื่อนสมาชิกครับ
Re: การสุ่มรายชื่อผู้โชกดีสามท่านในรายชื่อทั้งหมดโดยไม่ให้ช้ำกันในการสุ่มแต่ละครั้งโดยไม่ใช้ VBA มาช่วย
Posted: Thu Feb 13, 2020 12:40 am
by Xengsue
snasui wrote: Wed Feb 12, 2020 9:30 pm

กรุณาแนบไฟล์ตัวอย่างที่เป็น Excel มาด้วยจะได้สะดวกในการตอบของเพื่อนสมาชิกครับ
ขอโทษด้วยครับ
คือสิ่งที่ต้องการคือ
อยากจะสุ่มรายชื่อผู้โชกดีให้ได้ครั้งละ 1 ท่าน ด้วยสูตร โดยไม่ต้องใช้ VBA มาช่วยครับ
โดยมีเงื่อนไขคือ:
-รายชื่อที่ต้องการเอามาสุ่มมี 5 ท่าน (A, B, C, D, E)
-ต้องการสุ่มผู้โชกดีให้ได้ 3 ท่านโดยสุ่ม 3 ครั้งให้ได้ครั้งละ 1 ท่านโดยไม่ให้ช้ำคนเดิมเช่น
-สุ่มครั้งที1: ได้ 1 ท่านใน 5 ท่าน แล้วจะเหลืออยู่ 4 ท่านเพื่อจะเอาไปสุ่มต่อเป็นครั้งที 2.
-สุ่มครั้งที2: ได้ 1 ท่านใน 4 ท่านที่เหลือจากการสุ่มครั้งที 1 แล้วจะเหลืออยู่ 3 ท่านเพื่อจะเอาไปสุ่มต่อเป็นครั้งที 3.
-สุ่มครั้งที3: ได้ 1 ท่านใน 3 ท่านที่เหลือจากการสุ่มครั้งที 1 และ คั้งที 2 แล้วจะเหลือ 2 ท่านที่ไม่โชกดีครับ.
ขอบคุณครับ
Re: การสุ่มรายชื่อผู้โชกดีสามท่านในรายชื่อทั้งหมดโดยไม่ให้ช้ำกันในการสุ่มแต่ละครั้งโดยไม่ใช้ VBA มาช่วย
Posted: Thu Feb 13, 2020 8:31 pm
by snasui

ตัวอย่างสูตรตามด้านล่างครับ
เมื่อต้องการสุ่มให้กดแป้น F9 ค้างไว้แล้วค่อยปล่อย
- ที่ C3 คีย์สูตรเพื่อ Random
=IF(COUNTIF($I$3:$I$10,B3),"",RAND())
Enter > Copy ลงด้านล่าง
- ที่ D3 คีย์สูตรเพื่อจัดลำดับ
=IF(C3="","",RANK(C3,$C$3:$C$7))
Enter > Copy ลงด้านล่าง
- ที่ G3 คีย์สูตรเพื่อสุ่มรายชื่อมาแสดง
=INDEX($B$3:$B$7,MATCH(1,$D$3:$D$7,0))
Enter
เมื่อได้ค่าจากการสุ่มแล้วให้คัดลอกไปวางที่คอลัมน์ I เริ่มจาก I3 เป็นต้นไป รายการเหล่านี้จะไม่ถูกสุ่มอีกครับ
Re: การสุ่มรายชื่อผู้โชกดีสามท่านในรายชื่อทั้งหมดโดยไม่ให้ช้ำกันในการสุ่มแต่ละครั้งโดยไม่ใช้ VBA มาช่วย
Posted: Thu Feb 13, 2020 8:53 pm
by Xengsue
snasui wrote: Thu Feb 13, 2020 8:31 pm

ตัวอย่างสูตรตามด้านล่างครับ
เมื่อต้องการสุ่มให้กดแป้น F9 ค้างไว้แล้วค่อยปล่อย
- ที่ C3 คีย์สูตรเพื่อ Random
=IF(COUNTIF($I$3:$I$10,B3),"",RAND())
Enter > Copy ลงด้านล่าง
- ที่ D3 คีย์สูตรเพื่อจัดลำดับ
=IF(C3="","",RANK(C3,$C$3:$C$7))
Enter > Copy ลงด้านล่าง
- ที่ G3 คีย์สูตรเพื่อสุ่มรายชื่อมาแสดง
=INDEX($B$3:$B$7,MATCH(1,$D$3:$D$7,0))
Enter
เมื่อได้ค่าจากการสุ่มแล้วให้คัดลอกไปวางที่คอลัมน์ I เริ่มจาก I3 เป็นต้นไป รายการเหล่านี้จะไม่ถูกสุ่มอีกครับ
ขอบคุณมากครับ อาจารย์
ทำได้ตามที่อาจารย์แนะนำครับ
แต่อยากสอบถามต่อนิดหนึ่งว่า
ถ้าเราไม่อยาก คัดลอกไปวางที่ไว้ที่คอลัมน์ I แล้วให้มันทำงานตามที่อาจารย์แนะนำมา สามารถทำได้ไหมครับ
Re: การสุ่มรายชื่อผู้โชกดีสามท่านในรายชื่อทั้งหมดโดยไม่ให้ช้ำกันในการสุ่มแต่ละครั้งโดยไม่ใช้ VBA มาช่วย
Posted: Thu Feb 13, 2020 8:59 pm
by snasui

ทำได้ด้วย VBA ครับ
Re: การสุ่มรายชื่อผู้โชกดีสามท่านในรายชื่อทั้งหมดโดยไม่ให้ช้ำกันในการสุ่มแต่ละครั้งโดยไม่ใช้ VBA มาช่วย
Posted: Thu Feb 13, 2020 9:05 pm
by Xengsue
snasui wrote: Thu Feb 13, 2020 8:59 pm

ทำได้ด้วย VBA ครับ
ขอบคุณมากครับ
สำหรับ VBA ช่วยผมเข้าใจครับ
แต่ไม่อยากใช้ VBA มาช่วยเลยลองหาวิธีด้วยสูตรดูว่าจะทำได้หรือเปล่า
แค่นั้นเองครับ
ขอบคุณ อาจารย์มาก ที่สละเวลามาช่วยครับ