5 ฟังก์ชันสคริปต์ Google ชีตที่คุณต้องรู้
Google ชีต(Google Sheets)เป็นเครื่องมือสเปรดชีตบนระบบคลาวด์ที่มีประสิทธิภาพ ซึ่งช่วยให้คุณทำเกือบทุกอย่างที่คุณสามารถทำได้ในMicrosoft Excel (Microsoft Excel)แต่พลังที่แท้จริงของGoogle ชีต(Google Sheets)คือ คุณลักษณะ Google Scriptingที่มาพร้อมกับมัน
การเขียนสคริปต์ ของ Google Apps(Google Apps)เป็นเครื่องมือสร้างสคริปต์พื้นหลังที่ทำงานไม่เฉพาะใน Google ชีต(in Google Sheets)แต่ยังรวมถึง Google เอกสาร, Gmail, Google Analytics และ บริการระบบคลาวด์ อื่นๆ ของ Google(Google)แทบทุก บริการ ช่วยให้คุณสามารถทำให้แต่ละแอปเป็นแบบอัตโนมัติและรวมแต่ละแอปเหล่านั้นเข้าด้วยกัน
ในบทความนี้ คุณจะได้เรียนรู้วิธีเริ่มต้น ใช้งานสคริปต์ Google Appsการสร้างสคริปต์พื้นฐานในGoogle ชีต(Google Sheets)เพื่ออ่านและเขียนข้อมูลเซลล์ และฟังก์ชันขั้นสูงของสคริปต์Google ชีต ที่มีประสิทธิภาพสูงสุด(Google Sheets)
วิธีสร้างสคริปต์ Google Apps(How to Create a Google Apps Script)
คุณสามารถเริ่มต้นได้ทันทีโดยสร้างสคริปต์Google Apps ตัวแรกจากภายใน (Google Apps)Google ชี(Google Sheets)ต
ในการดำเนินการนี้ ให้เลือกเครื่องมือ(Tools)จากเมนู จากนั้นเลือกScript Editor(Script Editor)
ซึ่งจะเปิดหน้าต่างตัวแก้ไขสคริปต์และตั้งค่าเริ่มต้นเป็นฟังก์ชันที่เรียกว่าmyfunction( ) ที่นี่คุณสามารถสร้างและทดสอบGoogle Script ของ คุณได้
ในการทดลองนี้ ให้ลองสร้าง ฟังก์ชันสคริปต์ ของ Google ชีต(Google Sheets)ที่จะอ่านข้อมูลจากเซลล์หนึ่ง คำนวณจากเซลล์นั้น และส่งออกปริมาณข้อมูลไปยังอีกเซลล์หนึ่ง
ฟังก์ชันเพื่อรับข้อมูลจากเซลล์คือฟังก์ชันgetRange()และgetValue() คุณสามารถระบุเซลล์ตามแถวและคอลัมน์ ดังนั้นหากคุณมีค่าในแถวที่ 2 และคอลัมน์ที่ 1 (คอลัมน์ A) ส่วนแรกของสคริปต์ของคุณจะมีลักษณะดังนี้:
function myFunction() { var sheet = SpreadsheetApp.getActiveSheet(); var row = 2; var col = 1; var data = sheet.getRange(row, col).getValue(); }
ซึ่งเก็บค่าจากเซลล์นั้นไว้ในตัวแปรข้อมูล (data)คุณสามารถคำนวณข้อมูล แล้วเขียนข้อมูลนั้นไปยังเซลล์อื่นได้ ดังนั้นส่วนสุดท้ายของฟังก์ชันนี้จะเป็น:
var results = data * 100; sheet.getRange(row, col+1).setValue(results); }
เมื่อคุณเขียนฟังก์ชันเสร็จแล้ว ให้เลือกไอคอนดิสก์เพื่อบันทึก
ครั้งแรกที่คุณเรียกใช้ ฟังก์ชันสคริปต์ Google ชีต(Google Sheets) ใหม่ เช่นนี้ (โดยการเลือกไอคอนเรียกใช้) คุณจะต้องให้การอนุญาต(Authorization)สำหรับสคริปต์เพื่อทำงานในบัญชี Google(Google Account)ของคุณ
ให้สิทธิ์เพื่อดำเนินการต่อ เมื่อสคริปต์ของคุณทำงาน คุณจะเห็นว่าสคริปต์นั้นเขียนผลการคำนวณไปยังเซลล์เป้าหมาย
เมื่อคุณรู้วิธีเขียนฟังก์ชันสคริปต์พื้นฐานของ Google Apps(Google Apps)แล้ว มาดูฟังก์ชันขั้นสูงเพิ่มเติมกันบ้าง
ใช้ getValues เพื่อโหลดอาร์เรย์(Use getValues To Load Arrays)
คุณสามารถใช้แนวคิดในการคำนวณข้อมูลในสเปรดชีตด้วยการสร้างสคริปต์ขึ้นอีกระดับโดยใช้อาร์เรย์ หากคุณโหลดตัวแปรใน สคริปต์ Google Appsโดยใช้ getValues ตัวแปรนั้นจะเป็นอาร์เรย์ที่สามารถโหลดค่าได้หลายค่าจากชีต
function myFunction() { var sheet = SpreadsheetApp.getActiveSheet(); var data = sheet.getDataRange().getValues();
ตัวแปรข้อมูลเป็นอาร์เรย์หลายมิติที่เก็บข้อมูลทั้งหมดจากชีต ในการคำนวณข้อมูล คุณใช้for loop ตัวนับของลูป for จะทำงานในแต่ละแถว และคอลัมน์จะคงที่ตามคอลัมน์ที่คุณต้องการดึงข้อมูล
ในสเปรดชีตตัวอย่างของเรา คุณสามารถคำนวณข้อมูลสามแถวได้ดังนี้
for (var i = 1; i < data.length; i++) { var result = data[i][0] * 100; sheet.getRange(i+1, 2).setValue(result); } }
บันทึก(Save)และเรียกใช้สคริปต์นี้เหมือนกับที่คุณทำด้านบน คุณจะเห็นว่าผลลัพธ์ทั้งหมดอยู่ในคอลัมน์ 2 ในสเปรดชีตของคุณ
คุณจะสังเกตเห็นว่าการอ้างอิงเซลล์และแถวในตัวแปรอาร์เรย์นั้นแตกต่างจากฟังก์ชัน getRange
data[i][0]หมายถึงมิติอาร์เรย์ที่มิติแรกคือแถวและส่วนที่สองคือคอลัมน์ ทั้งสองสิ่งนี้เริ่มต้นที่ศูนย์
getRange(i+1, 2)หมายถึงแถวที่สองเมื่อ i=1 (เนื่องจากแถวที่ 1 เป็นส่วนหัว) และ 2 คือคอลัมน์ที่สองที่เก็บผลลัพธ์
ใช้ appendRow เพื่อเขียนผลลัพธ์(Use appendRow To Write Results)
ถ้าคุณมีสเปรดชีตที่คุณต้องการเขียนข้อมูลลงในแถวใหม่แทนที่จะเป็นคอลัมน์ใหม่
ซึ่งทำได้ง่ายด้วยฟังก์ชันappendRow ฟังก์ชันนี้จะไม่รบกวนข้อมูลที่มีอยู่ในแผ่นงาน มันจะผนวกแถวใหม่ต่อท้ายแผ่นงานที่มีอยู่
ตัวอย่างเช่น สร้างฟังก์ชันที่จะนับตั้งแต่ 1 ถึง 10 และแสดงตัวนับที่มีทวีคูณของ 2 ในคอลัมน์ ตัว นับ(Counter)
ฟังก์ชันนี้จะมีลักษณะดังนี้:
function myFunction() { var sheet = SpreadsheetApp.getActiveSheet(); for (var i = 1; i<11; i++) { var result = i * 2; sheet.appendRow([i,result]); } }
นี่คือผลลัพธ์เมื่อคุณเรียกใช้ฟังก์ชันนี้
ประมวลผลฟีด RSS ด้วย URLFetchApp(Process RSS Feeds With URLFetchApp)
คุณสามารถรวมฟังก์ชันสคริปต์ของ Google ชีต ก่อนหน้าและ (Google Sheets)URLFetchAppเพื่อดึง ฟีด RSSจากเว็บไซต์ใดๆ และเขียนแถวลงในสเปรดชีตสำหรับทุกบทความที่เพิ่งเผยแพร่ไปยังเว็บไซต์นั้น
นี่เป็น วิธีการ DIYเพื่อสร้างสเปรดชีตโปรแกรมอ่านฟีดRSS ของคุณเอง!(RSS)
สคริปต์ในการทำเช่นนี้ก็ไม่ซับซ้อนเกินไปเช่นกัน
function myFunction() { var sheet = SpreadsheetApp.getActiveSheet(); var item, date, title, link, desc; var txt = UrlFetchApp.fetch("https://www.topsecretwriters.com/rss").getContentText(); var doc = Xml.parse(txt, false); title = doc.getElement().getElement("channel").getElement("title").getText(); var items = doc.getElement().getElement("channel").getElements("item"); // Parsing single items in the RSS Feed for (var i in items) { item = items[i]; title = item.getElement("title").getText(); link = item.getElement("link").getText(); date = item.getElement("pubDate").getText(); desc = item.getElement("description").getText(); sheet.appendRow([title,link,date,desc]); } }
อย่างที่คุณเห็นXml.parseจะดึงแต่ละรายการออกจาก ฟีด RSSและแยกแต่ละบรรทัดออกเป็นชื่อ ลิงก์ วันที่ และคำอธิบาย
เมื่อใช้ ฟังก์ชัน appendRowคุณสามารถใส่รายการเหล่านี้ลงในคอลัมน์ที่เหมาะสมสำหรับทุกรายการใน ฟี ดRSS
ผลลัพธ์ในชีตของคุณจะมีลักษณะดังนี้:
แทนที่จะฝังURL ของ ฟีดRSSลงในสคริปต์ คุณสามารถมีฟิลด์ในชีตของคุณด้วยURLจากนั้นมีหลายชีต – หนึ่งฟิลด์สำหรับทุกเว็บไซต์ที่คุณต้องการตรวจสอบ
(Concatenate Strings)เชื่อม ต่อสตริงและเพิ่ม(Add)Carriage Return
คุณสามารถใช้ สเปรดชีต RSSได้อีกขั้นด้วยการเพิ่มฟังก์ชันการจัดการข้อความ จากนั้นใช้ฟังก์ชันอีเมลเพื่อส่งอีเมลพร้อมสรุปโพสต์ใหม่ทั้งหมดใน ฟี ดRSS ของไซต์(RSS)
ในการดำเนินการนี้ ภายใต้สคริปต์ที่คุณสร้างในส่วนก่อนหน้า คุณจะต้องเพิ่มสคริปต์ที่จะดึงข้อมูลทั้งหมดในสเปรดชีต
คุณจะต้องสร้างหัวเรื่องและเนื้อหาข้อความอีเมลโดยแยกวิเคราะห์ข้อมูลทั้งหมดจากอาร์เรย์ "รายการ" เดียวกันกับที่คุณใช้ในการเขียน ข้อมูล RSSลงในสเปรดชีต
เมื่อต้องการทำเช่นนี้ ให้เริ่มต้นหัวเรื่องและข้อความโดยวางบรรทัดต่อไปนี้ก่อน "รายการ" For loop
var subject = ‘Latest 10 articles published at mysite.com’
var message = ‘’
จากนั้น ที่ส่วนท้ายของ "items" for loop (หลังฟังก์ชัน appendRow) ให้เพิ่มบรรทัดต่อไปนี้
message = message + title + '\n' + link + '\n' + date + '\n' + desc + '\n' + '\n \n';
สัญลักษณ์ “+” จะเชื่อมทั้งสี่รายการเข้าด้วยกัน ตามด้วย “ ” สำหรับการขึ้นบรรทัดใหม่หลังแต่ละบรรทัด ในตอนท้ายของแต่ละช่องข้อมูลชื่อเรื่อง คุณจะต้องการขึ้นบรรทัดใหม่สองครั้งสำหรับเนื้อหาอีเมลที่มีรูปแบบสวยงาม
เมื่อแถวทั้งหมดได้รับการประมวลผลแล้ว ตัวแปร "body" จะเก็บสตริงข้อความอีเมลทั้งหมดไว้ ตอนนี้คุณพร้อมที่จะส่งอีเมลแล้ว!
วิธีส่งอีเมลใน Google Apps Script(How To Send Email In Google Apps Script)
ส่วนถัดไปของGoogle Script ของคุณ คือการส่ง "หัวเรื่อง" และ "เนื้อหา" ทางอีเมล การทำเช่นนี้ในGoogle Scriptนั้นง่ายมาก
var emailAddress = [email protected];
MailApp.sendEmail(emailAddress, subject, message);
MailApp เป็นคลาสที่สะดวกมากภายในสคริปต์(MailApp)Google Appsที่ให้คุณเข้าถึงบริการอีเมลของบัญชี Google ของคุณเพื่อส่งหรือรับอีเมล ด้วยเหตุนี้ บรรทัดเดียวที่มีฟังก์ชัน sendEmail ช่วยให้คุณสามารถส่งอีเมล(send any email)ที่มีเพียงที่อยู่อีเมล หัวเรื่อง และเนื้อหาได้
นี่คือสิ่งที่อีเมลผลลัพธ์จะมีลักษณะเช่นนี้
การรวมความสามารถในการดึงข้อมูล RSS(RSS) ของเว็บไซต์ เก็บไว้ในGoogle ชี(Google Sheet)ต และส่งให้ตัวคุณเองพร้อม ลิงก์ URLทำให้สะดวกต่อการติดตามเนื้อหาล่าสุดสำหรับเว็บไซต์ใดๆ
นี่เป็นเพียงตัวอย่างหนึ่งของประสิทธิภาพที่มีอยู่ใน สคริปต์ ของ Google Apps(Google Apps)ในการทำให้การทำงานเป็นอัตโนมัติและผสานรวมบริการระบบคลาวด์ที่หลากหลาย
Related posts
4 วิธีในการแปลง Excel เป็น Google ชีต
Google ชีตกับ Microsoft Excel - อะไรคือความแตกต่าง?
วิธีลบขอบตารางใน Google เอกสาร
Google Docs Chat ช่วยให้คุณทำงานร่วมกันบนเอกสารได้อย่างไร
วิธีใส่ลายน้ำใน Word และ Google Docs
วิธีใช้การวิเคราะห์แบบ What-If ของ Excel
ทำให้ OpenOffice Writer มีลักษณะและฟังก์ชันเหมือน Microsoft Word
เปลี่ยนเป็นการวางแนวแนวนอนใน Google เอกสาร
Microsoft 365 คืออะไร?
วิธีเพิ่มหมายเลขสไลด์ในงานนำเสนอ PowerPoint
วิธีการกู้คืนอีเมลที่ถูกลบใน Office 365
วิธีการเลเยอร์วัตถุในการนำเสนอ PowerPoint
วิธีสร้างเอกสาร PDF ใน Microsoft Office
วิธีลบหน้าใน Microsoft Word
วิธีแก้ไขข้อผิดพลาดที่คั่นหน้าไม่ได้กำหนดไว้ใน Word
วิธีการเปลี่ยนขนาดสไลด์ใน PowerPoint เพื่อการนำเสนอที่ดีขึ้น
วิธีสร้างมาโครหรือสคริปต์ VBA ใน Excel
รับสถิติอีเมล Outlook โดยใช้ StatView
วิธีใช้ฟีเจอร์ Speak Cells ของ Excel
7 ทางเลือกแทน PowerPoint ที่คุณสามารถใช้ได้ออนไลน์