วิธีรับตัวอย่างสุ่มใน Excel โดยไม่มีรายการที่ซ้ำกัน

  • แบ่งปันสิ่งนี้
Michael Brown

บทช่วยสอนมุ่งเน้นไปที่วิธีการสุ่มตัวอย่างใน 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 สูตรแยกกัน:

    1. สร้างตัวเลขสุ่มด้วยสูตร Rand ในกรณีของเรา เราป้อนค่านี้ใน B2 แล้วคัดลอกลงไปที่ B10:

      =RAND()

    2. แยกค่าสุ่มแรกด้วยสูตรด้านล่าง ซึ่งคุณป้อนใน E2:

      =INDEX($A$2:$A$10, RANK.EQ(B2, $B$2:$B$10) + COUNTIF($B$2:B2, B2) - 1)

    3. คัดลอกสูตรด้านบนไปยังเซลล์ได้มากเท่าค่าสุ่มที่คุณต้องการเลือก ในตัวอย่างนี้ เราต้องการ 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 นั้นผันผวน จึงคำนวณใหม่ทุกครั้งที่มีการเปลี่ยนแปลงในเวิร์กชีต ผลลัพธ์ที่ได้คือ ตัวอย่างสุ่มของคุณจะมีการเปลี่ยนแปลงอย่างต่อเนื่อง เพื่อป้องกันไม่ให้สิ่งนี้เกิดขึ้น ให้ใช้การวางแบบพิเศษ > คุณลักษณะค่าเพื่อแทนที่สูตรด้วยค่าคงที่ สำหรับสิ่งนี้ ให้ทำตามขั้นตอนเหล่านี้:

    1. เลือกเซลล์ทั้งหมดที่มีสูตรของคุณ (สูตรใดก็ได้ที่มีฟังก์ชัน RAND, RANDBETWEEN หรือ RANDARRAY) แล้วกด Ctrl + C เพื่อคัดลอก
    2. คลิกขวาที่ช่วงที่เลือกแล้วคลิก วางแบบพิเศษ > ค่า อีกทางหนึ่งคือ กด Shift + F10 แล้วตามด้วย V ซึ่งเป็นทางลัดสำหรับคุณลักษณะที่กล่าวถึงข้างต้น

    สำหรับขั้นตอนโดยละเอียด โปรดดูวิธีแปลงสูตรเป็นค่าใน Excel

    การเลือกแบบสุ่มของ Excel: แถว คอลัมน์หรือเซลล์

    ทำงานใน Excel 365 ทุกรุ่นจนถึง Excel 2010

    หากคุณติดตั้ง Ultimate Suite ไว้ใน Excel คุณจะสามารถสุ่มตัวอย่างโดยใช้ คลิกเมาส์แทนสูตร มีวิธีการดังนี้:

    1. ในแท็บ Ablebits Tools คลิก สุ่ม > เลือกแบบสุ่ม
    2. เลือก ช่วงที่คุณต้องการเลือกตัวอย่าง
    3. ในบานหน้าต่างของ Add-in ให้ทำดังต่อไปนี้:
      • เลือกว่าคุณต้องการเลือกแถว คอลัมน์ หรือเซลล์แบบสุ่ม
      • กำหนดขนาดตัวอย่าง: อาจเป็นเปอร์เซ็นต์หรือตัวเลขก็ได้
      • คลิกปุ่ม เลือก

    นั่นคือ มัน! ดังที่แสดงในภาพด้านล่าง ตัวอย่างสุ่มจะถูกเลือกโดยตรงในชุดข้อมูลของคุณ หากคุณต้องการคัดลอกไปที่ใดที่หนึ่ง เพียงกดทางลัดการคัดลอกปกติ (Ctrl + C)

    นั่นคือวิธีการเลือกตัวอย่างแบบสุ่มใน Excel โดยไม่มีรายการที่ซ้ำกัน ฉันขอขอบคุณสำหรับการอ่านและหวังว่าจะได้พบคุณในบล็อกของเราในสัปดาห์หน้า!

    ดาวน์โหลดได้

    สุ่มตัวอย่างโดยไม่มีการทำซ้ำ - ตัวอย่างสูตร (ไฟล์ .xlsx)

    Ultimate Suite เวอร์ชันใช้งานได้เต็มที่ 14 วัน (ไฟล์ .exe)

    Michael Brown เป็นผู้ที่ชื่นชอบเทคโนโลยีโดยเฉพาะและมีความหลงใหลในการทำให้กระบวนการที่ซับซ้อนง่ายขึ้นโดยใช้เครื่องมือซอฟต์แวร์ ด้วยประสบการณ์กว่าทศวรรษในอุตสาหกรรมเทคโนโลยี เขาได้ฝึกฝนทักษะของเขาใน Microsoft Excel และ Outlook รวมถึง Google ชีตและเอกสาร บล็อกของ Michael ทุ่มเทให้กับการแบ่งปันความรู้และความเชี่ยวชาญของเขากับผู้อื่น โดยให้คำแนะนำและแบบฝึกหัดที่ทำตามได้ง่ายเพื่อปรับปรุงผลิตภาพและประสิทธิภาพ ไม่ว่าคุณจะเป็นมืออาชีพที่ช่ำชองหรือมือใหม่ บล็อกของ Michael นำเสนอข้อมูลเชิงลึกอันมีค่าและคำแนะนำที่เป็นประโยชน์สำหรับการใช้ประโยชน์สูงสุดจากเครื่องมือซอฟต์แวร์ที่จำเป็นเหล่านี้