Looping Data & Transformasi dengan filter, map, reduce
SeriLevel 1 — SpreadsheetApp (Jantung Otomasi)2 / 6

Looping Data & Transformasi dengan filter, map, reduce

Olah data Sheets secara massal menggunakan filter, map, dan reduce tanpa loop manual yang lambat.

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#

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.

Lisensi

CC BY-NC-SA 4.0 Karya ini dilisensikan di bawah Lisensi Creative Commons Atribusi-NonKomersial-BerbagiSerupa 4.0 Internasional.

Tulisan Terkait

Butuh jasa automatisasi atau custom Apps Script?

Jangan ragu untuk berkonsultasi. Kami bantu bangun solusi sesuai kebutuhan Anda.

Konsultasi sekarang →