Mencari & Menfilter Data di Sheets
SeriLevel 1 — SpreadsheetApp (Jantung Otomasi)6 / 6

Mencari & Menfilter Data di Sheets

Cari nilai tertentu dan filter baris di Google Sheets menggunakan SpreadsheetApp — tanpa membuka dialog pencarian manual.

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:

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');
}
}
MethodMengembalikan
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');
}

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/filter bekerja di array hasil getValues(). Jangan panggil getValue() per cell di dalam loop — lambat.

Next#

Lanjut ke Level 2: GmailApp.

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 →