Chương 3 Tình huống thực tế: chỉnh lại bảng doanh thu tháng ・ SỨ MỆNH 11

Nhiệm vụ 11: Ghi cột kết quả một lần (setValues)

📋 Danh sách nhiệm vụ

Đề bài

Ghi “Lớn” vào cột phân loại của các dòng có số tiền từ 100.000 trở lên. Không ghi từng hàng mà đọc cả cột một lần rồi ghi một lần.

Doanh thu tháng 10 - Google Trang tính
Doanh thu tháng 10

Để luyện tập, mỗi lần chạy bảng sẽ quay về trạng thái ban đầu trước khi chạy (bảng tính thật không quay về. Thay đổi do script đôi khi hoàn tác được bằng Ctrl+Z, nhưng không thể hoàn tác tất cả một lần).

Apps ScriptDự án không có tiêu đềTriển khai ▾
function markLarge() {
const sheet = SpreadsheetApp.getActiveSheet();
const lastRow = sheet.getLastRow();
const amounts = sheet.getRange(2, 4, lastRow - 1, 1).getValues();
const labels = amounts.map((row) => [row[0] >= 100000 ? 'Lớn' : '']);
sheet.getRange(2, 5, , 1).(labels);
}
Ctrl+S: lưu · Ctrl+R: chạy (trình chỉnh sửa) · F5: mở lại

Chương 3 ・ SỨ MỆNH 11

Ghi cột kết quả một lần (setValues)

Ghi “Lớn” vào cột phân loại của các dòng có số tiền từ 100.000 trở lên. Không ghi từng hàng mà đọc cả cột một lần rồi ghi một lần.

bây giờ
Mục tiêu

Cách đọc mã

sheet.getRange(2, 4, lastRow - 1, 1).getValues();
Đọc một lần lastRow - 1 hàng, 1 cột (cột số tiền) bắt đầu từ hàng 2, cột 4.
amounts.map((row) => [row[0] >= 100000 ? 'Lớn' : '']);
Tạo mảng mà hàng nào từ 100.000 trở lên thì là “Lớn”, còn lại để trống. điều kiện ? A : B là cách viết if trên một dòng.
sheet.getRange(2, 5, labels.length, 1).setValues(labels);
Ghi labels vào cột E một lần, với số hàng bằng số hàng của labels.

Đọc một lần bằng getValues, chuyển từng hàng bằng map và ghi một lần bằng setValues. Nhanh hơn đọc ghi từng ô, có hàng nghìn hàng cũng không phải chờ. Nếu số hàng của vùng và của mảng khác nhau sẽ gặp lỗi “The number of rows in the data does not match …”.

Cách bắt đầu với GAS và mã hay dùng được tổng hợp trong một bài viết.GAS là gì? Cách bắt đầu và mã hay dùng

Mã bạn viết chạy trong một vùng cách ly bên trong trang này. Nó không ra được ngoài trang hay tới trang web khác.

* Đây là mô phỏng hoạt động của Google Trang tính và Apps Script, có thể khác bản thật ở một số điểm.

* Google Trang tính là nhãn hiệu của Google LLC. Trang web này không liên quan đến Google.