Mencari Data#
Gunakan find() (array) atau indexOf() untuk mencari nilai di dalam data Sheets.
Mencari Satu Nilai#
Example:
function cariNama() { const sheet = SpreadsheetApp.getActiveSheet(); const data = sheet.getDataRange().getValues();
const baris = data.find((r) => r[0] === 'Budi'); if (baris) { Logger.log('Ditemukan: ' + baris.join(' | ')); } else { Logger.log('Tidak ditemukan'); }}Penjelasan:
getDataRange().getValues()membaca semua data sekali.find()mengembalikan baris pertama yang cocok, atauundefined.
Mencari Posisi (Row)#
Gunakan indexOf() untuk dapatkan nomor baris.
Example:
function cariPosisi() { const sheet = SpreadsheetApp.getActiveSheet(); const data = sheet.getDataRange().getValues(); const target = data.findIndex((r) => r[1] === 'Selesai');
if (target >= 0) { const rowKe = target + 1; // +1 karena array mulai dari 0 sheet.getRange(rowKe, 3).setValue('Sudah diproses'); }}| Method | Mengembalikan |
|---|---|
find(fn) | Baris pertama yang cocok |
findIndex(fn) | Index baris pertama yang cocok |
indexOf(v) | Posisi nilai dalam array |
Filter Banyak Baris#
Gunakan filter() untuk mengambil semua baris yang memenuhi syarat.
Example:
function filterBelumLunas() { const sheet = SpreadsheetApp.getActiveSheet(); const data = sheet.getDataRange().getValues().slice(1); // buang header
const belumLunas = data.filter((r) => r[2] === 'Belum Lunas'); Logger.log('Jumlah: ' + belumLunas.length);}Pencarian Teks (contains)#
Gunakan includes() atau regex untuk mencocokkan sebagian teks.
Example:
function cariYangMengandung() { const sheet = SpreadsheetApp.getActiveSheet(); const data = sheet.getDataRange().getValues();
const hasil = data.filter((r) => String(r[0]).includes('Admin')); Logger.log('Ketemu ' + hasil.length + ' baris');}Menulis Hasil Filter ke Sheet Baru#
Example:
function exportHasilFilter() { const sheet = SpreadsheetApp.getActiveSheet(); const data = sheet.getDataRange().getValues(); const header = data[0];
const hasil = data.filter((r, i) => i > 0 && r[2] === 'Lunas');
const ss = SpreadsheetApp.getActiveSpreadsheet(); const baru = ss.insertSheet('Hasil Lunas'); baru.getRange(1, 1, 1, header.length).setValues([header]); baru.getRange(2, 1, hasil.length, hasil[0].length).setValues(hasil);}Note
find/filterbekerja di array hasilgetValues(). Jangan panggilgetValue()per cell di dalam loop — lambat.
Next#
Lanjut ke Level 2: GmailApp.