สร้าง Dropdown List
แบบ Dynamic
Dropdown List ช่วยให้เลือกข้อมูลได้สะดวกและลดการพิมพ์ผิด แต่หากกำหนด Source เป็นช่วงเซลล์แบบคงที่ เมื่อเพิ่มตัวเลือกไว้นอกช่วงเดิม รายการใน Dropdown จะไม่ขยายตาม ทำให้ต้องกลับมาแก้ไข Source อีกครั้ง บทความนี้จะแสดงวิธีนำรายการข้อมูลมาจัดเก็บไว้ใน Table เพื่อให้ Dropdown List ขยายตามข้อมูลใหม่โดยอัตโนมัติครับ
การสร้าง Dropdown List แบบ Dynamic
จากตัวอย่าง ตารางรายชื่อพนักงานมีคอลัมน์ EmployeeID, EmployeeName และ Department หากปล่อยให้ผู้ใช้พิมพ์ชื่อแผนกเอง ข้อมูลเดียวกันอาจถูกสะกดต่างกันและทำให้การสรุปรายงานคลาดเคลื่อนได้ เราจึงสร้าง Dropdown List เพื่อให้ทุกคนเลือก Department จากรายการมาตรฐานเดียวกัน

ขั้นตอนที่ 1 สร้างตารางแหล่งข้อมูลให้เป็น Table
สร้างรายการ Department แยกไว้หนึ่งคอลัมน์ โดยให้แต่ละแผนกมีเพียงหนึ่งรายการ จากนั้นเปลี่ยนช่วงข้อมูลนี้เป็น Table เพื่อให้ช่วงรายการขยายตามข้อมูลใหม่ ซึ่งมีวิธีการดังต่อไปนี้
- สร้างหัวคอลัมน์ชื่อ Department แล้วป้อนรายชื่อแผนกที่ต้องการใช้
- คลิกเซลล์ใดก็ได้ในรายการ แล้วกด Ctrl + T
- ตรวจสอบช่วงข้อมูลและเลือก My table has headers แล้วกด OK
- ไปที่ Table Design และตั้งชื่อ Table ว่า tblDept



เมื่อเพิ่มชื่อแผนกต่อท้าย tblDept แถวใหม่จะกลายเป็นส่วนหนึ่งของ Table ทันที จึงไม่ต้องกลับมาแก้ไขขนาดของช่วงข้อมูล
ขั้นตอนที่ 2 สร้าง Dynamic Dropdown List
ขั้นตอนต่อไปคือนำข้อมูลใน tblDept ไปใช้เป็น Source ของ Data Validation โดยใช้ INDIRECT เปลี่ยนชื่อ Table ที่เขียนเป็นข้อความให้ Excel นำไปอ้างอิงเป็นช่วงข้อมูล ซึ่งมีวิธีการดังต่อไปนี้
- เลือกเซลล์ในคอลัมน์ Department ที่ต้องการสร้าง Dropdown List
- ไปที่ Data แล้วคลิก Data Validation
- ในช่อง Allow เลือก List
- ในช่อง Source ป้อน =INDIRECT("tblDept") แล้วกด OK
=INDIRECT("tblDept")
เมื่อเปิด Dropdown ในคอลัมน์ Department จะเห็นรายชื่อแผนกจาก tblDept ให้เลือกโดยไม่ต้องพิมพ์เอง

หลังจากนี้ หากมี Department ใหม่ เพียงเพิ่มชื่อไว้ในแถวถัดไปของ tblDept รายการใน Dropdown จะขยายตาม Table โดยอัตโนมัติ วิธีนี้ช่วยให้ดูแลรายการได้จากจุดเดียวและลดความผิดพลาดจากการพิมพ์ข้อมูลไม่ตรงกัน



