AIDuLieu.comAI Dữ Liệu
Google Sheets và làm việc nhóm

Apps Script nhập môn trong Google Sheets: nhờ AI viết hàm tự tạo và menu riêng

Apps Script cho người mới: nhờ AI viết hàm tự tạo dùng như công thức và menu riêng trong Google Sheets, đọc hiểu mã trước khi chạy, thử trên bản sao an toàn.

Evening at a home desk in Quảng Ninh, a young woman seen from behind jotting in a notebook under a desk lamp, laptop with blank screen, mug of coffee beside her

Apps Script là môi trường viết mã đi kèm Google Sheets, dùng ngôn ngữ JavaScript, mở từ menu Tiện ích mở rộng. Với người mới, hai thứ hữu ích nhất có thể nhờ AI viết là hàm tự tạo, gõ vào ô như một công thức bình thường, và menu riêng, thêm nút bấm chạy một thao tác lặp lại trên vùng đang chọn.

Bạn không cần biết lập trình để bắt đầu, nhưng cần biết đọc đủ để hiểu mã sẽ làm gì trước khi bấm chạy. Bài này đi qua hai ví dụ cụ thể: hàm bỏ dấu tiếng Việt và menu dọn khoảng trắng, cách mô tả cho AI, cách đọc mã nhận về, màn hình cấp quyền và những nguyên tắc an toàn. Việc tự động hoá chạy theo lịch, gộp nhiều tệp, nối nhiều ứng dụng nằm ở các danh mục khác của trang.

Hàm tự tạo và menu riêng: hai việc khác nhau

Hàm tự tạo là một hàm bạn tự định nghĩa rồi gọi trong ô giống SUM hay VLOOKUP. Nó nhận giá trị từ ô hoặc dải ô, tính toán và trả kết quả về đúng ô chứa công thức. Nó không được phép sửa ô khác, không gửi thư, không mở tệp khác. Chính giới hạn đó làm nó an toàn và dễ hiểu: cùng đầu vào thì cùng kết quả, giống mọi công thức.

Menu riêng là một mục mới xuất hiện trên thanh menu của bảng tính, mỗi mục gắn với một hàm trong mã. Khi bấm, hàm chạy với quyền của bạn và có thể sửa dữ liệu trên vùng chọn, thêm trang tính, xoá dòng. Mạnh hơn hàm tự tạo nhiều, và vì vậy cũng cần cẩn trọng hơn nhiều: một lần bấm có thể sửa hàng nghìn ô, không có nút hoàn tác nào chắc chắn lùi được hết.

Quy tắc chọn đơn giản: việc tính ra một giá trị từ dữ liệu có sẵn thì dùng hàm tự tạo; việc thay đổi dữ liệu theo một thao tác lặp lại thì dùng menu riêng. Trước khi viết mã, cũng nên hỏi AI xem việc đó có làm được bằng công thức có sẵn không. Rất nhiều yêu cầu tưởng phải viết mã hoá ra chỉ cần REGEXREPLACE hay ARRAYFORMULA.

Ví dụ một: hàm bỏ dấu tiếng Việt

Bỏ dấu tiếng Việt để tạo mã, so khớp tên, đặt tên tệp là việc hay gặp mà Google Sheets không có hàm sẵn. Đây là ví dụ đẹp cho hàm tự tạo.

  1. Mở bảng tính, vào menu Tiện ích mở rộng, chọn Apps Script. Một thẻ trình soạn mã mở ra, gắn với chính bảng tính này.
  2. Nhờ AI viết, với câu lệnh như: Viết hàm tự tạo cho Google Sheets bằng Apps Script tên BODAU, nhận một chuỗi tiếng Việt, trả về chuỗi không dấu, đổi cả đ thành d. Hàm phải chạy được khi đầu vào là một dải ô. Thêm chú thích để hàm hiện trong gợi ý công thức. Giải thích từng dòng.
  3. AI thường trả về mã dùng phép chuẩn hoá Unicode để tách dấu khỏi chữ gốc, rồi xoá các ký tự dấu, sau cùng thay riêng chữ đ và Đ, vì chữ đ không tách được theo cách này. Nếu đầu vào là dải ô, mã nhận một mảng hai chiều và xử lý từng phần tử.
  4. Xoá đoạn mã mẫu có sẵn trong trình soạn, dán mã nhận được, bấm lưu.
  5. Về bảng tính, gõ vào một ô công thức gọi BODAU với ô chứa tên có dấu. Thử với các chữ khó như Đặng, Nguyễn, Phượng, Hưng Yên, và với ô trống, ô chứa số.
  6. Nếu kết quả đúng, dùng nó như mọi công thức. Nếu ô trống trả về lỗi, đưa lại cho AI kèm thông báo lỗi.

Phần chú thích đặc biệt mà AI thêm vào đầu hàm, có dòng đánh dấu customfunction, giúp hàm hiện trong danh sách gợi ý khi gõ dấu bằng. Tên hàm không được kết thúc bằng dấu gạch dưới, vì Apps Script coi hàm như vậy là hàm nội bộ, không gọi được từ ô.

