Google Sheets có thể làm được rất nhiều việc - nhưng với Apps Script, nó làm được tất cả. Nhiều người đã sử dụng Sheets nhiều năm mà không hề động đến tính năng này. Sau khi tìm hiểu, bạn sẽ bắt đầu học được cách tự động hóa những công việc mà bạn thậm chí không nhận ra là đang làm mình chậm lại.
Tự động hóa các tác vụ nhàm chán
Nếu bạn cảm thấy mệt mỏi vì phải lặp đi lặp lại cùng một tác vụ trong Google Sheets, cho dù đó là chèn ngày tháng, dọn dẹp văn bản, áp dụng định dạng hay xuất dữ liệu, Apps Script có thể giúp bạn tự động hóa việc đó.
Ví dụ, bạn có thể dễ dàng chèn ngày hiện tại vào Google Sheets bằng cách nhấn Ctrl + ; trên Windows hoặc Cmd + ; trên Mac. Nhưng nếu cần ngày hiện tại ở một định dạng cụ thể như yyyy-MM-dd, bạn phải sử dụng công thức hoặc thực hiện một số định dạng thủ công. Với Apps Script, bạn có thể tạo một hàm lấy ngày hiện tại, định dạng theo ý muốn và sau đó chèn vào các ô đã chọn.
Bạn chỉ cần thực hiện việc này một lần và có thể sử dụng lại ở bất cứ đâu mình cần. Sau đây là ví dụ về giao diện của script:
function insertCurrentDate() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var selectedCell = sheet.getActiveCell();
var currentDate = new Date();
var formattedDate = Utilities.formatDate(currentDate, Session.getScriptTimeZone(),'yyyy-MM-dd');
selectedCell.setValue(formattedDate);
}
Bài viết sẽ hướng dẫn bạn cách chạy đoạn code trên từ bên trong bảng tính trong phần tiếp theo.
Tạo bảng tính tùy chỉnh
Một cách Apps Script giúp bạn tùy chỉnh bảng tính là cho phép bạn tạo các công cụ chuyên dụng giúp hợp lý hóa quy trình làm việc. Ví dụ, bạn có thể chèn một nút áp dụng định dạng hoặc thực hiện các phép tính nâng cao, hoặc tạo bảng điều khiển giúp bạn dễ dàng phân tích dữ liệu. Những khả năng này vượt xa bất kỳ khả năng nào mà Google Sheets có thể tự thực hiện.
Tiếp tục với ví dụ từ phần trước, chúng ta có thể thêm một mục menu tùy chỉnh cho phép chạy hàm từ bên trong bảng tính. Dưới đây là script thực hiện việc này (chèn phía trên hàm ở phần trước):
function onOpen(){
var ui = SpreadsheetApp.getUi();
ui.createMenu('My Menu').addItem('Insert Current Date', 'insertCurrentDate').addToUi();
}
Sau khi chạy code này trong Apps Script và refresh Google Sheets, bạn sẽ thấy My Menu xuất hiện trong menu trên cùng. Bây giờ, bạn có thể chèn ngày hiện tại vào ô đã chọn bằng cách nhấp vào My Menu > Insert Current Date.

Thực hiện các phép tính cụ thể thông qua những hàm tùy chỉnh
Google Sheets không phải lúc nào cũng có các hàm bạn cần để thực hiện những phép tính cụ thể. Trong những trường hợp như thế này, cách tốt nhất là tạo hàm riêng bằng Apps Script, chèn phép tính vào đó và sử dụng nó trong trang tính (giống như bất kỳ hàm nào khác). Điều này cũng có nghĩa là bạn không phải lặp lại các phép tính phức tạp trong suốt script, giúp bảng tính của bạn gọn gàng và dễ đọc hơn.
Hãy xem xét hàm bên dưới, hàm này chấp nhận một ngày và kiểm tra số ngày đã trôi qua kể từ ngày hiện tại (tương tự như tính toán chênh lệch giữa hai ngày) để xác định ngày đến hạn:
function CHECKDUEDATE(inputDate) {
var today = new Date();
var timeDiff = today - inputDate;
var daysDiff = Math.floor(timeDiff / (1000 * 60 * 60 * 24));
if (daysDiff < 0){
return "Overdue!"
} else if (daysDiff > 0) {
return "Due in " + daysDiff.toString() + " days!"
} else {
return "Due today!"
}
}
Tùy thuộc vào ngày nhập, nó sẽ cho biết liệu đã quá hạn hay chưa, nếu chênh lệch ngày nhỏ hơn 0, còn lại bao nhiêu ngày nếu lớn hơn 0, hoặc hạn nộp vào ngày đó nếu bằng 0.
Ưu điểm lớn nhất của Apps Script là bạn có thể tạo một trình kích hoạt dựa trên thời gian để chạy hàm tại một thời điểm cụ thể (ví dụ, nửa đêm) để cập nhật động ngày đến hạn. Nó thậm chí có thể được sử dụng cho định dạng có điều kiện - có rất nhiều khả năng.
Bạn có thể sử dụng Apps Script với các dịch vụ khác của Google
Apps Script cho phép bạn tích hợp bảng tính với các dịch vụ khác của Google, bao gồm Gmail, Google Drive và Google Docs. Khả năng này cho phép bạn xây dựng các quy trình làm việc toàn diện, trải rộng trên nhiều công cụ trong hệ sinh thái Google.
Dưới đây là một ví dụ về script trích xuất văn bản nội dung từ tài liệu Google Docs và chèn vào ô A1:
function getBodyTextFromGoogleDoc() {
const doc = DocumentApp.openById("insert Google Docs ID here");
const bodyText = doc.getBody().getText();
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const targetRange = sheet.getRange("A1");
targetRange.setValue(bodyText);
}
Hãy nhớ thay thế "insert Google Docs ID here" ở dòng thứ hai bằng ID của tài liệu Google Docs mà bạn muốn lấy nội dung chính (không bỏ dấu ngoặc đơn).