Huong dan nhắc nhở trong google sheets với google script

  • Custom Function là gì?
  • Ví dụ
  • Cài đặt Custom Function
  • Điểm mạnh và hạn chế khi sử dụng Custom Function
  • Điểm mạnh
  • Hạn chế

Khi chúng ta sử dụng Google Sheets, có thể nhận thấy rõ là các hàm được hỗ trợ sẵn (như SUM, IF,…) thi thoảng sẽ không đáp ứng đủ nhu cầu. Các bạn muốn làm XYZ nhưng Google Sheets chỉ hỗ trợ các hàm ABC. Hoặc kể cả khi có hỗ trợ, thì các hàm đó cũng quá phức tạp. Lên Google gõ cách làm, nhưng các trang hướng dẫn lại viết các hàm quá dài và phức tạp. Tuy là có thể copy – paste giải quyết vấn đề tức thời nhưng để vận dụng giải các vấn đề tương tự thì sẽ gặp nhiều trở ngại. Sau này dù có quay lại để xem thì cũng chẳng hiểu gì. Giải quyết những khúc mắc này, custom function ra đời.

Custom Function hiểu nôm na là các hàm được viết ra bởi người dùng, và không nằm trong các hàm cơ bản như SUM, IF, COUNT,… – vốn được hỗ trợ sẵn. Đối với Google Sheets, thì chúng ta sẽ dùng Google Apps Script để viết lên các hàm này. Sau đó, ở bảng tính Google Sheets, gõ cú pháp hàm ra và sử dụng.

Ví dụ

Huong dan nhắc nhở trong google sheets với google script
Hàm lấy ra ô cuối cùng chứa dữ liệu trong cột

Hình trên là ví dụ của 1 hàm tên là LASTVALIDCELL, sử dụng để tìm ô cuối cùng chứa dữ liệu trong 1 cột. Hàm này dĩ nhiên là không được hỗ trợ sẵn trong Google Sheets. Tuy rằng bạn có thể kết hợp nhiều hàm cơ bản khác nhau để cho ra kết quả tương tự, nhưng không phải ai cũng đủ trình độ và kiên nhẫn để tìm hiểu. Thay vào đó, sử dụng 1 custom function như thế này sẽ tiện lợi hơn nhiều. Nhưng để sử dụng được, không phải cứ “=LASTVALIDCELL(…)” là ra đâu. Mà bạn phải “cài đặt” cho nó trước đã.

Cài đặt Custom Function

Như đã giải thích ở trên, Custom Function trong Google Sheets được viết bởi Google Apps Script. Vậy nên trước tiên bạn cần tìm / tự viết phần code ở Google Apps Script. Phần code này bạn có thể tìm ở các nguồn như Google, trên website hocggsheet.com, trong các Addon,…

Ví dụ code:

/**

* Trả về ô cuối cùng - có dữ liệu - trong cột

*

* @param {range} range Cột cần tìm

* @return Ô cuối cùng - có dữ liệu - trong cột

* @customfunction

*/

functionLASTVALIDCELL(range){

  for (vari=range.length-1;i>=0;i--){

    if (range[i]!=""){

      returnrange[i]

    }

  }

}

1. Copy đoạn code mong muốn

2. Từ bảng tính Google Sheets, mở Google Apps Script lên bằng cách: Vào Tool (Công cụ) -> Script Editor

Huong dan nhắc nhở trong google sheets với google script

3. Cửa sổ Google Apps Script mở ra, dán (paste) đoạn code vừa copy vào

Huong dan nhắc nhở trong google sheets với google script

4. Bấm Ctrl + S để lưu lại

Bây giờ bạn có thể tắt Google Apps Script đi, quay trở lại Google Sheets và thử sử dụng hàm LASTVALIDCELL trên bằng cú pháp:

=LASTVALIDCELL(cột_cần_tìm)

Lưu ý: tên các hàm này, bạn có thể viết thường hay viết hoa thì đều được

Điểm mạnh và hạn chế khi sử dụng Custom Function

Điểm mạnh

  • Giải quyết được các nhu cầu vượt quá khỏi các hàm mạc định
  • Rút ngắn thời gian tìm giải pháp giải quyết vấn đề
  • Đơn giản, dễ hiểu, sau này có quay trở lại đọc hàm thì sẽ thuận tiện hơn
  • Thay thể các hàm dài, phức tạp bằng 1 hàm đơn giản

Google Sheets và các ứng dụng đi kèm vốn dĩ được thiết kế để sử dụng cho các doanh nghiệp vừa và nhỏ. Nói cách khác, nó chỉ nên được dùng để giải quyết các bài toán có dữ liệu vừa phải. Do đó, việc sử dụng Google Apps Script và Custom Function sẽ có một vài hạn chế sau đây.

Hạn chế

  • Nhu cầu thì mỗi người một khác nên không phải lúc nào cũng may mắn tìm được 1 custom function được viết sẵn, khớp với nhu cầu của mình
  • Do phải chạy đoạn mã lập trình trong Google Apps Script, nên thời gian hiển thị kết quả thường sẽ mất vài giây
  • Sử dụng Custom Function trên quy mô lớn sẽ có nguy cơ làm file bị lag, chậm hơn bình thường. Quy mô lớn ở đây tức là: dùng 1 hàm cho dải ô lớn, dùng nhiều hàm trong cùng 1 file, hoặc dùng hàm yêu cầu tính toán quá phức tạp
  • Người viết Custom function đôi khi không dự tính hết tất cả trường hợp nên có thể phát sinh lỗi ngoài ý muốn

Với các đặc thù trên, hi vọng bạn có thể cân nhắc sử dụng custom function một cách hiệu quả, tránh lạm dụng không cần thiết.

Xem thêm: Serie các bài viết về Custom Function
Để lại comment bên dưới nếu bạn muốn mình viết 1 custom function bất kì nào đó