Page 1 of 1

google form ให้ตอบแบบสอบถามได้เพียงวันละครั้งเท่านั้น ต่อคน

Posted: Thu Mar 04, 2021 8:04 am
by tsom
google form ทำอย่างไรให้ตอบแบบสอบถามได้เพียงวันละครั้งเท่านั้น ต่อคน
ทำฟอร์มแจ้งยอดนักเรียนมาโรงเรียนตอนเช้าทุกวัน แต่ละห้อง แต่บางคนเผลอตอบหลายครั้ง ทำให้ยอดไม่ถูกต้อง เสียเวลามาลบที่ซ้ำ ขอบคุณครับ

Re: google form ให้ตอบแบบสอบถามได้เพียงวันละครั้งเท่านั้น ต่อคน

Posted: Thu Mar 04, 2021 9:55 am
by Jancha
ผมมีแนวทางครับ แต่อาจไม่ตรงคำถามคือ สร้าง column เพื่อเช็ครายการซ้ำที่ googlesheet ที่บันทึกข้อมูลจาก form สามารถดูสูตรการหาค่าซ้ำได้จากตัวอย่างลิงค์นี้ครับ viewtopic.php?f=8&t=18106 จากนั้นหากนักเรียนอัพเดทเข้ามาซ้ำกี่ครั้งก็ตามก็เขียน apps script ลบการอัพเดทซ้ำครั้งที่ 2 เป็นต้นไปเอาครับ

ตัวอย่าง code google apps script แล้วตั้ง trigger ให้ทำงานเมื่อมีการ submit จาก google form

Code: Select all

var SS = SpreadsheetApp.openById("copy id sheet มาใส่");   //ID Sheet
var SHEET = SS.getSheetByName("copy ชื่อ sheet ที่มีการอัพเดทซ้ำมาใส่");  //Name Sheet
var RANGE = SHEET.getDataRange();

var DELETE_VAL = "ซ้ำครั้งที่ 2";  //Key word ที่ค้นพบแล้วลบแถวนั้นออกทั้งแถว
var COL_TO_SEARCH = 0; // คอลัมน์แรกเริ่ม 0 (Zero is first) เช่นถ้าสร้างสูตรไว้ column A ก็ใส่ 0, B ใส่ 1, C ใส่ 2 เป็นต้น
 
  
function deleteEachRow(){
  
  var rangeVals = RANGE.getValues();    
  //Reverse the 'for' loop.
  for(var i = rangeVals.length-1; i >= 0; i--){
    if(rangeVals[i][COL_TO_SEARCH] === DELETE_VAL){      
      SHEET.deleteRow(i+1); 
    //  Utilities.sleep(1000);  //รอ 1 วินาที
    };
  };
};