Giới hạn của hàm tự tạo cần biết trước

Chỉ trả về giá trị. Hàm tự tạo không định dạng ô, không sửa ô bên cạnh, không thêm dòng. Nếu AI viết mã có lệnh ghi vào ô khác bên trong hàm tự tạo, mã sẽ báo lỗi không có quyền khi chạy từ ô. Đó là dấu hiệu việc này cần menu riêng.

Không dùng các dịch vụ cần cấp quyền. Gửi thư, đọc tệp trên Drive, truy cập lịch của bạn đều cần cấp quyền, và hàm tự tạo không được làm. Hàm chỉ nên tính toán trên dữ liệu được truyền vào.

Có giới hạn thời gian chạy. Mỗi lần gọi hàm tự tạo phải xong trong thời gian ngắn, cỡ nửa phút theo tài liệu của Google tại thời điểm viết. Gọi hàm riêng cho hàng nghìn ô thì bảng chậm hẳn; cách tốt hơn là gọi một lần với cả dải và trả về một mảng.

Kết quả có thể được lưu đệm. Google Sheets có thể giữ kết quả cũ nếu đầu vào không đổi. Hàm nên chỉ phụ thuộc vào đầu vào; một hàm đọc ngày giờ hiện tại hay dữ liệu ở nơi khác sẽ không tự cập nhật như bạn nghĩ.

Người khác mở tệp vẫn dùng được. Mã gắn với bảng tính, nên ai có quyền mở tệp đều thấy kết quả của hàm. Người có quyền sửa còn mở được mã. Không viết mật khẩu, mã truy cập hay thông tin nội bộ vào mã.

Ví dụ hai: menu dọn khoảng trắng trên vùng chọn

Dữ liệu dán từ tin nhắn, từ phần mềm khác thường có khoảng trắng đầu cuối, khoảng trắng kép giữa chữ. Một menu riêng với nút dọn khoảng trắng trên vùng đang chọn tiết kiệm nhiều thao tác lặp lại.

  1. Nhờ AI: Viết Apps Script cho Google Sheets tạo menu tên Tiện ích khi mở tệp, có một mục Dọn khoảng trắng. Khi bấm, xoá khoảng trắng đầu cuối và gom khoảng trắng kép trong mọi ô chữ của vùng đang chọn, không đụng ô số, ô ngày, ô có công thức. Giải thích từng dòng.
  2. Đọc mã nhận về và tìm ba thứ: hàm tên onOpen tạo menu, hàm xử lý vùng chọn, và đoạn kiểm để bỏ qua ô có công thức. Nếu không thấy đoạn bỏ qua ô công thức, hỏi lại AI; thiếu nó, menu sẽ ghi đè công thức thành giá trị.
  3. Trước khi chạy lần đầu, tạo bản sao của tệp, hoặc ít nhất đặt tên phiên bản hiện tại trong lịch sử phiên bản.
  4. Dán mã, lưu, tải lại bảng tính. Menu Tiện ích xuất hiện sau vài giây.
  5. Chọn một vùng nhỏ khoảng mười ô có cả chữ, số, công thức, bấm mục Dọn khoảng trắng. Lần đầu sẽ có màn hình cấp quyền.
  6. Kiểm kết quả trên từng loại ô, rồi mới dùng cho vùng lớn.

Mã đọc toàn bộ vùng một lần rồi ghi lại một lần nhanh hơn rất nhiều so với mã đọc và ghi từng ô. Nếu AI viết kiểu từng ô và vùng của bạn lớn, nhờ nó viết lại theo cách đọc ghi cả khối.

Giữ mã gọn gàng để người sau còn dùng được

Mã Apps Script trong bảng tính văn phòng hay rơi vào cảnh: người viết nghỉ việc, không ai biết hàm nào làm gì, không ai dám xoá. Vài thói quen đơn giản tránh được chuyện đó:

  • Mỗi việc một tệp mã riêng trong trình soạn, đặt tên theo việc, ví dụ BoDau và DonKhoangTrang, thay vì dồn tất cả vào tệp mặc định.
  • Đầu mỗi tệp mã có vài dòng chú thích: mã làm gì, dùng ở trang nào, ai thêm, ngày nào, nhờ công cụ AI nào viết và ai đã đọc duyệt.
  • Tên hàm tự tạo viết hoa, ngắn, nói đúng việc, để người gõ công thức đoán được nghĩa.
  • Không chép cùng một đoạn mã vào hàng chục bảng tính khác nhau. Khi cần sửa, bạn sẽ không nhớ hết đã chép đi đâu. Ghi danh sách các tệp đang dùng mã trong một trang ghi chú chung.
  • Khi sửa mã đang chạy tốt, chép bản cũ sang một tệp mã tạm hoặc ghi lại, để quay về nếu bản mới hỏng.
  • Trong trang ghi chú của bảng tính, liệt kê các hàm tự tạo và mục menu riêng, một dòng mô tả cho mỗi thứ, để người dùng bảng không cần mở trình soạn mã.

