Pola Dasar#
Ambil semua data dengan satu getValues(), olah di JavaScript, lalu tulis balik dengan satu setValues(). Hindari baca/tulis per-cell di dalam loop.
Example:
function olahPenjualan() { const sheet = SpreadsheetApp.getActiveSheet(); const data = sheet.getDataRange().getValues(); const baris = data.slice(1); // buang baris header
// filter: hanya transaksi lunas const lunas = baris.filter((r) => r[2] === 'Lunas');
// map: hitung total per baris (qty * harga) const denganTotal = lunas.map((r) => { return [...r, r[3] * r[4]]; });
// reduce: grand total const grand = denganTotal.reduce((sum, r) => sum + r[r.length - 1], 0); sheet.getRange('G1').setValue(grand);}Penjelasan#
filter()menyaring baris berdasar kondisi.map()menambah kolom baru (hasil qty × harga).reduce()menjumlahkan semua nilai kolom terakhir.
Menambah Kolom Status#
Example:
function tambahStatus() { const sheet = SpreadsheetApp.getActiveSheet(); const data = sheet.getDataRange().getValues(); const hasil = data.map((r, i) => { if (i === 0) return [...r, 'Status']; // header return [...r, r[1] >= 70 ? 'Lulus' : 'Remed']; }); sheet.getRange(1, 1, hasil.length, hasil[0].length).setValues(hasil);}Next#
Pelajari Format & Styling Sel Otomatis.