Google Sheets từ lâu đã là một công cụ bảng tính mạnh mẽ, đáp ứng hầu hết các nhu cầu cơ bản của người dùng. Tuy nhiên, khi đối mặt với những tác vụ lặp đi lặp lại hay các yêu cầu tùy chỉnh phức tạp, khả năng của Sheets thường bị giới hạn. Đây chính là lúc Google Apps Script phát huy sức mạnh vượt trội, biến Google Sheets từ một bảng tính thông thường thành một nền tảng tự động hóa và tùy chỉnh không giới hạn. Trong nhiều năm sử dụng Sheets, tôi đã bỏ qua tính năng này, nhưng một khi bắt đầu khám phá, tôi nhận ra Apps Script có thể tự động hóa những công việc nhỏ nhặt mà trước đây tôi không hề nhận ra chúng đang làm chậm mình lại.
Tự động hóa các tác vụ lặp đi lặp lại
Nếu bạn cảm thấy mệt mỏi khi phải thực hiện lặp đi lặp lại các tác vụ trong Google Sheets, dù là chèn ngày tháng, làm sạch văn bản, áp dụng định dạng hay xuất dữ liệu, Google Apps Script chính là giải pháp hữu hiệu. Nó giúp bạn tự động hóa những công việc đó một cách dễ dàng.
Chẳng hạn, 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 bạn cần ngày ở một định dạng cụ thể như yyyy-MM-dd, bạn sẽ phải dùng công thức hoặc định dạng thủ công. Với Apps Script, bạn có thể tạo một hàm (function) để lấy ngày hiện tại, định dạng theo ý muốn, sau đó chèn vào các ô được chọn. Bạn chỉ cần thực hiện việc này một lần và có thể tái sử dụng bất cứ khi nào cần.
Dưới đây là ví dụ về đoạn script để chèn ngày hiện tại:
<span><span>function</span> <span>insertCurrentDate</span>() </span>{ <span>var</span> sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); <span>var</span> selectedCell = sheet.getActiveCell(); <span>var</span> currentDate = <span>new</span> <span>Date</span>(); <span>var</span> formattedDate = Utilities.formatDate(currentDate, Session.getScriptTimeZone(),<span>'yyyy-MM-dd'</span>); <span>selectedCell</span><span>.setValue</span>(<span>formattedDate</span>);}
Trong phần tiếp theo, chúng tôi sẽ hướng dẫn bạn cách chạy đoạn mã này từ trong bảng tính Google Sheets.
Tạo bảng tính tùy chỉnh và công cụ chuyên biệt
Apps Script hỗ trợ bạn tùy chỉnh bảng tính bằng cách cho phép bạn tạo ra các công cụ chuyên biệt, tối ưu hóa quy trình làm việc. Bạn có thể chèn một nút bấm để áp dụng định dạng, thực hiện các phép tính nâng cao, hoặc tạo các bảng điều khiển (dashboard) giúp bạn phân tích dữ liệu dễ dàng hơn. Những khả năng này vượt xa những gì Google Sheets có thể làm được một mình.
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 để chạy hàm insertCurrentDate ngay từ trong bảng tính. Dưới đây là đoạn script thực hiện điều đó (hãy chèn nó phía trên hàm insertCurrentDate
):
<span><span>function</span> <span>onOpen</span>()</span>{ <span>var</span> ui = SpreadsheetApp.getUi(); ui.createMenu('My Menu').addItem('<span>Insert</span> <span>Current</span> <span>Date</span><span>', '</span>insertCurrentDate<span>').addToUi();</span>}
Sau khi chạy đoạn mã này trong Apps Script và làm mới Google Sheets, bạn sẽ thấy mục My Menu xuất hiện trên thanh menu trên cùng. Giờ đây, bạn có thể chèn ngày hiện tại vào ô đã chọn chỉ bằng cách nhấp vào My Menu > Insert Current Date.
Menu tùy chỉnh "My Menu" được tạo bằng Google Apps Script trong Google Sheets, hiển thị tùy chọn "Insert Current Date" để tự động chèn ngày.
Xây dựng các hàm tùy chỉnh cho phép tính phức tạp
Google Sheets không phải lúc nào cũng có sẵn các hàm mà bạn cần để thực hiện các phép tính cụ thể. Trong những trường hợp này, việc tạo hàm riêng bằng Google Apps Script, chèn phép tính vào đó và sử dụng nó trong bảng tính (giống như bất kỳ hàm nào khác) là giải pháp tối ưu. Điều này cũng có nghĩa là bạn không cần lặp lại các phép tính phức tạp nhiều lần trong bảng tính, 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 dưới đây, nó nhận một ngày đầu vào và kiểm tra xem đã bao nhiêu ngày trôi qua kể từ ngày hiện tại để xác định ngày đáo hạn:
<span><span>function</span> <span>CHECKDUEDATE</span>(<span>inputDate</span>) </span>{ <span>var</span> today = <span>new</span> <span>Date</span>(); <span>var</span> timeDiff = today - inputDate; <span>var</span> daysDiff = <span>Math</span>.floor(timeDiff / (<span>1000</span> * <span>60</span> * <span>60</span> * <span>24</span>));<p> if (daysDiff <span>return</span> <span>"Overdue!"</span> } <span>else</span> <span>if</span> (daysDiff > <span>0</span>) { <span>return</span> <span>"Due in "</span> + daysDiff.toString() + <span>" days!"</span> } <span>else</span> { <span>return</span> <span>"Due today!"</span> }}</p>
Tùy thuộc vào ngày được nhập, hàm này sẽ trả về “Quá hạn!” nếu số ngày chênh lệch nhỏ hơn 0, “Còn lại X ngày!” nếu lớn hơn 0, hoặc “Đến hạn hôm nay!” nếu bằng 0.
Điểm đặc biệ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 (time-based trigger) để chạy hàm vào một thời điểm cụ thể (ví dụ: nửa đêm) nhằm tự động cập nhật ngày đáo hạn. Nó thậm chí có thể được sử dụng cho định dạng có điều kiện – các khả năng là vô hạn.
Tích hợp Google Apps Script với các dịch vụ Google khác
Apps Script cho phép bạn tích hợp bảng tính của mình với các dịch vụ Google khác, bao gồm Gmail, Google Drive và Google Docs. Khả năng này giúp bạn xây dựng các quy trình làm việc toàn diện, xuyên suốt 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 nội dung văn bản từ một tài liệu Google Docs và chèn vào ô A1 trong Google Sheets:
<span><span>function</span> <span>getBodyTextFromGoogleDoc</span>() </span>{ <span>const</span> doc = DocumentApp.openById(<span>"insert Google Docs ID here"</span>); <span>const</span> bodyText = doc.getBody().getText();<p> <span>const</span> sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); <span>const</span> targetRange = sheet.getRange(<span>"A1"</span>);</p><p> <span>targetRange</span><span>.setValue</span>(<span>bodyText</span>);}</p>
Bạn hãy nhớ thay thế đoạn “insert Google Docs ID here” trong 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 (không xóa dấu ngoặc kép).
Apps Script: Không khó như bạn nghĩ
Nếu bạn có một chút kiến thức lập trình cơ bản, Apps Script sẽ đặc biệt dễ học. Điều này càng đúng hơn nếu bạn đã quen thuộc với JavaScript, vì đó là ngôn ngữ chính được nền tảng này sử dụng. Bạn có thể bắt đầu chậm rãi với các tự động hóa và tác vụ đơn giản (các phép tính cơ bản, gửi email), sau đó dần dần nâng cao kỹ năng.
Giao diện trình chỉnh sửa Google Apps Script IDE, nơi người dùng viết và quản lý các đoạn mã tự động hóa cho Google Workspace.
Ngay cả khi bạn chưa từng viết code trong đời, Apps Script vẫn có thể là một cách tuyệt vời để bắt đầu học lập trình. Vì bạn chủ yếu sử dụng nó để tự động hóa các tác vụ trong Google Sheets, bạn sẽ thấy kết quả ngay lập tức, điều này tạo động lực rất lớn. Tuy nhiên, bạn vẫn cần học các khái niệm lập trình cơ bản (ví dụ: biến, vòng lặp và hàm). Google có các hướng dẫn tuyệt vời, và Apps Script cũng có một cộng đồng hỗ trợ lớn mạnh.
Hơn nữa, bạn không cần thiết lập phức tạp, vì Apps Script chạy trên đám mây. Bạn không cần cài đặt thêm phần mềm hay thư viện nào.
Apps Script là một trong nhiều tính năng mạnh mẽ của Google Workspace mà bạn có thể đã bỏ lỡ và rất đáng để trải nghiệm. Điều thú vị về Apps Script là bạn cũng có thể sử dụng nó trong các ứng dụng Google Workspace khác như Google Docs và Google Slides, mở ra vô số khả năng tùy biến và tự động hóa.
Google Apps Script không chỉ là một tiện ích bổ sung cho Google Sheets mà còn là một công cụ mạnh mẽ giúp bạn nâng tầm khả năng làm việc với toàn bộ hệ sinh thái Google Workspace. Từ tự động hóa các tác vụ đơn giản đến xây dựng các giải pháp phức tạp và tích hợp đa ứng dụng, Apps Script mang lại hiệu suất làm việc vượt trội. Đừng ngần ngại thử Apps Script ngay hôm nay để nâng cao hiệu suất làm việc của bạn!