Những thói quen này nghe như việc của lập trình viên, nhưng thực ra là việc của người giữ bảng. Một hàm bỏ dấu không ai hiểu vẫn chạy tốt cho tới ngày ai đó đổi tên cột hay chép bảng sang tệp mới, và khi ấy vài dòng chú thích tiết kiệm cả buổi dò lại.

Màn hình cấp quyền và nguyên tắc an toàn khi chạy mã

Lần đầu chạy mã cần sửa bảng tính, Google hiện màn hình yêu cầu cấp quyền, thường kèm cảnh báo rằng ứng dụng chưa được Google xác minh. Với mã do chính bạn dán vào bảng tính của mình, cảnh báo này là bình thường, vì Google không xác minh từng đoạn mã cá nhân. Đọc kỹ danh sách quyền: một menu dọn khoảng trắng chỉ cần quyền xem và sửa bảng tính. Nếu danh sách đòi quyền gửi thư, đọc toàn bộ Drive, truy cập danh bạ, mã đang làm nhiều hơn bạn yêu cầu và cần xem lại.

Không bao giờ dán và chạy mã từ người lạ, từ bình luận trên mạng, từ tin nhắn tự xưng là bộ phận kỹ thuật. Mã Apps Script chạy với quyền của bạn, nên một đoạn mã độc có thể đọc tệp, gửi dữ liệu ra ngoài hay xoá dữ liệu dưới tên bạn. Với mã do AI viết, nguy cơ cố ý thấp, nhưng mã có thể sai theo kiểu làm hỏng dữ liệu; đó là lý do luôn thử trên bản sao.

Một thói quen nên có: yêu cầu AI giải thích từng dòng, rồi tự diễn đạt lại bằng lời một câu mã này làm gì, trên vùng nào, có xoá hay ghi đè gì không. Nếu bạn không diễn đạt lại được, chưa chạy. Ghi đoạn mô tả đó vào đầu tệp mã dưới dạng chú thích, kèm ngày và người thêm mã, để người sau mở trình soạn biết mã này có từ đâu. Mã viết sâu hơn, chạy theo lịch, gọi dịch vụ bên ngoài thuộc phạm vi tự động hoá và lập trình, được bàn ở danh mục tự động hoá của trang và ở trang AI Lập Trình.

Câu hỏi thường gặp

Có cần biết JavaScript để dùng Apps Script không?

Không cần viết được, nhưng nên đọc được mức cơ bản: hàm bắt đầu và kết thúc ở đâu, biến chứa gì, dòng nào ghi vào bảng tính. Nhờ AI giải thích từng dòng trong vài đoạn mã đầu tiên là cách học nhanh và đủ cho người không chuyên.

Hàm tự tạo có chạy trên ứng dụng điện thoại không?

Kết quả của hàm tự tạo hiển thị được khi mở tệp trên điện thoại, vì công thức được tính trên máy chủ. Còn menu riêng thường không hiện trên ứng dụng điện thoại; các thao tác qua menu nên làm trên trình duyệt máy tính.

Sao chép tệp có sao chép luôn mã Apps Script không?

Có, khi tạo bản sao của bảng tính, mã gắn với bảng tính được sao theo. Người nhận bản sao sẽ phải tự cấp quyền khi chạy lần đầu. Đây cũng là lý do cần cẩn trọng khi nhận tệp mẫu từ nguồn không rõ: mã có thể đi kèm tệp.

Mã do AI viết báo lỗi thì làm sao?

Sao chép nguyên thông báo lỗi, kể cả số dòng, dán lại cho AI cùng đoạn mã và mô tả bạn đã làm gì trước khi lỗi xảy ra. Đừng tự sửa lung tung nhiều chỗ cùng lúc. Mỗi lần sửa một chỗ, thử lại trên bản sao.

Có nên dùng hàm tự tạo thay cho công thức có sẵn không?

Chỉ khi không có công thức sẵn làm được việc đó một cách gọn gàng. Công thức có sẵn nhanh hơn, ai cũng đọc được, không phụ thuộc vào mã. Hàm tự tạo hợp với những việc như bỏ dấu tiếng Việt, tính theo quy tắc nội bộ phức tạp mà công thức thường quá dài.

Làm sao gỡ mã khỏi bảng tính khi không dùng nữa?

Mở trình soạn Apps Script từ menu Tiện ích mở rộng, xoá đoạn mã hoặc tệp mã không dùng, rồi lưu. Ô đang gọi hàm tự tạo sẽ báo lỗi, cần thay bằng giá trị trước khi xoá. Bạn cũng có thể gỡ quyền đã cấp trong phần quản lý quyền ứng dụng của tài khoản Google.

Cần tư vấn cụ thể cho trường hợp của bạn?

Chúng tôi sẽ liên hệ trong vòng 24 giờ.

Đăng ký tư vấn ngay

Bài viết liên quan

Bạn cần hỗ trợ thêm?

Để lại thông tin, chúng tôi sẽ liên hệ trong 24 giờ.

hoặc
Gọi ngay 0926 138 138