เราทราบการสุ่มจากค่าทั้งหมดโดยไม่เอาค่าที่ซ้ำ จากหัวข้อการสุ่มโดยไม่เอาค่าซ้ำอย่างง่ายมาแล้ว ในหัวข้อนี้มาดูการสุ่มค่าจากค่าทั้งหมดโดยไม่เอาค่าที่ซ้ำแบบ Advanced กันบ้าง
จุดมุ่งหมายของการนำเสนอวิธีนี้เพียงแต่อยากให้ ทราบว่า Excel สามารถทำอะไรที่ยาก ๆ และซับซ้อนได้อย่างน่าทึ่ง ซึ่งขึ้นกับความสามารถของผู้ใช้ และการจะเข้าใจการทำงานของสูตรตามด้านล่างนี้ผู้ใช้ต้องเข้าใจเรื่องสูตรอาเรย์เป็นอย่างดีมาก่อนครับ
สมมุติต้องการสุ่มรายชื่อจาก A2:A11 มา 3 รายชื่อ
ที่ B2 คีย์
=INDEX($A$2:$A$11,SMALL(IF(COUNTIF($B$1:B1,$A$2:$A$11)=0,ROW($A$2:$A$11)-ROW($A$2)+1),INT(RAND()*ROWS(A2:$A$11)+1)))
Ctrl+Shift+Enter > Copy ไปถึง B4 ก็จะได้ 3 ค่าที่ไม่ซ้ำจากค่าทั้งหมดตามที่ต้องการ ลองกดแป้น F9 สังเกตการเปลี่ยนแปลง
ภาพตัวอย่างการสุ่มโดยไม่เอาค่าซ้ำแบบ Advanced
5 ความคิดเห็น:
ถ้ามีทั้งหมด 4 คอภัมภ์
อยากได้แบบสุ่มมาทั้งแถวเลย จะทำอย่างไรคะ
สุ่มคอลัมน์แรกขึ้นมาก่อนแล้วใช้ค่าจากคอลัมน์แรกนั้นดึงข้อมูลคอลัมน์อื่น ๆ มาแสดง สำหรับวิธีการที่ละเอียดกว่านี้ให้ส่งตัวอย่างไปที่ http://www.snasui.com/ จะช่วยดูให้ครับ
นั่นแหละค่า ปัญหาคือดึงยังไง
ขอบคุณมากๆ คะ
copy สูตรแล้ว ทำไมขึ้นเป็น #NUM! ครับ
ให้นำตัวอย่างไปถามที http://www.snasui.com จะได้สะดวกในการตอบ
เบื้องต้นลองตรวจสอบว่าสูตรเป็น Array คือมีปีกกาครอบแล้วหรือไม่ ถ้าไม่มีให้อ่านบนความซ้ำใหม่อีกครั้งแล้วสังเกตว่าผมบอกให้กดแป้นรับสูตรด้วยวิธีใด
แสดงความคิดเห็น