TL;DR
Fungsi QUERY di Google Sheets pakai SELECT buat milih kolom dan WHERE buat filter baris, mirip SQL. Contoh: =QUERY(A1:D, "SELECT A, C WHERE C > 100"). Kamu bisa filter angka, teks, tanggal, dan gabungin banyak kondisi pakai AND dan OR dalam satu rumus.
Fungsi QUERY di Google Sheets bikin kamu filter data pakai bahasa mirip SQL. SELECT buat milih kolom, WHERE buat nyaring baris sesuai kondisi.
Kalau selama ini kamu filter manual pakai menu atau tumpuk-tumpuk IF, QUERY jauh lebih ringkas. Satu rumus bisa gantiin filter, sort, dan pilih kolom sekaligus.
Di artikel ini kamu bakal belajar struktur QUERY, cara nulis WHERE buat angka, teks, dan tanggal, sampai gabungin banyak kondisi dalam satu tarikan.
QUERY adalah fungsi yang jalanin perintah mirip SQL ke sebuah range data. Kamu kasih range, lalu string query berisi SELECT dan WHERE. Fungsi ini balikin cuma kolom dan baris yang cocok sama kondisi, tanpa ngubah data aslinya.
Bahasanya disebut Google Visualization API Query Language. Mirip SQL tapi ga sama persis. Kolom dipanggil pakai huruf (A, B, C), bukan nama.
=QUERY(data, query, [header])
A1:D100 atau A1:D."SELECT A, C WHERE C > 100".1.WHERE nyaring baris berdasarkan kondisi. Buat angka, kamu bisa pakai operator perbandingan biasa.
=QUERY(A1:D, "SELECT A, B, D WHERE D > 100000", 1)
Rumus ini ngambil kolom A, B, D, tapi cuma baris yang kolom D-nya lebih dari 100000. Operator yang bisa dipakai:
| Operator | Arti | Contoh |
|---|---|---|
> < | Lebih besar / kecil | WHERE D > 100000 |
>= <= | Lebih besar / kecil sama dengan | WHERE D >= 50000 |
= | Sama dengan | WHERE B = 10 |
!= | Tidak sama | WHERE B != 0 |
Buat teks, nilainya dibungkus tanda kutip satu di dalam query. Ini yang sering bikin bingung karena query-nya sendiri udah dibungkus kutip dua.
=QUERY(A1:D, "SELECT A, C WHERE B = 'Minuman'", 1)
Kalau mau nyari teks yang mengandung kata tertentu, pakai CONTAINS:
=QUERY(A1:D, "SELECT A, C WHERE C CONTAINS 'kopi'", 1)
Ada juga STARTS WITH dan ENDS WITH buat nyocokin awalan atau akhiran. Semua nilai teksnya wajib pakai kutip satu.
Buat lookup teks yang lebih spesifik, QUERY enak dipadu sama INDEX MATCH atau SUMIF.
Tanggal butuh perlakuan khusus. Kamu harus tulis kata date sebelum nilainya, dan formatnya wajib yyyy-mm-dd.
=QUERY(A1:D, "SELECT A, D WHERE A >= date '2026-01-01'", 1)
Kalau lupa nulis date atau format tanggalnya salah, QUERY bakal keluar error atau ga ngambil baris apa pun. Ini kesalahan paling umum di filter tanggal.
Buat filter rentang, gabungin dua kondisi:
=QUERY(A1:D, "SELECT A, D WHERE A >= date '2026-01-01' AND A <= date '2026-03-31'", 1)
AND minta semua kondisi terpenuhi. OR cukup salah satu. Kamu bisa campur, tapi pakai kurung biar logikanya jelas.
=QUERY(A1:D, "SELECT A, B, D WHERE B = 'Minuman' AND D > 50000", 1)
=QUERY(A1:D, "SELECT A, B WHERE B = 'Minuman' OR B = 'Makanan'", 1)
Tambahin ORDER BY di akhir buat urutin hasil:
=QUERY(A1:D, "SELECT A, D WHERE D > 50000 ORDER BY D DESC", 1)
Di dataset toko_berkah ngulikdata ada 14.880 baris transaksi setahun di satu sheet. Kasir mau lihat transaksi Minuman di atas Rp50.000 selama Maret, diurutkan dari yang terbesar.
=QUERY(transaksi!A1:E,
"SELECT A, C, E
WHERE C = 'Minuman'
AND E > 50000
AND A >= date '2026-03-01'
AND A <= date '2026-03-31'
ORDER BY E DESC", 1)
Dari 14.880 baris, filter ini nyaring jadi 213 transaksi yang cocok. Yang tadinya perlu 4 langkah filter manual plus sort, sekarang jadi satu rumus yang otomatis update tiap data baru masuk. Buat rekap harian, ini motong waktu dari beberapa menit jadi instan.
WHERE B = Minuman bakal error. Harus WHERE B = 'Minuman'.WHERE A > '2026-01-01' ga jalan. Wajib date '2026-01-01'.FILTER cuma nyaring baris dan balikin semua kolom sesuai range. QUERY lebih lengkap: bisa milih kolom tertentu lewat SELECT, urutin lewat ORDER BY, bahkan agregasi lewat GROUP BY, semua dalam satu rumus. Kalau kebutuhannya cuma filter sederhana, FILTER cukup. Kalau butuh milih kolom dan sort sekaligus, QUERY lebih hemat.
Paling sering karena lupa nulis kata date sebelum nilai tanggal, atau formatnya bukan yyyy-mm-dd. QUERY minta persis date '2026-01-01'. Pastikan juga kolom tanggalnya beneran bertipe tanggal, bukan teks yang keliatan kayak tanggal. Cek lewat format sel dulu.
Ga bisa langsung kalau sumbernya range biasa. QUERY manggil kolom pakai huruf A, B, C sesuai posisi di range. Nama header cuma bisa dipakai kalau datanya dari IMPORTRANGE yang dibungkus, dan itu butuh sintaks Col1, Col2 yang beda. Buat kerjaan harian, pakai huruf kolom aja lebih simpel.
Ya. Selama range sumbernya nyakup baris baru, misalnya kamu tulis A1:D tanpa batas baris, hasil QUERY ikut update begitu ada data masuk. Ini bedanya sama filter manual yang harus diulang tiap ada perubahan. Rumus QUERY hidup dan nyesuain sendiri.
QUERY bikin kamu filter data Google Sheets pakai logika mirip SQL: SELECT buat kolom, WHERE buat baris, plus ORDER BY buat urutan. Ingat aturan kutip satu buat teks dan kata date buat tanggal.
Sekali paham polanya, kamu bisa gantiin banyak langkah manual dengan satu rumus yang update sendiri.
Mau lanjut ke agregasi ala SQL? Baca QUERY GROUP BY Google Sheets dan latihan di NgulikSheet. Detail sintaks resmi ada di dokumentasi fungsi QUERY dari Google.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
SUMIFS ribet kalau kriterianya banyak dan sering ganti. Rumus database Excel kayak DSUM baca kriteria dari sel terpisah, jadi kamu tinggal ubah tabel kecil tanpa nyentuh rumus.
DATEDIF ngasih umur bulat, tapi kadang kamu butuh angka desimal kayak 27,6 tahun buat hitung masa kerja atau bunga. YEARFRAC ngasih pecahan tahun dengan presisi.
Cara pakai rumus EDATE Excel buat menambah atau mengurangi bulan dari sebuah tanggal. Cocok buat jatuh tempo, tanggal kedaluwarsa, dan jadwal cicilan UMKM.