28 ส.ค. 2023 เวลา 09:11 • ไอที & แก็ดเจ็ต

Drop-Down List หลายชั้น ด้วย Apps Script

หลายครั้งที่เราอยากได้ drop-down list แบบหลายชั้น อย่างเช่นชั้นแรก เลือกจังหวัด ชั้นต่อมาให้มีอำเภอของจังหวัดนั้นให้เลือก แล้วชั้นสุดท้ายให้เป็นตำบล
วันนี้เรามาสร้าง drop-down list หลายชั้นด้วย apps script กัน
apps script 'Multiple Drop-Down List'
  • สร้างชีต 'list' สำหรับรายละเอียดรายการที่ต้องการสร้าง
  • กำหนดช่วงที่ต้องการสร้าง drop-down
  • ตั้งค่าเพิ่มหากต้องการให้รายการสุดท้ายเลือกได้ครั้งเดียว
สำเนาไฟล์ไปได้เลยนะครับ สคริปต์จะติดไปกับไฟล์นี้
ตัวอย่างการใช้งาน
สมมติว่าเราต้องการสร้าง drop-down หลายชั้น โดยชั้นแรกคือ 'อาคาร' ชั้นที่สองคือ 'ห้อง' ภายในอาคาร และชั้นที่ 3 คือตำแหน่งงาน
ให้เราสร้างฐานข้อมูลรายการทั้งหมดในชีต 'list' ดังภาพ
ภาพที่ 2
'อาคาร A' ห้อง 'A11' มีตำแหน่งงาน 3 ตำแหน่งคือ 'ประธาน', 'รองประธาน' และ 'กรรมการ' จึงต้องทำไว้ 3 แถว
ทำรายการไว้ตามที่เราต้องการทั้งหมด
จากนั้นกลับมาที่ชีต 'ชีต1' สร้างหัวตารางไว้
ภาพที่ 2
เปิด apps script
ภาพที่ 3
ตั้งค่าชื่อชีตและช่วงต่าง ๆ ตามคำอธิบายด้านหลัง
บรรทัดที่ 3 คือชื่อชีตที่จะสร้าง drop-down
ช่วงบรรทัดที่ 4 - 6 เป็นช่วงที่ต้องการสร้าง drop-down
บรรทัดที่ 7 คือชื่อชีตที่เป็นฐานข้อมูลรายการ
ส่วนช่วงบรรทัดที่ 8 - 10 เป็นช่วงของฐานข้อมูลที่จะสร้างรายการ
ภาพที่ 4
ตั้งค่าคอลัมน์
บรรทัดที่ 25 เนื่องจาก range1 คือ 'A2:A10' จึงให้เช็ค row >= 2 และ column == 1
บรรทัดที่ 26 เนื่องจาก range2 คือ 'B2:B10' อยู่ถัดจาก range1 จึงต้องกำหนด offset ที่จะสร้าง drop-down ชั้นที่ 2 คือ .offset(0, 1)
บรรทัดที่ 31 - 34 ก็เช่นเดียวกัน ต่างกันที่เป็นการล้าง drop-down ออก กรณีที่ลบค่าใน range1
บรรทัดที่ 37 - 47 ก็ทำในลักษณะเดียวกัน แต่เป็น drop-down ชั้นที่ 2 จึงใช้ column == 2
ภาพที่ 5
ทดลองใช้งานโดย แก้ไขอะไรเล็กน้อย เช่น กดลบที่เซลล์ว่าง สคริปต์ก็จะถูกรันสร้าง drop-down ชั้นแรกที่ช่วง A2:A10
ภาพที่ 6
ลองเปลี่ยนค่าในเซลล์ A2 ดู ที่เซลล์ B2 ก็มี drop-down ขึ้นมาให้ตามรายการที่ตั้งไว้
ภาพที่ 7 - 9
และเมื่อเลือกค่าในเซลล์ B2 ที่เซลล์ C2 ก็มี drop-down ขึ้นมาเป็นชั้นที่ 3
ภาพที่ 10 - 12
ซึ่งถ้าเลือก 'อาคาร' และ 'ห้อง' ซ้ำกับที่เคยเลือกไปแล้ว รายการของ 'ตำแหน่ง' ก็จะไม่มีตัวเลือกเดิมให้เลือกอีก
ภาพที่ 13
แต่หากต้องการให้เลือกซ้ำได้ก็ให้ปรับสคริปต์ บรรทัดที่ 73 - 79 ให้กลายเป็นคำอธิบาย โดยใส่เครื่องหมาย // ด้านหน้าบรรทัด หรือเลือกทั้งหมดแล้วกด ctrl + /
จากนั้นกดบันทึก
ภาพที่ 14 - 15
ลบเซลล์ B4 ออกแล้วเลือกค่าใหม่ ก็จะได้ drop-down ที่เซลล์ C3 ที่สามารถเลือกค่าซ้ำได้
ภาพที่ 16
สคริปต์นี้ ต้องเลือกให้เสร็จทีละแถว ถ้าเลือกไว้บางส่วน drop-down ชั้นสุดท้ายจะไม่ตัดตัวซ้ำออกให้นะ
หากเห็นว่าบทความนี้เป็นประโยชน์ กดไลค์กดแชร์เพื่อเป็นกำลังใจให้ผู้เขียนด้วยนะฮับ
โฆษณา