วิธีทำ Dropdown List ใน Excel ด้วย Data Validation (รวม Dropdown 2 ชั้น)
· อ่านประมาณ 10 นาที
ไฟล์ Excel ที่หลายคนช่วยกันกรอกมักมีปัญหาเดียวกัน คือคนหนึ่งพิมพ์ "บัญชี" อีกคนพิมพ์ "ฝ่ายบัญชี" อีกคนพิมพ์ "Acc" พอนำไปสรุปด้วย Pivot Table หรือ SUMIFS ตัวเลขก็แตกเป็นหลายกลุ่ม วิธีแก้ที่ต้นเหตุคือทำ Dropdown List ให้เลือกแทนการพิมพ์ ด้วยเครื่องมือ Data Validation ของ Excel
บทความนี้สอนทำ Dropdown ตั้งแต่แบบพื้นฐาน แบบดึงรายการจากตารางที่เพิ่มรายการได้เอง Dropdown 2 ชั้น (เลือกหมวดแล้วรายการย่อยเปลี่ยนตาม) และการใช้ Data Validation ป้องกันข้อมูลผิดแบบอื่น
Data Validation คืออะไร
Data Validation คือการกำหนดกฎว่าเซลล์นั้นรับข้อมูลแบบไหนได้บ้าง เช่น เลือกจากรายการเท่านั้น ตัวเลขระหว่าง 1–100 วันที่ในปีนี้ หรือข้อความไม่เกิน 10 ตัวอักษร ถ้ากรอกผิดกฎ Excel จะแจ้งเตือนหรือไม่ยอมให้บันทึก อยู่ที่แท็บ Data > Data Validation
วิธีที่ 1: Dropdown แบบพิมพ์รายการเอง
เหมาะกับรายการสั้น ๆ ที่ไม่ค่อยเปลี่ยน เช่น สถานะงาน
- เลือกเซลล์ที่ต้องการทำ Dropdown เช่น D2:D500
- ไปที่ Data > Data Validation
- ช่อง Allow เลือก List
- ช่อง Source พิมพ์รายการคั่นด้วยจุลภาค:
รอดำเนินการ,กำลังทำ,เสร็จแล้ว,ยกเลิก - กด OK
ข้อเสียคือเมื่ออยากเพิ่มตัวเลือกต้องเข้ามาแก้ใน Data Validation ทุกครั้ง
วิธีที่ 2: Dropdown ดึงจากรายการในชีต (แนะนำ)
- สร้างชีตชื่อ "รายการ" แล้วพิมพ์รายชื่อแผนกในคอลัมน์ A เริ่มที่ A1 เป็นหัวคอลัมน์ "แผนก"
- คลิกในรายการแล้วกด Ctrl + T แปลงเป็น Table ตั้งชื่อ Table ว่า
tblDept(แท็บ Table Design > Table Name) - เลือกเซลล์ที่จะทำ Dropdown ไปที่ Data > Data Validation > Allow: List
- ช่อง Source ใส่
=INDIRECT("tblDept[แผนก]")
เมื่อเพิ่มแผนกใหม่ต่อท้าย Table รายการใน Dropdown จะเพิ่มตามอัตโนมัติ ไม่ต้องแก้อะไรอีก
ทางเลือก: เลือกช่วงรายการแล้วตั้งชื่อในช่อง Name Box (ซ้ายของแถบสูตร) เช่น DeptList แล้วใส่ Source เป็น =DeptList ก็ได้ แต่ช่วงจะไม่ขยายเองเหมือน Table
วิธีที่ 3: Dropdown 2 ชั้น (Dependent Dropdown)
เช่น เลือก หมวดสินค้า ใน B2 แล้ว Dropdown สินค้า ใน C2 แสดงเฉพาะสินค้าในหมวดนั้น
แบบที่ใช้ได้ทุกเวอร์ชัน: INDIRECT
- ในชีต "รายการ" ทำคอลัมน์ละหมวด หัวคอลัมน์เป็นชื่อหมวด เช่น
คอมพิวเตอร์,อุปกรณ์สำนักงานและรายการสินค้าอยู่ด้านล่าง - เลือกแต่ละคอลัมน์ (เฉพาะรายการสินค้า) แล้วตั้งชื่อช่วงให้ตรงกับชื่อหมวด หรือเลือกทั้งตารางแล้วใช้ Formulas > Create from Selection > Top row
- B2 ทำ Dropdown หมวดตามวิธีที่ 2
- C2 ทำ Data Validation > List และใส่ Source เป็น
=INDIRECT(B2)
ข้อจำกัด: ชื่อช่วงต้องไม่มีเว้นวรรคและห้ามขึ้นต้นด้วยตัวเลข ถ้าชื่อหมวดมีเว้นวรรค Excel จะเปลี่ยนเป็นขีดล่างให้ ต้องใช้ =INDIRECT(SUBSTITUTE(B2," ","_"))
แบบ Microsoft 365: FILTER + UNIQUE
ถ้ามีตารางสินค้าแบบ 2 คอลัมน์ (หมวด, สินค้า) ในชีต "รายการ" ช่วง A2:B200
- ในเซลล์ว่าง เช่น รายการ!E2 ใส่
=UNIQUE(A2:A200)ได้รายชื่อหมวดไม่ซ้ำ - ในรายการ!F2 ใส่
=FILTER(B2:B200, A2:A200=ฟอร์ม!B2)ได้สินค้าเฉพาะหมวดที่เลือก - Dropdown หมวดใช้ Source
=รายการ!$E$2#และ Dropdown สินค้าใช้=รายการ!$F$2#
เครื่องหมาย # คืออ้างอิงผลลัพธ์ที่ล้น (Spill) ทั้งหมด วิธีนี้ไม่ต้องตั้งชื่อช่วงทีละหมวด แต่ใช้ได้กับแถวฟอร์มทีละแถว ถ้าต้องการหลายแถวที่เลือกหมวดต่างกัน แบบ INDIRECT จะเหมาะกว่า
ใช้ Data Validation ป้องกันข้อมูลผิดแบบอื่น
| ต้องการ | Allow | ตั้งค่า |
|---|---|---|
| จำนวนเป็นจำนวนเต็ม 1–999 | Whole number | between 1 and 999 |
| ส่วนลดไม่เกิน 30% | Decimal | between 0 and 0.3 |
| วันที่ต้องไม่เกินวันนี้ | Date | less than or equal to =TODAY() |
| เลขบัตรประชาชน 13 หลัก | Text length | equal to 13 |
| ห้ามกรอกรหัสซ้ำ | Custom | =COUNTIF($A:$A, A2)=1 |
ตั้งข้อความแนะนำและข้อความเตือน
- แท็บ Input Message แสดงคำแนะนำเมื่อคลิกเซลล์ เช่น "เลือกแผนกจากรายการ"
- แท็บ Error Alert กำหนดข้อความเมื่อกรอกผิด และเลือกระดับ Stop (ห้ามบันทึก), Warning (เตือนแต่ให้ยืนยันได้) หรือ Information (แจ้งเฉย ๆ)
ตรวจหาข้อมูลเก่าที่ผิดกฎ
Data Validation ไม่ตรวจข้อมูลที่กรอกไว้ก่อนตั้งกฎ และไม่กันการวางข้อมูลทับ (Paste) ให้ไปที่ Data > Data Validation > Circle Invalid Data Excel จะวงกลมสีแดงรอบเซลล์ที่ไม่ตรงกฎให้แก้ไข
คำถามที่พบบ่อย
ลบ Dropdown ออกอย่างไร
เลือกเซลล์ ไปที่ Data Validation แล้วกด Clear All
คัดลอก Dropdown ไปเซลล์อื่นได้ไหม
ได้ คัดลอกเซลล์ แล้วใช้ Paste Special > Validation เพื่อวางเฉพาะกฎโดยไม่ทับข้อมูลเดิม
Dropdown ค้นหาด้วยการพิมพ์ได้ไหม
Microsoft 365 และ Excel สำหรับเว็บรุ่นใหม่รองรับการพิมพ์ตัวอักษรแรกเพื่อกรองรายการใน Dropdown ได้ ส่วนเวอร์ชันเก่าต้องเลื่อนเลือกจากรายการ
สรุป
Dropdown List คือวิธีที่ง่ายและได้ผลที่สุดในการทำให้ข้อมูลสะอาดตั้งแต่ต้นทาง ใช้ Table เป็นแหล่งรายการเพื่อให้เพิ่มตัวเลือกได้เอง ใช้ INDIRECT หรือ FILTER ทำ Dropdown 2 ชั้น และเสริมด้วยกฎ Data Validation อื่น ๆ ข้อมูลที่สะอาดจะทำให้ Pivot Table และ SUMIFS ให้ตัวเลขที่ถูกต้อง
Data Validation, Conditional Formatting และการป้องกัน Worksheet อยู่ในหลักสูตรอบรม Excel Advance สำหรับองค์กรที่อยากให้ทีมสร้างฟอร์มกรอกข้อมูลมาตรฐานเดียวกัน ดูรายละเอียดอบรม Excel In-house
- #Dropdown Excel
- #Data Validation
- #Dropdown 2 ชั้น
- #Excel Advance