ในการทำงานร่วมกันบนระบบคลาวด์ (Cloud Collaboration) ผ่าน Google Sheets การควบคุมมาตรฐานของข้อมูลที่ผู้ใช้งานหลายคนป้อนเข้ามาพร้อมกันคือความท้าทายที่สำคัญ การปล่อยให้พิมพ์ข้อความอย่างอิสระมักก่อให้เกิดความซ้ำซ้อนหรือข้อมูลขยะ (Data Trash) ดังนั้น วิธีสร้าง Drop Down List ใน Google Sheets จึงเป็นเครื่องมือระดับมืออาชีพที่ช่วยจำกัดตัวเลือกให้เป็นไปตามกฎเกณฑ์ที่องค์กรกำหนด
เพื่อตอบสนองต่อผู้ใช้งานที่ต้องการความแม่นยำสูงสุด บทความนี้จะทำหน้าที่เป็นคู่มือการใช้งาน (Manual Guide) ที่เจาะลึก วิธีสร้าง Drop Down List ใน Google Sheets แบบละเอียดในทุก ๆ คลิก (Step-by-Step) ตั้งแต่การเตรียมข้อมูล ไปจนถึงการตั้งค่าขั้นสูง เพื่อให้คุณสามารถทำตามและนำไปประยุกต์ใช้ในหน้างานจริงได้อย่างไร้ข้อผิดพลาด
วิธีสร้าง Drop Down List ใน Google Sheets ครบทุกรูปแบบ (เจาะลึกทุกขั้นตอน)
อินเทอร์เฟซ (UI) ของ Google Sheets ได้รับการออกแบบให้ตั้งค่าผ่านแถบเครื่องมือด้านข้าง (Sidebar) ซึ่งช่วยให้การทำงานราบรื่นขึ้น เรามาดูขั้นตอนโดยละเอียดของทั้ง 4 แนวทางกันครับ
วิธีที่ 1: วิธีสร้าง Drop Down List โดยกำหนดรายการด้วยตนเอง (Dropdown)
วิธีนี้เหมาะสมที่สุดสำหรับชุดข้อมูลคงที่ มีจำนวนตัวเลือกไม่เกิน 5-10 รายการ และไม่ค่อยมีการเปลี่ยนแปลงในอนาคต เช่น สถานะการเข้าเรียนหรือเข้างาน (มา, ลา, ขาด)
ขั้นตอนการตั้งค่าอย่างละเอียด:
- เลือกเซลล์เป้าหมาย: ใช้เมาส์คลิกเลือกเซลล์เดียว หรือคลิกค้างแล้วลากคลุมช่วงเซลล์ (เช่น
C2:C15) ที่คุณต้องการให้แสดงเมนู Drop Down - เข้าสู่เมนูตั้งค่า: ไปที่แถบเมนูด้านบนสุด คลิกที่คำว่า Data (ข้อมูล)
- เปิดหน้าต่างคำสั่ง: จากเมนูที่กางลงมา ให้คลิกเลือก Data validation (การตรวจสอบความถูกต้องของข้อมูล)
- เพิ่มกฎใหม่: จะปรากฏแถบหน้าต่าง Data validation rules (กฎการตรวจสอบความถูกต้องของข้อมูล) ที่ด้านขวาของหน้าจอ ให้คลิกปุ่ม + Add rule (เพิ่มกฎ)
- กำหนดรูปแบบ: ในหัวข้อ Criteria (เกณฑ์) ให้คลิกเลือกเป็น Dropdown (เมนูแบบเลื่อนลง)
- พิมพ์รายการตัวเลือก:
- ในช่อง Option 1 ให้พิมพ์ตัวเลือกแรก (เช่น มา)
- ในช่อง Option 2 ให้พิมพ์ตัวเลือกลำดับถัดไป (เช่น ลา)
- หากต้องการเพิ่มตัวเลือก ให้คลิกที่คำว่า Add another item (เพิ่มรายการอื่น) แล้วพิมพ์ข้อความลงไป
- กำหนดสี (Color-coding): คลิกที่ไอคอนวงกลมด้านซ้ายของแต่ละข้อความตัวเลือก เพื่อเลือกสีพื้นหลัง (Color Chips) ที่ต้องการให้แสดงผล
- การตั้งค่าขั้นสูง (ทางเลือก): คลิกที่ Advanced options (ตัวเลือกขั้นสูง) ด้านล่างสุด เพื่อเลือก Display style (รูปแบบการแสดงผล) ซึ่งมีให้เลือก 3 แบบคือ Chip (ชิป – เป็นกรอบสี), Arrow (ลูกศร), หรือ Plain text (ข้อความธรรมดา)
- บันทึกข้อมูล: คลิกปุ่ม Done (เสร็จสิ้น) ด้านล่างสุดเพื่อยืนยันการตั้งค่า
เลือกช่วงเซลล์ที่ต้องการสร้าง Drop Down List ก่อน

