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)
Đề 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.
Để 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).
tập tin +
Mã.gs
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.
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.