ChatGPT กับ Google Sheets เขียนสูตรและ Apps Script

Google Sheets เป็นเครื่องมือยอดนิยมในการจัดการข้อมูล
แต่ถ้าอยากให้ทำ “อะไรที่มากกว่าแค่ใส่ตัวเลข” — อย่างเช่น…

  • กดปุ่มแล้วส่งอีเมลอัตโนมัติ
  • เขียนสูตรซับซ้อนแบบ ArrayFormula
  • ดึงข้อมูลจาก Google Calendar หรือ Sheet อื่น
  • สร้างเมนูพิเศษ หรือระบบอัตโนมัติแบบ Custom

ChatGPT สามารถช่วยคุณเขียนทั้งสูตรและ Apps Script ได้ครบ
พร้อมคำอธิบายทีละขั้นสำหรับมือใหม่ด้วย


1. ขอสูตร Google Sheets แบบซับซ้อน

Prompt ที่แนะนำ:

“ช่วยเขียนสูตรเพื่อรวมยอดคอลัมน์ B โดยกรองเฉพาะรายการที่สถานะในคอลัมน์ A เป็น ‘จ่ายแล้ว’ และเดือนในคอลัมน์ C เป็นเมษายน”

ChatGPT จะตอบ:

=SUMIFS(B:B, A:A, "จ่ายแล้ว", TEXT(C:C, "mmmm"), "April")

✅ หรือปรับใช้ ARRAYFORMULA() ถ้าต้องการให้ทำงานกับข้อมูลแบบไดนามิก


2. เขียน Apps Script เพื่อทำ Automation

Prompt ที่แนะนำ:

“ช่วยเขียน Google Apps Script สำหรับส่งอีเมลอัตโนมัติเมื่อคอลัมน์ D มีคำว่า ‘แจ้งเตือน’”

ChatGPT จะให้:

JavaScript
function sendEmailAlert() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const data = sheet.getRange("D2:D").getValues();
  
  data.forEach((row, i) => {
    if (row[0] === "แจ้งเตือน") {
      MailApp.sendEmail("[email protected]", "แจ้งเตือนจาก Google Sheet", "แถวที่ " + (i+2) + " มีการแจ้งเตือน");
    }
  });
}

✅ พร้อมคำอธิบายว่าใช้ MailApp, getRange(), และ forEach() อย่างไร


3. สร้างเมนูแบบ Custom ใน Google Sheets

Prompt ที่แนะนำ:

“ช่วยเขียน Apps Script เพื่อเพิ่มเมนู ‘จัดการข้อมูล’ และเมนูย่อย ‘ส่งอีเมล’, ‘รีเซ็ตฟอร์ม’”

ChatGPT จะให้:

JavaScript
function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu('จัดการข้อมูล')
    .addItem('ส่งอีเมล', 'sendEmail')
    .addItem('รีเซ็ตฟอร์ม', 'resetForm')
    .addToUi();
}

✅ พร้อมตัวอย่างฟังก์ชัน sendEmail() และ resetForm() เพิ่มเติม


4. ดึงข้อมูลจาก Sheet อื่น / Google Calendar / External API

Prompt ที่แนะนำ:

“ช่วยเขียน Apps Script เพื่อดึงข้อมูลจากชีตชื่อ ‘สรุปยอดขาย’ มาใส่ในชีตปัจจุบัน”

ChatGPT จะให้:

JavaScript
function importFromAnotherSheet() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const source = ss.getSheetByName('สรุปยอดขาย');
  const target = ss.getActiveSheet();
  const data = source.getRange('A1:D10').getValues();
  target.getRange('A1:D10').setValues(data);
}

✅ พร้อมอธิบายว่าโค้ดนี้เหมาะกับการคัดลอกข้อมูลระหว่างชีตในไฟล์เดียวกัน


5. สร้างระบบกรอกข้อมูล / สรุปอัตโนมัติ ด้วย Script

Prompt ที่แนะนำ:

“ช่วยเขียนสคริปต์ที่เมื่อผู้ใช้กรอกข้อมูลในแถวใหม่ จะสรุปยอดรวมในคอลัมน์ถัดไปให้อัตโนมัติ”

ChatGPT จะตอบว่าให้ใช้ onEdit() พร้อมตัวอย่าง:

JavaScript
function onEdit(e) {
  const sheet = e.source.getActiveSheet();
  const range = e.range;

  if (range.getColumn() === 3) { // ถ้ากรอกคอลัมน์ C
    const row = range.getRow();
    const val1 = sheet.getRange(row, 2).getValue(); // คอลัมน์ B
    const val2 = range.getValue(); // คอลัมน์ C
    sheet.getRange(row, 4).setValue(val1 + val2); // ใส่ผลรวมในคอลัมน์ D
  }
}

6. ขอคำอธิบาย Script ที่มีอยู่แล้ว

Prompt ที่แนะนำ:

“ช่วยอธิบายว่าโค้ด Apps Script นี้ทำอะไร และสามารถปรับปรุงให้ดีขึ้นได้อย่างไร”
(แนบโค้ด)

ChatGPT จะ:

  • วิเคราะห์ Flow ของสคริปต์
  • ชี้จุดที่ใช้ซ้ำ หรือควรแยกเป็นฟังก์ชัน
  • แนะนำวิธีใช้ Logger.log(), try-catch, หรือการเพิ่ม Efficiency

จุดเด่นของการใช้ ChatGPT กับ Google Sheets

  • ช่วยเขียนสูตร / Script ที่ใช้งานได้จริง
  • ปรับ logic ได้ตามบริบทการใช้งาน
  • เหมาะทั้งมือใหม่และผู้มีประสบการณ์
  • ทำ Automation ได้โดยไม่ต้องเขียนโค้ดเองทั้งหมด

หมายเหตุ

Apps Script ที่เขียนควรทดสอบในไฟล์สำรองก่อนใช้งานจริง
หากมีการเข้าถึงข้อมูลภายนอก เช่น Calendar หรือ Gmail จะต้องให้สิทธิ์การเข้าถึง

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