Google Form—สร้าง Drop-down List จากข้อมูลใน Google Sheet [Apps Script]

เพื่อนๆ ที่ใช้งาน Google Form ประจำ คงคุ้นเคยกันดีหากฟอร์มที่ต้องการให้ผู้ใช้งานกรอกมีรูปแบบเป็น Drop-down List และหาก Drop-down List นั้นมีเยอะมาก แล้วต้องมากรอกข้อมูลทีละรายการจนครบคงรู้สึกเหนื่อยแบบสุดๆ วันนี้เราจะใช้ Apps Script มาช่วยในการส่งข้อมูลของ Drop-down List ไปที่ Google Form โดยไม่ต้องมานั่งกรอกข้อมูลทีละรายการให้เหนื่อยและเสียเวลากันไปเปล่าๆ มาเริ่มกันเลยดีกว่าครับ Let’s go! 🎢


— เริ่มจากสร้าง Sheet มาใหม่ด้วยการพิมพ์ sheet.new ในช่อง URL กันเลย และสร้าง Form ด้วยการพิมพ์ form.new ในช่อง URL ได้เช่นกันครับ ใครที่ยังไม่รู้จักฟีเจอร์นี้ไปทำความรู้จักได้ที่เรื่อง สร้างไฟล์ใหม่อย่างรวดเร็วด้วยฟีเจอร์ .new กันได้เลยครับ อย่าลืมตั้งชื่อไฟล์ทั้ง Sheet และ Form ด้วย วันนี้ผมจะทดลองด้วยการสร้าง Drop-down List จาก Sheet ข้อมูลรายชื่อจังหวัด อำเภอ ตำบล รหัสไปรษณีย์ ของประเทศไทยน่ะครับ (ใครยังไม่มีลองไปดูวิธีการได้เลยที่ Google Sheet—สร้างรายชื่อตำบล อำเภอ จังหวัด และรหัสไปรษณีย์ ไว้ใช้งานกันเถอะ)

หลังจากได้ Sheet ข้อมูลรายชื่อจังหวัด อำเภอ ตำบล รหัสไปรษณีย์ มาแล้ว ให้ตั้งชื่อหัวข้อ Drop-down List ใน Google Form ให้ตรงกันกับหัวคอลัมน์ของข้อมูลใน Sheet ก่อนครับ โดย 1 คอลัมน์ เท่ากับชุดข้อมูล Drop-down List 1 ชุด และอย่าลืมเลือกรูปแบบการกรอกเป็นแบบ Drop-down List ด้วยครับ

— ใน Sheet ข้อมูลให้ไปที่เมนู Tools –> Script editor เพื่อเริ่มการเขียน Apps Script ได้เลย ผมไม่ขอลงรายละเอียดในตัว Code น่ะครับ และสิ่งที่เพื่อนๆ ต้องนำมาใส่เองก็คือ Google Sheet Id และ Google Form Id โดย Id นั้นจะอยู่ระหว่างเครื่องหมาย …/d/Sheet Id or Form Id/edit… ใน Link url และให้ Copy มาเฉพาะ Id ครับ และตัวแปรทั้งคู่ต้องอยู่ในเครื่องหมาย ” ”

  • Google Sheet ID ดูได้ใน Link url เช่น https://docs.google.com/spreadsheets/d/Sheet Id Copy here/edit#gid=1040028331
  • Google Form ID ดูได้ใน Link url เช่น https://docs.google.com/forms/d/Form Id Copy here/edit?usp=drive_web

— จะมีฟังก์ชันการทำงานหลัก 3 ฟังก์ชั่น

  • function updateDropdown(id, values) : ทำการอัพเดทข้อมูล Drop-down List ของแต่ละหัวข้อไปที่ Google Form
  • function updateDropdownUsingTitle(title, values) : ทำการตรวจสอบหัวข้อใน Google Sheet ว่าตรงกับหัวข้อใน Google Form หรือไม่ก่อนจะทำการอัพเดทข้อมูล Drop-down List
  • function main() : ทำการรับค่าจากคอลัมน์ใน Google Sheet และส่งค่าไปที่ function ที่สองเพื่อตรวจสอบหัวข้อก่อนทำการอัพเดทข้อมูลไปที่ Google Form ด้วยฟังก์ชันแรกครับ

— ทำการ Run Script ฟังก์ชัน main() ได้เลยครับ แล้วก็ Permission Review ต่อเลย เราก็จะได้ข้อมูล Drop-down List ที่มีข้อมูลเยอะๆ ไปที่ Google Form แล้วครับ

— หากเราต้องทำการเปลี่ยนแปลงข้อมูลก็ให้ Run Script ฟังก์ชัน main() ใหม่ ข้อมูลใน Google Form ก็จะอัพเดทให้ด้วยครับ หรืออยากต้องการสร้างปุ่มลัดไว้อัพเดทข้อมูลก็ให้ไปที่เมนู Insert –> Drawing สร้างปุ่มขึ้นมาชื่อว่า Update Form แล้วให้ Click 3 ตุ่มแล้วกำหนด Assign script เป็น main เพียงเท่านี้หากต้องการอัพเดทข้อมูลไปที่ฟอร์มก็เพียงแค่คลิ๊กที่ปุ่มนี้ได้เลยครับ

***กรณีที่ข้อมูลมีมากกว่าที่ Google Form กำหนดจะมี Error แจ้งตามนี้ครับ อาจจะต้องระวังเรื่องจำนวนข้อมูลด้วยครับ แต่สำหรับใครที่ต้องการฟอร์มแบบเจ๋งๆ ใช้ความรู้พื้นฐานในการ Code ลองอ่านได้ที่บทความ Web App—Auto Complete สำหรับข้อมูลที่อยู่ ดูครับ แล้วจะทำให้การกรอกข้อมูลที่อยู่ง่ายขึ้นเยอะ😍

— มาดูสิ่งที่เราได้บน Google Form กันครับ


ท้ายสุด เป็นอย่างไรบ้างครับ เราสามารถลดแรง และเวลาในการต้องมากรอกข้อมูลทีละรายการได้เยอะมากๆ เลย มีเวลาไปทำอะไรต่อได้อีกเยอะ ลองเปลี่ยนข้อมูลเป็นของเพื่อนๆ ดูครับ ก็หวังว่าจะเป็นประโยชน์กับเพื่อนๆ ทุกคนครับ Happy Life…😏


ประกันรถใกล้หมดแล้ว ไม่อยากจ่ายแพง อยากได้ราคาดีที่สุดคลิกเช็คเบี้ย ฟรี!! ที่นี่🔗 https://bit.ly/3sEMzHO

โปรโมชั่น คูปองส่วนลด และดีล ที่ดีที่สุดของร้านค้าออนไลน์กว่า 300 แบรนด์พร้อมรับเงินคืนจาก ShopBack
🔗 https://bit.ly/3c4tlmV

Ruk-Com จดโดเมน-เช่าโฮสต์ ราคาประหยัด พร้อมให้บริการใน 1 นาที
🔗 http://bit.ly/36q8A12