สารบัญ
บทช่วยสอนมุ่งเน้นไปที่วิธีการสุ่มตัวอย่างใน Excel โดยไม่ทำซ้ำ คุณจะพบโซลูชันสำหรับ Excel 365, Excel 2021, Excel 2019 และเวอร์ชันก่อนหน้า
ก่อนหน้านี้ เราได้อธิบายวิธีต่างๆ สองสามวิธีในการสุ่มเลือกใน Excel โซลูชันส่วนใหญ่ใช้ฟังก์ชัน RAND และ RANDBETWEEN ซึ่งอาจสร้างตัวเลขที่ซ้ำกัน ดังนั้น ตัวอย่างสุ่มของคุณอาจมีค่าที่ซ้ำกัน หากคุณต้องการการเลือกแบบสุ่มโดยไม่มีรายการที่ซ้ำกัน ให้ใช้วิธีการที่อธิบายไว้ในบทช่วยสอนนี้
การเลือกแบบสุ่มของ Excel จากรายการที่ไม่มีรายการซ้ำ
ใช้ได้เฉพาะใน Excel 365 และ Excel 2021 ที่รองรับอาร์เรย์แบบไดนามิก
หากต้องการสุ่มเลือกจากรายการโดยไม่เกิดซ้ำ ให้ใช้สูตรทั่วไปนี้:
INDEX(SORTBY( data, RANDARRAY(ROWS( data))), SEQUENCE( n))โดยที่ n คือขนาดการเลือกที่ต้องการ
ตัวอย่างเช่น หากต้องการรับชื่อสุ่มที่ไม่ซ้ำกัน 5 ชื่อจากรายการใน A2:A10 ให้ใช้สูตรต่อไปนี้:
=INDEX(SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10))), SEQUENCE(5))
เพื่อความสะดวก คุณสามารถป้อนขนาดตัวอย่างใน เซลล์ที่กำหนดไว้ล่วงหน้า เช่น C2 และใส่การอ้างอิงเซลล์ไปยังฟังก์ชัน SEQUENCE:
=INDEX(SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10))), SEQUENCE(C2))
วิธีการทำงานของสูตรนี้:
นี่คือคำอธิบายระดับสูงเกี่ยวกับตรรกะของสูตร: ฟังก์ชัน RANDARRAY สร้างอาร์เรย์ของตัวเลขสุ่ม SORTBY จัดเรียงค่าดั้งเดิมตามตัวเลขเหล่านั้น และ INDEX ดึงค่ามากที่สุดเท่าที่ระบุโดย SEQUENCE
รายละเอียดโดยละเอียดด้านล่าง:
ฟังก์ชัน ROWS จะนับจำนวนแถวที่ชุดข้อมูลของคุณมีและส่งการนับไปยังฟังก์ชัน RANDARRAY ดังนั้นจึงสามารถสร้างจำนวนเดียวกันได้ ทศนิยมแบบสุ่ม:
RANDARRAY(ROWS(A2:C10))
อาร์เรย์ของทศนิยมแบบสุ่มนี้ใช้เป็นอาร์เรย์ "จัดเรียงตาม" โดยฟังก์ชัน SORTBY ด้วยเหตุนี้ ข้อมูลต้นฉบับของคุณจึงถูกสับแบบสุ่ม
จากข้อมูลที่จัดเรียงแบบสุ่ม คุณจะแยกตัวอย่างที่มีขนาดเฉพาะ สำหรับสิ่งนี้ คุณใส่อาร์เรย์แบบสับเปลี่ยนไปยังฟังก์ชัน INDEX และร้องขอให้ดึงค่า N ค่าแรกด้วยความช่วยเหลือของฟังก์ชัน SEQUENCE ซึ่งสร้างลำดับของตัวเลขตั้งแต่ 1 ถึง N . เนื่องจากข้อมูลต้นฉบับถูกจัดเรียงตามลำดับแบบสุ่มแล้ว เราจึงไม่สนใจว่าจะดึงข้อมูลตำแหน่งใด มีเพียงปริมาณเท่านั้นที่สำคัญ
เลือกแถวสุ่มใน Excel โดยไม่มีรายการซ้ำ
ใช้งานได้เท่านั้น ใน Excel 365 และ Excel 2021 ที่รองรับอาร์เรย์แบบไดนามิก
หากต้องการเลือกแถวแบบสุ่มโดยไม่เกิดซ้ำ ให้สร้างสูตรด้วยวิธีนี้:
INDEX(SORTBY( data, RANDARRAY(ROWS( data))), SEQUENCE( n), {1,2,…})โดยที่ n คือขนาดตัวอย่างและ {1,2,…} คือหมายเลขคอลัมน์ที่จะแยก
ตามตัวอย่าง ลองเลือกแถวสุ่มจาก A2:C10 โดยไม่มีรายการซ้ำ โดยพิจารณาจากขนาดตัวอย่างใน F1 เนื่องจากข้อมูลของเราอยู่ใน 3 คอลัมน์ เราจึงใส่ค่าคงที่อาร์เรย์นี้ให้กับสูตร:{1,2,3}
=INDEX(SORTBY(A2:C10, RANDARRAY(ROWS(A2:C10))), SEQUENCE(F1), {1,2,3})
และรับผลลัพธ์ต่อไปนี้:
วิธีการทำงานของสูตรนี้:
สูตรทำงานด้วยตรรกะเดียวกันกับสูตรก่อนหน้าทุกประการ การเปลี่ยนแปลงเล็กน้อยที่สร้างความแตกต่างอย่างมากคือการที่คุณระบุทั้งอาร์กิวเมนต์ row_num และ column_num สำหรับฟังก์ชัน INDEX: row_num ระบุโดย SEQUENCE และ column_num ตามค่าคงที่ของอาร์เรย์
วิธีการสุ่มตัวอย่างใน Excel 2010 - 2019
เนื่องจากเฉพาะ Excel สำหรับ Microsoft 365 และ Excel 2021 เท่านั้นที่รองรับอาร์เรย์แบบไดนามิก ฟังก์ชันอาร์เรย์แบบไดนามิกที่ใช้ใน ตัวอย่างก่อนหน้านี้ใช้ได้เฉพาะใน Excel 365 สำหรับเวอร์ชันอื่นๆ คุณจะต้องหาทางออกอื่น
สมมติว่าคุณต้องการสุ่มเลือกจากรายการใน A2:A10 ซึ่งทำได้โดยใช้ 2 สูตรแยกกัน:
- สร้างตัวเลขสุ่มด้วยสูตร Rand ในกรณีของเรา เราป้อนค่านี้ใน B2 แล้วคัดลอกลงไปที่ B10:
=RAND()
- แยกค่าสุ่มแรกด้วยสูตรด้านล่าง ซึ่งคุณป้อนใน E2:
=INDEX($A$2:$A$10, RANK.EQ(B2, $B$2:$B$10) + COUNTIF($B$2:B2, B2) - 1)
- คัดลอกสูตรด้านบนไปยังเซลล์ได้มากเท่าค่าสุ่มที่คุณต้องการเลือก ในตัวอย่างนี้ เราต้องการ 4 ชื่อ เราจึงคัดลอกสูตรจาก E2 ถึง E5
เสร็จแล้ว! ตัวอย่างสุ่มของเราที่ไม่มีรายการซ้ำมีลักษณะดังนี้:
สูตรนี้ทำงานอย่างไร:
เช่นเดียวกับในตัวอย่างแรก คุณใช้ ฟังก์ชัน INDEX ดึงค่าจากคอลัมน์ A ตามแถวสุ่มตัวเลข ความแตกต่างอยู่ที่วิธีรับตัวเลขเหล่านี้:
ฟังก์ชัน RAND เติมช่วง B2:B10 ด้วยทศนิยมแบบสุ่ม
ฟังก์ชัน RANK.EQ คำนวณอันดับของตัวเลขสุ่มในค่าที่กำหนด แถว. ตัวอย่างเช่น ใน E2 RANK.EQ(B2, $B$2:$B$10) จะจัดอันดับหมายเลขใน B2 เทียบกับตัวเลขทั้งหมดใน B2:B10 เมื่อคัดลอกไปที่ E3 การอ้างอิงสัมพัทธ์ B2 จะเปลี่ยนเป็น B3 และส่งกลับอันดับของตัวเลขใน B3 เป็นต้น
ฟังก์ชัน COUNTIF จะค้นหาจำนวนที่เกิดขึ้นในเซลล์ด้านบน ตัวอย่างเช่น ใน E2 COUNTIF($B$2:B2, B2) ตรวจสอบเพียงเซลล์เดียว - B2 เอง และส่งกลับ 1 ใน E5 สูตรเปลี่ยนเป็น COUNTIF($B$2:B5, B5) และส่งคืน 2 เนื่องจาก B5 มีค่าเหมือนกับ B2 (โปรดทราบว่า นี่เป็นเพียงการอธิบายตรรกะของสูตรให้ดีขึ้นเท่านั้น ในชุดข้อมูลขนาดเล็ก โอกาสที่จะได้รับตัวเลขสุ่มที่ซ้ำกันนั้นใกล้เคียงกับศูนย์)
ด้วยเหตุนี้ สำหรับทั้งหมด ครั้งที่ 1 COUNTIF จะคืนค่า 1 ซึ่งคุณนำออกด้วย 1 เพื่อคงอันดับเดิมไว้ สำหรับการเกิดขึ้นครั้งที่ 2 COUNTIF จะส่งกลับ 2 โดยการลบ 1 คุณจะเพิ่มการจัดอันดับทีละ 1 ซึ่งจะช่วยป้องกันไม่ให้มีอันดับที่ซ้ำกัน
ตัวอย่างเช่น สำหรับ B2 RANK.EQ จะส่งกลับ 1 เนื่องจากนี่เป็นการเกิดขึ้นครั้งแรก COUNTIF ก็เช่นกัน ผลตอบแทน 1. RANK.EQ + COUNTIF ให้ 2 และ - 1 คืนอันดับ 1
ตอนนี้ ดูว่าเกิดอะไรขึ้นในกรณีที่เกิดครั้งที่ 2 สำหรับ B5 RANK.EQ จะส่งกลับ 1 ในขณะที่ COUNTIF ส่งคืน 2 การบวกค่าเหล่านี้จะทำให้3 ซึ่งคุณลบด้วย 1 ผลสุดท้าย คุณจะได้ 2 ซึ่งแสดงถึงอันดับของตัวเลขใน B5
อันดับจะไปที่อาร์กิวเมนต์ row_num ของฟังก์ชัน INDEX และจะเลือกค่าจากแถวที่เกี่ยวข้อง (อาร์กิวเมนต์ column_num จะถูกละไว้ ดังนั้นจึงมีค่าเริ่มต้นเป็น 1) นี่คือเหตุผลว่าทำไมการหลีกเลี่ยงการจัดอันดับที่ซ้ำกันจึงเป็นเรื่องสำคัญ หากไม่ใช่สำหรับฟังก์ชัน COUNTIF RANK.EQ จะให้ค่า 1 สำหรับทั้ง B2 และ B5 ทำให้ INDEX ส่งกลับค่าจากแถวแรก (Andrew) สองครั้ง
วิธีป้องกันไม่ให้ตัวอย่างแบบสุ่มของ Excel เปลี่ยน
เนื่องจากฟังก์ชันสุ่มทั้งหมดใน Excel เช่น RAND, RANDBETWEEN และ RANDARRAY นั้นผันผวน จึงคำนวณใหม่ทุกครั้งที่มีการเปลี่ยนแปลงในเวิร์กชีต ผลลัพธ์ที่ได้คือ ตัวอย่างสุ่มของคุณจะมีการเปลี่ยนแปลงอย่างต่อเนื่อง เพื่อป้องกันไม่ให้สิ่งนี้เกิดขึ้น ให้ใช้การวางแบบพิเศษ > คุณลักษณะค่าเพื่อแทนที่สูตรด้วยค่าคงที่ สำหรับสิ่งนี้ ให้ทำตามขั้นตอนเหล่านี้:
- เลือกเซลล์ทั้งหมดที่มีสูตรของคุณ (สูตรใดก็ได้ที่มีฟังก์ชัน RAND, RANDBETWEEN หรือ RANDARRAY) แล้วกด Ctrl + C เพื่อคัดลอก
- คลิกขวาที่ช่วงที่เลือกแล้วคลิก วางแบบพิเศษ > ค่า อีกทางหนึ่งคือ กด Shift + F10 แล้วตามด้วย V ซึ่งเป็นทางลัดสำหรับคุณลักษณะที่กล่าวถึงข้างต้น
สำหรับขั้นตอนโดยละเอียด โปรดดูวิธีแปลงสูตรเป็นค่าใน Excel
การเลือกแบบสุ่มของ Excel: แถว คอลัมน์หรือเซลล์
ทำงานใน Excel 365 ทุกรุ่นจนถึง Excel 2010
หากคุณติดตั้ง Ultimate Suite ไว้ใน Excel คุณจะสามารถสุ่มตัวอย่างโดยใช้ คลิกเมาส์แทนสูตร มีวิธีการดังนี้:
- ในแท็บ Ablebits Tools คลิก สุ่ม > เลือกแบบสุ่ม
- เลือก ช่วงที่คุณต้องการเลือกตัวอย่าง
- ในบานหน้าต่างของ Add-in ให้ทำดังต่อไปนี้:
- เลือกว่าคุณต้องการเลือกแถว คอลัมน์ หรือเซลล์แบบสุ่ม
- กำหนดขนาดตัวอย่าง: อาจเป็นเปอร์เซ็นต์หรือตัวเลขก็ได้
- คลิกปุ่ม เลือก
นั่นคือ มัน! ดังที่แสดงในภาพด้านล่าง ตัวอย่างสุ่มจะถูกเลือกโดยตรงในชุดข้อมูลของคุณ หากคุณต้องการคัดลอกไปที่ใดที่หนึ่ง เพียงกดทางลัดการคัดลอกปกติ (Ctrl + C)
นั่นคือวิธีการเลือกตัวอย่างแบบสุ่มใน Excel โดยไม่มีรายการที่ซ้ำกัน ฉันขอขอบคุณสำหรับการอ่านและหวังว่าจะได้พบคุณในบล็อกของเราในสัปดาห์หน้า!
ดาวน์โหลดได้
สุ่มตัวอย่างโดยไม่มีการทำซ้ำ - ตัวอย่างสูตร (ไฟล์ .xlsx)
Ultimate Suite เวอร์ชันใช้งานได้เต็มที่ 14 วัน (ไฟล์ .exe)