วิธีสร้าง Drop Down List ใน Google Sheets (สอนละเอียดทุกขั้นตอน)

ในการทำงานร่วมกันบนระบบคลาวด์ (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 รายการ และไม่ค่อยมีการเปลี่ยนแปลงในอนาคต เช่น สถานะการเข้าเรียนหรือเข้างาน (มา, ลา, ขาด)

ขั้นตอนการตั้งค่าอย่างละเอียด:

  1. เลือกเซลล์เป้าหมาย: ใช้เมาส์คลิกเลือกเซลล์เดียว หรือคลิกค้างแล้วลากคลุมช่วงเซลล์ (เช่น C2:C15) ที่คุณต้องการให้แสดงเมนู Drop Down
  2. เข้าสู่เมนูตั้งค่า: ไปที่แถบเมนูด้านบนสุด คลิกที่คำว่า Data (ข้อมูล)
  3. เปิดหน้าต่างคำสั่ง: จากเมนูที่กางลงมา ให้คลิกเลือก Data validation (การตรวจสอบความถูกต้องของข้อมูล)
  4. เพิ่มกฎใหม่: จะปรากฏแถบหน้าต่าง Data validation rules (กฎการตรวจสอบความถูกต้องของข้อมูล) ที่ด้านขวาของหน้าจอ ให้คลิกปุ่ม + Add rule (เพิ่มกฎ)
  5. กำหนดรูปแบบ: ในหัวข้อ Criteria (เกณฑ์) ให้คลิกเลือกเป็น Dropdown (เมนูแบบเลื่อนลง)
  6. พิมพ์รายการตัวเลือก:
    • ในช่อง Option 1 ให้พิมพ์ตัวเลือกแรก (เช่น มา)
    • ในช่อง Option 2 ให้พิมพ์ตัวเลือกลำดับถัดไป (เช่น ลา)
    • หากต้องการเพิ่มตัวเลือก ให้คลิกที่คำว่า Add another item (เพิ่มรายการอื่น) แล้วพิมพ์ข้อความลงไป
  7. กำหนดสี (Color-coding): คลิกที่ไอคอนวงกลมด้านซ้ายของแต่ละข้อความตัวเลือก เพื่อเลือกสีพื้นหลัง (Color Chips) ที่ต้องการให้แสดงผล
  8. การตั้งค่าขั้นสูง (ทางเลือก): คลิกที่ Advanced options (ตัวเลือกขั้นสูง) ด้านล่างสุด เพื่อเลือก Display style (รูปแบบการแสดงผล) ซึ่งมีให้เลือก 3 แบบคือ Chip (ชิป – เป็นกรอบสี), Arrow (ลูกศร), หรือ Plain text (ข้อความธรรมดา)
  9. บันทึกข้อมูล: คลิกปุ่ม Done (เสร็จสิ้น) ด้านล่างสุดเพื่อยืนยันการตั้งค่า

เลือกช่วงเซลล์ที่ต้องการสร้าง Drop Down List ก่อน

เลือกช่วงเซลล์ที่ต้องการสร้าง Drop Down List

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

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

เพิ่มกฎ

เพิ่มกฎใหม่

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

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

ผลลัพธ์

ผลลัพธ์การสร้าง Drop Down List ใน Google Sheets

วิธีที่ 2: วิธีสร้าง Drop Down List โดยอ้างอิงจากช่วงเซลล์ (Dropdown from a range)

เมื่อคุณมีรายชื่อพนักงาน สินค้า หรือสาขาบริษัทที่มีจำนวนมาก การพิมพ์ทีละตัวเลือกย่อมไม่สะดวก วิธีนี้จะช่วยให้คุณดึงข้อมูลจากตารางที่เตรียมไว้มาแสดงผลเป็น Drop Down ได้อย่างสะดวก

ขั้นตอนการตั้งค่าอย่างละเอียด:

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

เตรียมข้อมูลที่จะนำไปสร้าง Drop Down List (แนะนำให้สร้างไว้ใน Sheet อื่นต่างหาก)

เตรียมข้อมูลที่จะนำไปสร้าง Drop Down List

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

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

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

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

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

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

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

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

วิธีที่ 3: การสร้าง Drop Down List แบบอัปเดตอัตโนมัติ (Dynamic Drop Down List)

ต่อยอดจากวิธีที่ 2 หากตารางฐานข้อมูลของคุณมีการพิมพ์เพิ่มรายชื่อใหม่ลงไปเรื่อย ๆ การตั้งค่าแบบนี้จะทำให้ Drop Down อัปเดตรายการใหม่เข้ามาโดยอัตโนมัติ (Dynamic)

ขั้นตอนการตั้งค่าอย่างละเอียด:

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

การกำหนดค่า แสดงเฉพาะที่ต่างจากจากวิธีที่ 2 นะครับ

การสร้าง Drop Down List แบบอัปเดตอัตโนมัติ

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

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

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

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

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

ผลลัพธ์: มีรายการตัวเลือกเพิ่มเข้ามาใน 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 หน้า โดยแบ่งเป็นหน้าสำหรับใช้งาน และหน้าสำหรับเก็บฐานข้อมูลดิบ ดังนี้:

  1. แผ่นงานแบบฟอร์ม (ตั้งชื่อว่า Form):
    • คอลัมน์ A (1) = “จังหวัด”
    • คอลัมน์ B (2) = “อำเภอ”
    • คอลัมน์ C (3) = “ตำบล”
    • (หมายเหตุ: แถวที่ 1 คือหัวตาราง ให้เริ่มกรอกข้อมูลจริงในแถวที่ 2 เป็นต้นไป)
  2. แผ่นงานฐานข้อมูล (ตั้งชื่อว่า MasterData): จัดทำตารางฐานข้อมูลที่พักอาศัย โดยเรียงข้อมูลลงมาในแนวดิ่ง (ไม่ต้องกังวลเรื่องคำซ้ำ เพราะสคริปต์จะทำการคัดกรองให้อัตโนมัติ) ดังตัวอย่าง:
หน้า Form

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

ข้อมูลรายชื่อจังหวัด อำเภอ ตำบล

ขั้นตอนการติดตั้ง Google Apps Script สำหรับ 3 ชั้น (Step-by-Step)

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

ภาพแสดงขั้นตอนการเปิดหน้า Apps Script
  1. เข้าสู่หน้าต่างผู้พัฒนา: ที่แถบเครื่องมือด้านบน เลือก Extensions (ส่วนขยาย) > คลิก Apps Script (แอปสคริปต์)
  2. ล้างค่าเริ่มต้น: หน้าต่างเขียนโค้ดจะเปิดขึ้นมา ให้ลบรหัสคำสั่งเดิม (Code) ที่ระบบมีให้ออกทั้งหมด
  3. วางชุดคำสั่งใหม่: คัดลอกรหัสคำสั่งด้านล่างนี้ ไปวางในพื้นที่ทำงาน
JavaScript
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);
    }
  }
}
  1. บันทึกระบบ: คลิกไอคอนรูป แผ่นดิสก์ (Save project) ที่แถบด้านบน หรือกด Ctrl + S (Cmd + S บน Mac)
  2. ทดสอบการทำงาน: กลับมาที่แผ่นงาน Form
    • ลองสร้าง Drop Down ให้คอลัมน์ A (จังหวัด) โดยใช้วิธีพื้นฐาน (อ้างอิงช่วงเซลล์จาก MasterData!A2:A)
    • เมื่อคุณเลือก “จังหวัด” สคริปต์จะสร้างตัวเลือก “อำเภอ” ในคอลัมน์ B ทันที
    • เมื่อคุณเลือก “อำเภอ” สคริปต์จะสร้างตัวเลือก “ตำบล” ในคอลัมน์ C ทันที
ภาพแสดงขั้นตอนการสร้าง Drop Down List สำหรับเลือกจังหวัด
Drop Down List 3 ระดับที่สมบูรณ์

กลไกการทำงานขั้นสูงที่เหนือกว่าของสคริปต์นี้ (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) และยกระดับความเป็นมืออาชีพในองค์กรของคุณได้อย่างเป็นรูปธรรม

แชร์เรื่องนี้