var sheetId = "xxxx" var formId = "xxxx" function myFunction() { var ss = SpreadsheetApp.openById(sheetId) var sheet = ss.getSheetByName("การตอบแบบฟอร์ม 1") var form = FormApp.openById(formId) var data = [...new Set(sheet.getDataRange().getDisplayValues().map(row=> row[1]))].join('|') var item = form.getItems().filter(item=>item.getTitle() == 'ชื่อ สกุล')[0].asTextItem() var pattern = `(${data})` var textval = FormApp.createTextValidation().setHelpText("คุณกรอกชื่อซ้ำ!!").requireTextDoesNotMatchPattern(pattern).build() item.setValidation(textval) }
สำหรับใครที่ไม่ได้ลองดูครับ ar sheetId = "xxxxxx"; var formId = "xxxxxx"; function myFunction() { var ss = SpreadsheetApp.openById(sheetId); var sheet = ss.getSheetByName("การตอบแบบฟอร์ม 1"); var form = FormApp.openById(formId); var data = [...new Set(sheet.getDataRange().getDisplayValues().map(row => row[1]))].join('|'); var item = form.getItems(FormApp.ItemType.TEXT)[0].asTextItem(); // Assuming the item is a text item var pattern = `(${data})`; var textval = FormApp.createTextValidation().setHelpText("คุณกรอกรหัสซ้ำ!!").requireTextDoesNotMatchPattern(pattern).build(); item.setValidation(textval); }
var sheetId = "xxxx"
var formId = "xxxx"
function myFunction() {
var ss = SpreadsheetApp.openById(sheetId)
var sheet = ss.getSheetByName("การตอบแบบฟอร์ม 1")
var form = FormApp.openById(formId)
var data = [...new Set(sheet.getDataRange().getDisplayValues().map(row=> row[1]))].join('|')
var item = form.getItems().filter(item=>item.getTitle() == 'ชื่อ สกุล')[0].asTextItem()
var pattern = `(${data})`
var textval = FormApp.createTextValidation().setHelpText("คุณกรอกชื่อซ้ำ!!").requireTextDoesNotMatchPattern(pattern).build()
item.setValidation(textval)
}
ลองทำตามแล้ว ไม่มีการเช็คซ้ำให้เลยค่ะ บันทึกได้ปกติ
อ.ครับ แล้วค่าที่เราต้องการการกรอกซ้ำเราสร้างให้อยู่อีกคอลัมน์หรือไปอีกส่วนหนึ่งในฟอร์ม แล้วในวงเล็บเราต้องใส่เลขอะไร....ซึ่งตามคลิปที่ อ.สร้างมันอยู่ตรงข้อแถวแรกเลยคือ index 0 /
แบบนี้เราจะรู้ได้ยังไงว่าค่าที่เราสร้างขึ้น..มันไปอยู่อีกแถว-อีกส่วน เราจะใส่ค่า index อะไร-นับยังไงครับ
@@sawasdeeexcise3704 เป็นเหมือนกันครับ
@@tkjrarm ได้วิธี ดู index หริอยังครับ
@@khamonsa สอบถามครับ ดู index ยังไงครับ
ขอบคุณครับ มีเทคนิค แบบนี้ด้วย นึกไม่ถึงจริง ๆ ครับ
ผมจะทำฟร์อมที่ละ ระบุจุด
หลายหลายฟอร์มแต่ให้เซฟลงเลย โฟลเดอร์เดียวกันทำได้ไหมครับ
ขอบคุณครับอาจารย์ ทำได้แล้วครับ
สุดยอดครับ เข้าใจง่าย
ขอบคุณครับอาจารย์ ได้ทดลองนำไปใช้กับการป้องกันกรอกเลขประจำตัวซ้ำโดยให้ลำดับแรกใส่เลขประจำตัวก่อน ปรากฏว่าในกรณีที่เด็กต้องเข้ามาแก้ไขข้อมูลส่วนอื่น ไม่สามารถทำได้เพราะระบบแจ้งว่าเลขประจำตัวซ้ำ ถ้าต้องการให้เด็กแก้ไขข้อมูลที่เคยกรอกไว้ได้ต้องทำอย่างไรครับ
มีกำหนดให้ตรวจสอบรูปแบบเลขประจำตัวด้วยมั้ยคะ
@@sunisamukem สามารถแก้ไชโดยคลิกข้อมูลในคำถามนั้น บริเวณ 3 จุดด้านขวามือล่าง แล้วเลือก validation response จากนั้นเลือกได้ว่าจะกำหนดต้องอะไรเข้าไป ทั้ง contain, match, not match etc.... ครับ ส่วนคำสั่งแต่ละอัน ลองศึกษาเพิ่มเติมนะครับ
ขอบคุณครับ เสียดายสมัยเรียนไม่มียูทูป อ.ไม่สินละเอียดแบบนี้ 🥺
ผมจะทำ 2 index ต้องทำอย่างไงครับ ผมจะให้เช็คทั้งชื่ออันนึง แระไอดีอันนึงครับ
สอบถามครับ ถ้าในกรณีที่ต้องใช้รหัสเดิมมีการลงทะเบียนผ่าน google form ทุกวัน จะให้วันถัดไป มีการเริ่มใหม่ ต้องเพิ่ม Scrip แบบใหนเพิ่มครับ
อาจาร์ย ตอนนี้ทำไม่ได้แล้วค่ะ มีตัวอัพเดตมั๊ยค่ะ
อาจารย์ครับ ผมสามารถ เช็กหลายๆ ชุดข้อมูล ในฟอร์มเดียวได้มั้ยครับ แบบว่า ชื่อห้ามซ้ำ เมล์ห้ามซ้ำ เบอร์โทรห้ามซ้ำ อะไรแบบนี้อ่าครับจารย์
ขอคำแนะนำ โค๊ดเขียนโค๊ดป้องกันการกรอกข้อมูลผ่าน google form ที่เป็นวันที่ ไม่ให้เกินวันที่ปัจจุบันหน่อยครับ
แล้วถ้าต้องการให้ตัวเลือกที่เลือกไปแล้วไม่ถูกเลือกซ้ำจนกว่ารายการนั้นจะถูกเอามาคืน จะต้องทำอย่างไรค่ะ เปรียบเหมือนการยืมของที่มีชิ้นเดียวค่ะ
ขอบคุณมากครับ ช่วยได้มากเลย
ขอบคุณมากๆนะครับ คุณครู
ขอสอบถามว่า ถ้าเราต้องการใช้สูตร ตาม อ. ทั้งเช็คข้อมูลคนกรอกซ้ำ และ จำกัดจำนวนคน จะเพิ่มสูตรอย่างไรคับ
อาจารย์ครับมีตัวอย่างการสร้างฟอร์มโดยที่ผู้กรอกข้อมูล สามารถเพิ่มช่องข้อมูลขึ้นมาได้ไหมครับ ยกตัวอย่างเช่น ผมต้องรายชื่อโรงเรียน โดยให้สำนักงานเขตพื้นที่การศึกษาที่รับผิดชอบ สำรวจรายชื่อ โดยสามารถเพิ่มช่องกรอกข้อมูลได้ไม่จำกัดอ่ะครับ ขอบคุณครับ
ขอบคุณมากครับ
อ.ครับ ผมกดส่งคำตอบเเล้วมันเด้งมาหน้า เเรก เเล้วผมก็กดที่บัญชี ถึงส่งได้ อยากรุ้ว่าคำตอบจะไปถึงคนสร้างกูเกิลฟอมมั้ย
กรณีต้องการเช็คแต่ละช่วง ซึ่งมีหลายหน้า ได้ไหมครับ
สวัสดีครับ ท่านอาจารย์ ถ้าจะคัดลอกโค้กของอาจารย์ ไปวางได้มั้ยครับ ถ้าได้ จอโค้ดได้มั้ยครับวิธีนี้ดีครับผู้คตอบไม่ค้องลงขื่อเจ้าใช้ครับ
การลงชื่อเข้าใช้ยาก ทำให้ผู้ตอบไม่อยากตอบคำถาม ครับ ขอบพระคุณมาก ครับ ผมจะออกแบบ ให้สมาขิกเบือกคั้งกรรมการ ครับ จำเป็นต้องป้องกันการกรอกซ้ำครับ ขอบคุณพระคุณครับ
โค้ดอยู่คอมเม้นต์ใต้คลิปสอนครับ
อยากทราบว่าถ้าต้องการ เพิ่มให้ใส่ได้เฉพาะแค่ ตัวเลข และจำกัดแค่ 13 ตัวทำยังไงครับ
ถ้าตัวที่จะเช็คเป็นรหัสนักเรียน ค่าที่จะให้พิมพ์จะเป็นตัวเลข 6 ตัวน่ะค่ะ ในส่วนของโค้ดต้องแก้ตรงไหนไหมคะอาจารย์
Script ที่ทำไว้แล้ว สามารถเรียกกลับมาใช้ใน ฟอร์ม อื่นได้ไหมครับ ถ้าเป็นฟอร์มลงทะเบียนในลักษณะเดียวกัน แต่แบ่งเป็นรุ่นๆ อย่างเช่น ใบลงทะเบียน แต่ต้องแก้ตรงชื่อ Id ของ Sheet กับ Formsให้ถูกต้อง แล้วต้องสร้างโครงการเป็นชื่อใหม่ และกด ทริคเกอร์ใหม่ ในแต่ละอันแยกๆ กันไป เข้าใจแบบนี้ถูกต้องไหมครับ
ใช่ครับ
@@KruApiwat ขอบคุณมากครับ มีประโยชน์มากเลยครับ
ถ้าเกิดอยากให้มีการเช็ค 2 เงื่อนไข เช่น ชื่อและรหัสพนักงาน สามารถที่จะพิมพ์คำสั่งเหมือนบรรทัด 9 แต่เปลี่ยนเป็น รหัสพนักงาน ได้ไหมค่ะ
ขอบคุณครับผม อาจารย์ครับ
อาจารย์ครับ
มีตัวอย่างที่ไม่ให้กรอกรหัสพนักงานผิดไหมครับ
โดยมีdata baseของรหัสในชีต
ขออนุญาตสอบถามครับ
ถ้าผมต้องการเช็คซ้ำมากกว่า 1 ข้อมูล เช่น “ชื่อ” “นามสกุล” วันเดือนปีเกิด” ผมต้องเพิ่มโค้ดยังไงเหรอครับ
ครูค่ะ มีวิธีทำแบบแค่คลิ๊กเข้าก็ กรอกข้อมมูลส่วนตัวเราอัตโนมัติไหมค่ะ (แค่กดส่งอย่างเดียว)
ไม่มีครับ
ใช้เพื่อนกรอกครับ ชี้ที่เดียว อิอิ
กรณีอยากให้ตรวจสอบมากกว่า 1 ค่าต้องเขียน Code เพิ่มยังไงคะ
อาจารย์ครับ ถ้าจะกำหนดให้เขากรอกข้อมูลได้ไม่เกินคนละ 2 ครั้ง ต้องแก้โค๊ตส่วนไหนครับ ขอบพระคุณล่วงหน้าครับ
ขออนุญาตค่ะ สามารถทำได้ไหมคะ
สามเงื่อนไขทำอย่างไรครับคือสามารถส่งฟอร์มได้ทุกวันจันทร์ถึงศุกร์เท่านั้นส่วนวันเสาร์-อาทิตย์ บันทึกได้ 2 ครัง
ลองทำตามแล้ว ไม่มีการเช็คซ้ำให้เลยอ่ะค่ะ
ขอวิธีกด แบล็กติก หน่อยครับ กดยังไงก็ไม่ได้ แถมไม่รู้ว่าสัญลักษณ์เป็นแบบไหนด้วย
กด Alt ค้างไว้ กด 9 ค้างไว้แล้ว กด 6 (ตรงแป้นที่เป็นตัวเลขทางขวามือ) --> var pattern = `(${data})`
ถ้าเป็นตัวเลขทำยังไงเหรอครับ
อ.ครับ ทำตามสคริปท์แล้ว ยังสามารถกรอกชื่อเดิมได้ ต้องทำยังไงครับ ขอบคุณครับ
อันนี้ไม่ทราบเหมือนกันครับ
ได้แล้วครับ อ. ขอบคุณครับ@@KruApiwat
ถ้าแยกชื่อ กับนามสกุล จะต้องแก้คำสั่งอย่างไรเพื่อเช็คซ้ำครับ
ถ้าเราจะเอาบรรทัดล่างไว้ แล้วลบบรรทัดบนออก ในกรณีที่ผู้กรอกข้อมูลครั้งแรกกรอกข้อมูลผิดและเข้ามากรอกครั้งที่สองเพื่อแก้ไข. เราจะใช้คำสั่งสคริปอย่างไรดีครับอาจารย์
เราจะรู้ได้อย่างไรครับว่า เขากรอกครั้งที่ 1 หรือครั้งที่ 2 ผิด
ก่อนกรอกข้อมูลจะแจ้งกับผู้กรอกไว้ก่อนหน่ะครับอาจารย์. ว่าถ้ากรอกข้อมูลผิดมา หรือต้องการแก้ไขข้อมูลเพิ่มเติม สามารถกรอกใหม่ได้โดยจะใช้ข้อมูลล่าสุดเป็นคำตอบ. ประมาณนี้ครับอาจารย์
มันขึ้น Error แบบนี้ครับ TypeError: Cannot read property 'asTextItem' of undefined
myFunction แก้ยังไงครับ
ลองดูใหม่แล้วครับมันได้เฉพาะที่เป็น index[0] นอกนั้นมันไม่ได้ครับ
ลองใส่ 0 ก็ไม่ผ่านครับ
กด Alt 5 6 แล้วแต่ไม่มีเครื่องหมายแบบท่านขึ้นค่ะ
Alt 96
@@patcharapanjatturat3971 copy ตัวนี้ไปวางก็ได้ครับ `
ควรจะตรวจสอบจากเลขบัตรประชาชน นะครับเพราะชื่อคนเราซ้ำกันได้ครับอาจารย์
อันนั้นเรื่องของคนเอาไปประยุกต์ใช้ต่อครับ ผมทำตัวอย่างแนวคิดให้ดูเฉยๆครับ 555
ผมก็เอามาประยุกต์ให้กรอกรหัสประจำตัวนักเรียน ขอบคุณ อ มากครับ
เป็นคลิปสอนที่มีประโยชน์มากๆเลยครับ ขอทราบแหล่งที่มาของข้อมูลหน่อยได้ไหมครับ
เครดิตที่มาท้ายคลิปไงครับ
วิธีให้อีเมลกรอกได้ครั้งเดียว ทำยังไงคะ?
อันนี้ไม่ทราบเหมือนกันครับ
@@KruApiwat ขอบคุณมากค่ะ
ทำไมแหล่งกิจกรรมผม ไม่มี "จากฟอร์ม"
อย่ามาสอนผมไม่รู้เรื่องครับ
สำหรับใครที่ไม่ได้ลองดูครับ
ar sheetId = "xxxxxx";
var formId = "xxxxxx";
function myFunction() {
var ss = SpreadsheetApp.openById(sheetId);
var sheet = ss.getSheetByName("การตอบแบบฟอร์ม 1");
var form = FormApp.openById(formId);
var data = [...new Set(sheet.getDataRange().getDisplayValues().map(row => row[1]))].join('|');
var item = form.getItems(FormApp.ItemType.TEXT)[0].asTextItem(); // Assuming the item is a text item
var pattern = `(${data})`;
var textval = FormApp.createTextValidation().setHelpText("คุณกรอกรหัสซ้ำ!!").requireTextDoesNotMatchPattern(pattern).build();
item.setValidation(textval);
}
Syntax error: SyntaxError: Unexpected token '.' line: 9 file: Code.gs จะแก้ไงครับ
ขอบคุณมากครับ