เปิดคำสั่ง Data Validation

เพิ่มกฎ

การกำหนดค่าสำหรับ Drop Down List

ผลลัพธ์

วิธีที่ 2: วิธีสร้าง Drop Down List โดยอ้างอิงจากช่วงเซลล์ (Dropdown from a range)
เมื่อคุณมีรายชื่อพนักงาน สินค้า หรือสาขาบริษัทที่มีจำนวนมาก การพิมพ์ทีละตัวเลือกย่อมไม่สะดวก วิธีนี้จะช่วยให้คุณดึงข้อมูลจากตารางที่เตรียมไว้มาแสดงผลเป็น Drop Down ได้อย่างสะดวก
ขั้นตอนการตั้งค่าอย่างละเอียด:
- เตรียมฐานข้อมูล (Master Data): แนะนำให้สร้าง Sheet ใหม่ (เช่น ชื่อ
Department) จากนั้นพิมพ์รายการทั้งหมดลงในคอลัมน์ A เช่น ตั้งแต่เซลล์A2ถึงA6 - เลือกเซลล์เป้าหมาย: กลับมาที่หน้า Sheet หลัก คลิกเลือกเซลล์ที่คุณต้องการสร้าง Drop Down
- เปิดหน้าต่างคำสั่ง: ไปที่เมนู Data (ข้อมูล) > Data validation (การตรวจสอบความถูกต้องของข้อมูล) > คลิก + Add rule (เพิ่มกฎ) แถบด้านขวา
- เปลี่ยนเกณฑ์การดึงข้อมูล: ในหัวข้อ Criteria (เกณฑ์) ให้คลิกเปลี่ยนจาก Dropdown ธรรมดา เป็น Dropdown (from a range) (เมนูแบบเลื่อนลง (จากช่วง))
- เลือกช่วงข้อมูลอ้างอิง:
- ใต้กล่องเกณฑ์ จะมีช่องว่างให้ระบุเซลล์ ให้คลิกที่ไอคอนตารางสี่เหลี่ยม Select data range (เลือกช่วงข้อมูล)
- หน้าต่างป๊อปอัปจะเด้งขึ้นมา ให้ใช้เมาส์คลิกไปที่แท็บหน้า
แล้วลากคลุมช่วงDepartmentA2:A6 - หรือคุณสามารถพิมพ์ในช่องป๊อปอัปโดยตรงว่า
Department!A2:A6
- ยืนยันช่วงข้อมูล: คลิกปุ่ม OK (ตกลง) ในหน้าต่างป๊อปอัป
- บันทึกข้อมูล: คลิกปุ่ม Done (เสร็จสิ้น) ในแถบเมนูด้านขวาเพื่อจบขั้นตอน
เตรียมข้อมูลที่จะนำไปสร้าง Drop Down List (แนะนำให้สร้างไว้ใน Sheet อื่นต่างหาก)

เปิดหน้าต่างคำสั่งสำหรับสร้าง Drop Down List

เลือกช่วงข้อมูลอ้างอิง

ตั้งค่าเพิ่มเติม

ผลลัพธ์จากการนำข้อมูลที่เตรียมไว้ล่วงหน้ามาสร้างเป็น Drop Down List

