Trong Excel xuất xắc Google Sheet, họ đã biết đến những công thức được cung cấp sẵn như tính tổng sum, trung bình average, đk if,… Hôm nay, generalimex.com.vn sẽ chia sẻ đến với chúng ta cách ghi phương pháp này vào trong Google Sheet bằng phầm mềm Script


Các hàm đang sử dụng

Trigger onEdit()setFormula() – ghi phương pháp trong ngoặc vào range phía trước

Ví dụ đối chọi giản

Cho dải ô như hình

Dải ô ví dụ

Chương trình tiếp sau đây sẽ ghi công thức: =sum(B1:G1) vào ô H1


function vidu1() var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet0 = ss.getSheetByName("sheet0"); ss.getRange("H1").setFormula("=sum(B1:G1)");

Như vậy, biện pháp dùng setFormula() là vô cùng 1-1 giản, chỉ việc gõ công thức bạn muốn vào vào ngoặc cùng để trong lốt ngoặc kép “” hoắc dấu nháy ‘ ‘ là được.

Bạn đang xem: Google sheets function list

Ví dụ cải thiện – setFormula kết hợp nối chuỗi

Cũng cùng dải ô trên, mà lại dải ô A1:A6 vẫn được bảo đảm dữ liệu. Tất cả 2 lựa chọn: “Duyệt” hoặc “Không duyệt”

Nhiệm vụ của ta hiện giờ là: mỗi khi chọn “Duyệt”, ô thẳng hàng ở bên cột H đã ghi hàm tính tổng của dải ô bên phía trong ra. Ví dụ, mình lựa chọn “Duyệt” cho ô A6, thì ô H6 sẽ viết hàm tính tổng =sum(B6:G6)

Mỗi khi đổi giá trị cho các ô nghỉ ngơi A1:A6 thì sẽ triển khai những câu lệnh tương ứng. Do vậy, ta sẽ dùng trigger onEdit()


function onEdit() var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet0 = ss.getSheetByName("sheet0"); var activeCell = ss.getActiveCell(); if (activeCell.getValue() == "Duyệt") sheet0.getRange(activeCell.getRow(), 8).setFormula("=sum(B6:G6)");

Chú thích:

activeCell dùng để đưa ô họ đang bấm vàoTrong hàm getRange(), 8 là số sản phẩm công nghệ tự của cột HKết quả

Tuy nhiên thì trường hợp viết như bên trên thì dù ta lựa chọn “Duyệt” làm việc ô như thế nào thì ô mặt cột H cũng chỉ tính mỗi tổng của dải ô B6:G6. Nói cách khác, đoạn code đã thắt chặt và cố định công thức tính tổng.

Xem thêm: Trường Ca Kinh A Di Đà Phật, Trường Ca Kinh A Di Đà (Có Chữ) (Rất Hay) (Www

Dù lựa chọn Duyệt ở đâu thì cột H cũng chỉ tính tổng B6:G6

Bây giờ, vấn đề của ta là phải điều chỉnh làm sao để có thế lôi ra được dải ô tương ứng. Giải pháp chính là kĩ thuật nối chuỗi.


function onEdit() var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet0 = ss.getSheetByName("sheet0"); var activeCell = ss.getActiveCell(); if (activeCell.getValue() == "Duyệt") var activeRange = sheet0.getRange(activeCell.getRow(), 2, 1, 6).getA1Notation(); sheet0.getRange(activeCell.getRow(), 8).setFormula("=sum(" + activeRange + ")");
Kết quả nối chuỗi thành công

Chú thích

activeRange dùng để lấy dải ô phải tính tổnggetA1Notation() trả về công dụng là “mô tả” của dải ô đó. Ví như nếu cần sử dụng getA1Notation mang đến dải ô B6:G6 thì công dụng trả về sẽ là “B6:G6”. Các chúng ta cũng có thể thử kiểm soát hàm này bởi Logger.log()Trong hàm setFormula() có tất cả là 3 chuỗi đã được nối cùng với nhau:=sum(“mô tả” của dải ô đề xuất tính tổng -> activeRange)Các chuỗi bên trên được nối cùng với nhau bằng dấu cộng +

Cải tiến code mang đến ví dụ nâng cao để ghi công thức

Khi thực hiện ghi phương pháp tính sum vào ô sinh sống cột H, họ đã cần sử dụng getRange. Mặc dù thì tiện ích Script có 1 hàm xuất xắc hơn để triển khai được điều đó

Đó là hàm offset(rowOffset, columnOffset) – trả về ô hoặc dải ô tương xứng với ô/dải ô đứng phía trước. Các ô/dải ô khớp ứng được xác minh bởi số hàng với số cột tính từ bỏ ô gốc.

Lưu ý: lấy ví dụ ô cội là


function onEdit() var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet0 = ss.getSheetByName("sheet0"); var activeCell = ss.getActiveCell(); if (activeCell.getValue() == "Duyệt") var activeRange = sheet0.getRange(activeCell.getRow(), 2, 1, 6).getA1Notation(); activeCell.offset(0, 7).setFormula("=sum(" + activeRange + ")");