สุ่มตัวเลขแบบไม่ซ้ำใน Excel (Unique Random Numbers)

เวลาต้องจำลองข้อมูล ทดสอบระบบ หรือสุ่ม “เลขล็อตเตอรี่/รหัส” เรามักต้องการ สุ่มตัวเลขแบบไม่ซ้ำ (unique randoms) เพื่อหลีกเลี่ยงค่าเดิมซ้ำ ๆ บทความนี้รวมทั้งวิธี Excel 365 ที่สั้นและทรงพลังด้วย SORTBY + SEQUENCE + RANDARRAY และวิธี เวอร์ชันเก่า ด้วย RAND + RANK ให้ใช้งานได้ทุกเครื่อง

ทำไม/เมื่อไหร่ควรใช้

  • ต้องการ “เลขไม่ซ้ำ” สำหรับสุ่มตัวอย่าง, แจกจ่ายงาน, สุ่มคิว
  • สร้างข้อมูลจำลอง (Mock Data) เพื่อทดสอบสูตร/แดชบอร์ด
  • สุ่มเลือก k ค่าแบบไม่ซ้ำจากช่วง 1..n หรือจาก “รายการชื่อ”

วิธีสุ่มตัวเลขแบบไม่ซ้ำใน Excel

วิธีที่ 1 (Excel 365/2021): สุ่ม “เรียงสับเปลี่ยน” ของ 1..n

สุ่มตัวเลข 1..100 แบบไม่ซ้ำ (สลับลำดับทั้งหมด):

=SORTBY(SEQUENCE(100), RANDARRAY(100))

เลือกเพียง k ตัวจาก 1..n (ไม่ซ้ำ)

ดึงมาแค่ 10 ตัวจาก 1..100:

=TAKE(SORTBY(SEQUENCE(100), RANDARRAY(100)), 10)

สุ่ม 6 ตัวจาก 1..49 แล้วเรียงจากน้อยไปมาก (สไตล์ล็อตเตอรี่)

=SORT(TAKE(SORTBY(SEQUENCE(49), RANDARRAY(49)), 6))

สุ่มจากช่วงที่ไม่เริ่มที่ 1 (เช่น 10..99)

=TAKE(SORTBY(SEQUENCE(90,,10), RANDARRAY(90)), 8)

สุ่ม “รายการชื่อ” แบบไม่ซ้ำ (สับลิสต์)

หากรายการอยู่ที่ A2:A50 ให้สุ่มลำดับใหม่ทั้งลิสต์:

=SORTBY(A2:A50, RANDARRAY(ROWS(A2:A50)))

ต้องการเพียง 5 รายการแรก: เติม TAKE(...,5) ต่อท้าย

📥 ดาวน์โหลดไฟล์ตัวอย่างที่นี่ ⬇️ excel_unique_random_numbers_examples.xlsx

วิธีเวอร์ชันเก่า (ก่อน 365): RAND + RANK

  1. ใส่ลำดับ 1..20 ในคอลัมน์ A
  2. คอลัมน์ B ใส่ =RAND() ลงทุกแถว
  3. คอลัมน์ C ใส่ =RANK(B2,$B$2:$B$21)
  4. คอลัมน์ D คืน “ลำดับแบบสุ่มไม่ซ้ำ” ด้วย =INDEX($A$2:$A$21, MATCH(ROW(A1), $C$2:$C$21, 0)) แล้วลากลง

เคล็ดลับ: กด F9 เพื่อสุ่มใหม่ และใช้ Copy → Paste Values เมื่อต้อง “ตรึงค่า”

ปัญหาที่พบบ่อย + วิธีแก้

  • ได้เลขซ้ำ → อย่าใช้ RANDBETWEEN ล้วน ๆ ; ใช้สูตร SORTBY(SEQUENCE(...), RANDARRAY(...)) จะได้เลขไม่ซ้ำแน่นอน
  • ค่าสุ่มเปลี่ยนทุกครั้ง → เมื่อได้ผลลัพธ์ที่ต้องการ ให้ Paste Values
  • ต้องการผลเดิมซ้ำได้ → บันทึกไฟล์ที่ “Paste Values แล้ว” หรือแช่สูตรในชีตแยก

ประโยชน์

  • ได้ตัวเลข “ไม่ซ้ำ” จริงตามต้องการ
  • เขียนสั้น อ่านง่าย (โดยเฉพาะ 365)
  • รองรับทั้งสุ่มจากช่วงตัวเลข และสุ่มจาก “รายการชื่อ”

สรุปส่งท้าย

การ สุ่มตัวเลขแบบไม่ซ้ำ ใน Excel ทำได้ง่ายและแม่นยำมากด้วยสูตรยุคใหม่ SORTBY(SEQUENCE(), RANDARRAY()) ที่ให้ทั้ง “เรียงสับเปลี่ยน” และ “สุ่มเลือกบางตัว” ส่วนเครื่องที่ยังไม่ใช่ 365 ก็ทำได้ด้วยวิธี RAND + RANK พร้อม Paste Values เพื่อคงผลลัพธ์ที่ได้ ใช้ชุดเทคนิคนี้ คุณจะสุ่มแบบมืออาชีพได้ในไม่กี่คลิก ✨