วิธีที่ 3: การสร้าง Drop Down List แบบอัปเดตอัตโนมัติ (Dynamic Drop Down List)
ต่อยอดจากวิธีที่ 2 หากตารางฐานข้อมูลของคุณมีการพิมพ์เพิ่มรายชื่อใหม่ลงไปเรื่อย ๆ การตั้งค่าแบบนี้จะทำให้ Drop Down อัปเดตรายการใหม่เข้ามาโดยอัตโนมัติ (Dynamic)
ขั้นตอนการตั้งค่าอย่างละเอียด:
- เตรียมฐานข้อมูล: พิมพ์รายการตัวเลือกไว้ใน Sheet
Departmentในคอลัมน์ A เริ่มจากเซลล์A2 - เลือกเซลล์และเปิดคำสั่ง: เลือกเซลล์ที่ต้องการสร้าง Drop Down ในหน้าทำงานหลัก > ไปที่ Data (ข้อมูล) > Data validation (การตรวจสอบความถูกต้องของข้อมูล) > + Add rule (เพิ่มกฎ)
- ตั้งค่าเกณฑ์: เลือก Criteria (เกณฑ์) เป็น Dropdown (from a range) (เมนูแบบเลื่อนลง (จากช่วง))
- กำหนดช่วงข้อมูลแบบปลายเปิด (สำคัญที่สุด):
- คลิกที่ช่องสำหรับระบุช่วงเซลล์
- พิมพ์ชื่อ Sheet และเซลล์เริ่มต้น ตามด้วยเครื่องหมายโคลอน (:) และชื่อคอลัมน์ โดย ไม่ต้องใส่ตัวเลขปิดท้าย
- ตัวอย่างการพิมพ์:
Department!A2:A - (ความหมายคือ ให้ระบบอ่านข้อมูลตั้งแต่เซลล์ A2 ลงไปจนถึงเซลล์ล่างสุดของคอลัมน์ A เป็นอนันต์ โดย Google Sheets จะตัดเซลล์ที่ว่างเปล่าออกให้อัตโนมัติ)
- บันทึกข้อมูล: คลิกปุ่ม Done (เสร็จสิ้น)
- ทดสอบ: ลองพิมพ์ข้อมูลใหม่ในเซลล์
A7ของหน้าDepartmentแล้วกลับมาดูที่ Drop Down ของคุณ จะพบว่ามีรายการใหม่โผล่ขึ้นมาทันที
การกำหนดค่า แสดงเฉพาะที่ต่างจากจากวิธีที่ 2 นะครับ

ผลลัพธ์จากการสร้าง Drop Down List ครั้งแรก

ลองเพิ่มรายชื่อแผนกเข้าไปที่ชีท Department จำนวน 2 รายการ

ผลลัพธ์: มีรายการตัวเลือกเพิ่มเข้ามาใน Drop Down List เดิม

วิธีที่ 4: การสร้าง Drop Down แบบพึ่งพาเซลล์อื่น (Dependent Drop Down List)
ในการจัดการฐานข้อมูลที่ซับซ้อน เช่น ระบบเก็บที่อยู่ลูกค้า หรือแบบฟอร์มลงทะเบียน การจำกัดตัวเลือกข้อมูลให้มีความสัมพันธ์กันแบบลดหลั่น (Hierarchical Data) ถือเป็นหัวใจสำคัญ หัวข้อนี้จึงขออัปเกรด วิธีสร้าง Drop Down List ใน Google Sheets ให้เป็นรูปแบบ 3 ชั้น (3-Level Dependent Drop Down List) โดยจำลองกรณีศึกษาที่พบบ่อยที่สุดคือ จังหวัด > อำเภอ > ตำบล
วิธีนี้จะใช้ Google Apps Script ซึ่งเป็นโซลูชันระดับมืออาชีพที่สามารถรันคำสั่งได้รวดเร็ว ล้างข้อมูลขยะอัตโนมัติ และรองรับการกรอกข้อมูลพร้อมกันหลายพันแถวได้อย่างมีประสิทธิภาพสูงสุด
ขั้นตอนการเตรียมโครงสร้างฐานข้อมูล (Master Data)
เพื่อให้สคริปต์ทำงานได้อย่างถูกต้อง จำเป็นต้องเตรียมแผ่นงาน (Sheets) จำนวน 2 หน้า โดยแบ่งเป็นหน้าสำหรับใช้งาน และหน้าสำหรับเก็บฐานข้อมูลดิบ ดังนี้:
- แผ่นงานแบบฟอร์ม (ตั้งชื่อว่า
Form):- คอลัมน์ A (1) = “จังหวัด”
- คอลัมน์ B (2) = “อำเภอ”
- คอลัมน์ C (3) = “ตำบล”
- (หมายเหตุ: แถวที่ 1 คือหัวตาราง ให้เริ่มกรอกข้อมูลจริงในแถวที่ 2 เป็นต้นไป)
- แผ่นงานฐานข้อมูล (ตั้งชื่อว่า
MasterData): จัดทำตารางฐานข้อมูลที่พักอาศัย โดยเรียงข้อมูลลงมาในแนวดิ่ง (ไม่ต้องกังวลเรื่องคำซ้ำ เพราะสคริปต์จะทำการคัดกรองให้อัตโนมัติ) ดังตัวอย่าง:

ตัวอย่างตารางฐานข้อมูลในแผ่นงาน MasterData

ขั้นตอนการติดตั้ง Google Apps Script สำหรับ 3 ชั้น (Step-by-Step)
การทำระบบอัตโนมัติ วิธีสร้าง Drop Down List ใน Google Sheets แบบ 3 ชั้น สามารถตั้งค่าได้ง่าย ๆ ผ่านขั้นตอนดังต่อไปนี้:

- เข้าสู่หน้าต่างผู้พัฒนา: ที่แถบเครื่องมือด้านบน เลือก Extensions (ส่วนขยาย) > คลิก Apps Script (แอปสคริปต์)
- ล้างค่าเริ่มต้น: หน้าต่างเขียนโค้ดจะเปิดขึ้นมา ให้ลบรหัสคำสั่งเดิม (Code) ที่ระบบมีให้ออกทั้งหมด
- วางชุดคำสั่งใหม่: คัดลอกรหัสคำสั่งด้านล่างนี้ ไปวางในพื้นที่ทำงาน
function onEdit(e) {
var sheet = e.source.getActiveSheet();
var activeCell = e.range;
// 1. ตั้งค่าชื่อแผ่นงานและหมายเลขคอลัมน์
var formSheetName = "Form";
var masterSheetName = "MasterData";
var provinceCol = 1; // คอลัมน์ A (จังหวัด)
var districtCol = 2; // คอลัมน์ B (อำเภอ)
var subdistrictCol = 3; // คอลัมน์ C (ตำบล)
// ตรวจสอบว่าแก้ไขในหน้า Form และไม่ใช่บรรทัดหัวตาราง
if (sheet.getName() !== formSheetName || activeCell.getRow() <= 1) return;
var col = activeCell.getColumn();
var row = activeCell.getRow();
// กรณีที่ 1: ผู้ใช้เลือกหรือเปลี่ยน "จังหวัด"
if (col === provinceCol) {
// ล้างข้อมูลและ Drop down ของ อำเภอและตำบล ทิ้งทันที
sheet.getRange(row, districtCol, 1, 2).clearContent().clearDataValidations();
var province = activeCell.getValue();
if (province === "") return;
var data = e.source.getSheetByName(masterSheetName).getDataRange().getValues();
var districts = [];
// ค้นหาอำเภอที่ตรงกับจังหวัด (ตัดคำซ้ำออก)
for (var i = 1; i < data.length; i++) {
if (data[i][0] === province && districts.indexOf(data[i][1]) === -1) {
districts.push(data[i][1]);
}
}
// สร้าง Drop Down อำเภอ
if (districts.length > 0) {
var rule = SpreadsheetApp.newDataValidation().requireValueInList(districts, true).build();
sheet.getRange(row, districtCol).setDataValidation(rule);
}
}
// กรณีที่ 2: ผู้ใช้เลือกหรือเปลี่ยน "อำเภอ"
else if (col === districtCol) {
// ล้างข้อมูลและ Drop down ของ ตำบล ทิ้งทันที
sheet.getRange(row, subdistrictCol).clearContent().clearDataValidations();
var district = activeCell.getValue();
var province = sheet.getRange(row, provinceCol).getValue(); // อ้างอิงจังหวัดด้วยเพื่อความแม่นยำ
if (district === "") return;
var data = e.source.getSheetByName(masterSheetName).getDataRange().getValues();
var subdistricts = [];
// ค้นหาตำบลที่ตรงกับจังหวัดและอำเภอที่เลือก (ตัดคำซ้ำออก)
for (var i = 1; i < data.length; i++) {
if (data[i][0] === province && data[i][1] === district && subdistricts.indexOf(data[i][2]) === -1) {
subdistricts.push(data[i][2]);
}
}
// สร้าง Drop Down ตำบล
if (subdistricts.length > 0) {
var rule = SpreadsheetApp.newDataValidation().requireValueInList(subdistricts, true).build();
sheet.getRange(row, subdistrictCol).setDataValidation(rule);
}
}
}
- บันทึกระบบ: คลิกไอคอนรูป แผ่นดิสก์ (Save project) ที่แถบด้านบน หรือกด
Ctrl + S(Cmd + Sบน Mac) - ทดสอบการทำงาน: กลับมาที่แผ่นงาน
Form- ลองสร้าง Drop Down ให้คอลัมน์ A (จังหวัด) โดยใช้วิธีพื้นฐาน (อ้างอิงช่วงเซลล์จาก
MasterData!A2:A) - เมื่อคุณเลือก “จังหวัด” สคริปต์จะสร้างตัวเลือก “อำเภอ” ในคอลัมน์ B ทันที
- เมื่อคุณเลือก “อำเภอ” สคริปต์จะสร้างตัวเลือก “ตำบล” ในคอลัมน์ C ทันที
- ลองสร้าง Drop Down ให้คอลัมน์ A (จังหวัด) โดยใช้วิธีพื้นฐาน (อ้างอิงช่วงเซลล์จาก


กลไกการทำงานขั้นสูงที่เหนือกว่าของสคริปต์นี้ (The Mechanics)
การยกระดับ วิธีสร้าง Drop Down List ใน Google Sheets ให้เป็นแบบ 3 ชั้นด้วยสคริปต์นี้ ได้รับการออกแบบสถาปัตยกรรมมาเพื่ออุดช่องโหว่ของการทำงานบน Spreadsheet แบบดั้งเดิม:
- การล้างข้อมูลอัตโนมัติแบบต่อเนื่อง (Cascading Clear): หากคุณกรอกข้อมูลครบทั้ง จังหวัด > อำเภอ > ตำบล แล้วเกิดเปลี่ยนใจกลับไปเปลี่ยน “จังหวัด” ใหม่ ระบบจะทำการล้าง (Clear Content) ข้อมูลในช่องอำเภอและตำบลทิ้งพร้อมกันในเสี้ยววินาที ป้องกันปัญหาลูกค้ามีจังหวัดภูเก็ต แต่มีรหัสตำบลของเชียงใหม่ติดไปในฐานข้อมูล
- การคัดกรองคำซ้ำอย่างชาญฉลาด (Unique Array Filtering): ในหน้า MasterData คุณจะต้องพิมพ์ชื่อจังหวัดและอำเภอซ้ำกันหลายบรรทัดตามจำนวนตำบล โค้ดส่วน
indexOf() === -1จะทำหน้าที่กรองให้ตัวเลือกที่แสดงผลใน Drop Down List มีเพียงชื่อเดียว ไม่ซ้ำซ้อนกัน ช่วยให้เมนูตัวเลือกดูสะอาดตาและเป็นมืออาชีพ - การตรวจสอบเงื่อนไขคู่ (Dual-Condition Check): ประเทศไทยมีหลายอำเภอที่ชื่อซ้ำกันแต่อยู่คนละจังหวัด (เช่น อำเภอเฉลิมพระเกียรติ) สคริปต์ในกรณีที่ 2 ได้ระบุให้ระบบต้องตรวจสอบทั้งตัวแปร
provinceและdistrictควบคู่กัน ทำให้การดึงรายชื่อตำบลมีความแม่นยำระดับ 100% เสมอ
ตัวอย่างการประยุกต์ใช้งานในระดับองค์กร
เทคนิค Data Validation แบบ 3 ชั้นนี้ สามารถนำไปบูรณาการ (Integrate) กับระบบงานทางธุรกิจที่ต้องการความละเอียดสูงได้หลากหลาย เช่น:
- ระบบสั่งซื้อและจัดส่งสินค้า (E-commerce Order Fulfillment): ใช้สร้างแบบฟอร์มกรอกที่อยู่สำหรับตัวแทนจำหน่าย เพื่อป้องกันปัญหาพัสดุตีกลับจากการสะกดชื่อตำบลหรืออำเภอผิด
- ฐานข้อมูลพนักงานในระบบทรัพยากรบุคคล (HRIS): ประยุกต์ใช้กับโครงสร้างองค์กร เช่น สายงาน (Division) > ฝ่าย (Department) > ตำแหน่ง (Position) เมื่อปรับเปลี่ยนฝ่าย ตำแหน่งที่แสดงให้เลือกจะถูกกรองให้เหลือเฉพาะฟังก์ชันงานที่เกี่ยวข้องเท่านั้น
บทสรุป
การออกแบบระบบจัดการข้อมูลที่ดีเริ่มต้นที่การจำกัดกรอบการนำเข้าข้อมูล วิธีสร้าง Drop Down List ใน Google Sheets ที่ได้อธิบายอย่างละเอียดแบบ Step-by-step ทั้ง 4 วิธีในบทความนี้ จะช่วยให้คุณปรับแต่ง Spreadsheet ให้ตอบโจทย์ตั้งแต่งานเอกสารขนาดเล็ก ไปจนถึงการทำระบบฐานข้อมูลเชิงสัมพันธ์ (Relational Database) บนระบบคลาวด์ การทำตามขั้นตอนเหล่านี้อย่างเคร่งครัดจะช่วยลดข้อผิดพลาด ลดเวลาการตรวจสอบข้อมูล (Data Cleansing) และยกระดับความเป็นมืออาชีพในองค์กรของคุณได้อย่างเป็นรูปธรรม
