Penjualan & CRM

Cara Buat CRM Sales Pipeline di Google Sheets (2026)

ModelMonkey10 Juni 20269 menit baca

Artikel ini membahas setiap bagian, termasuk titik-titik di mana formula mulai bermasalah pada skala besar dan apa yang perlu diganti ketika itu terjadi. Semua formula dan rekomendasi diuji pada Google Sheets per Juni 2026.

Struktur Data CRM Sales Pipeline yang Tidak Mudah Rusak

Kesalahan terbesar adalah membangun formula langsung di atas ekspor CRM Anda. HubSpot, Salesforce, dan sebagian besar CRM mengekspor CSV yang terlihat bersih sampai Anda membukanya: tanggal penutupan dalam 3 format berbeda, nama stage dengan spasi tambahan di belakang, nilai deal yang tersimpan sebagai teks "Rp12.000.000,00", dan nama rep yang tidak cocok dengan daftar internal karena seseorang mengubah nama tampilan mereka di CRM minggu lalu.

Sheet data mentah Anda sebaiknya memiliki kolom-kolom berikut:

KolomCatatan
Deal IDKunci unik dari CRM - jangan pernah mengandalkan nama deal sebagai kunci
Deal NameTeks, boleh kosong
OwnerNama rep - bersiaplah menghadapi inkonsistensi antar ekspor
StageKosakata terkontrol, tapi CRM menambahkan stage baru tanpa pemberitahuan
Close DateFormat campuran hampir pasti terjadi pada ekspor multi-sistem
AmountSering berupa teks dengan simbol mata uang yang sudah tertanam
Probability %Kadang diisi otomatis oleh CRM, kadang kosong
Last Activity DateKunci untuk deteksi deal yang stagnan
SourceSistem mana yang mengekspor baris ini

Pada 1.500 hingga 4.000 baris deal per tahun (tipikal untuk tim 10-20 orang sales), sheet ini tetap cepat. Di atas 8.000 baris, yang umum terjadi jika Anda mengimpor histori multi-tahun atau menggabungkan instansi CRM setelah akuisisi, filter terlebih dahulu sebelum menjalankan cross-sheet lookup apapun.

Parsing tanggal penutupan harus dilakukan secara defensif. Jika ekspor Anda memiliki "2024-01-15", "1/15/24", dan "15 Jan 2024" dalam satu kolom yang sama (dan itu pasti terjadi), bungkus semua logika tanggal dengan IFERROR:

=IFERROR(DATEVALUE(TEXT(A2,"YYYY-MM-DD")), IFERROR(DATEVALUE(A2), ""))

Ini tidak menyelesaikan segalanya, tapi formula ini mencegah satu baris yang salah format merusak formula yang berjalan di 3.000 baris.

Bersihkan format mata uang dari kolom Amount dengan kolom pembantu ("Clean Amount"):

=IFERROR(VALUE(REGEXREPLACE(B2,"[Rp$.,]","")),0)

Lakukan ini di kolom pembantu, bukan menimpa data mentah. Ketika CRM mengekspor ulang minggu depan dengan format yang sedikit berbeda, Anda hanya mengubah satu formula, bukan 40.

Nilai Pipeline CRM Berbobot per Tahap

Pembobotan tahap adalah titik di mana sebagian besar pipeline tracker mulai bermasalah. Kesalahan umum: hardcoding probabilitas langsung di dalam formula SUMIF. Ketika sales ops memutuskan bahwa "Proposal" harus naik dari 40% ke 50%, Anda harus menelusuri 8 formula di 3 sheet.

Sebaiknya, kelola tabel bobot tahap secara terpisah di sheet Config:

StageWeight
Prospect10%
Qualified25%
Demo40%
Proposal50%
Negotiation75%
Verbal Commit90%
Closed Won100%
Closed Lost0%

Kemudian hitung nilai pipeline terbobot dengan SUMPRODUCT:

=SUMPRODUCT(
  (Data!D2:D5000<>"Closed Won")*(Data!D2:D5000<>"Closed Lost"),
  IFERROR(VLOOKUP(Data!D2:D5000, Config!$A$2:$B$9, 2, FALSE), 0),
  IFERROR(Data!E2:E5000*1, 0)
)

Formula ini berjalan 3 hingga 5 kali lebih cepat dibandingkan rangkaian SUMIF bersarang pada jumlah baris yang sama, sesuai dokumentasi resmi Google Workspace "Improve Spreadsheet Performance" (diperbarui 2025), dan tetap berfungsi dengan baik meski ada data bermasalah. Jika nama stage tidak cocok dengan tabel konfigurasi, IFERROR mensubstitusi 0 alih-alih melempar #N/A yang merusak seluruh jumlah.

Untuk pipeline terbobot per rep, QUERY menangani 8.000 baris ke atas dengan bersih, sementara alternatif berbasis ARRAYFORMULA-SUMIF mulai tersendat di atas 50.000 sel yang disentuh:

=QUERY(Data!A:F,
  "SELECT C, SUM(E) WHERE D<>'Closed Lost' GROUP BY C ORDER BY SUM(E) DESC",
  1)

Deteksi Deal yang Stagnan

Pipeline yang menyertakan deal yang tidak disentuh siapapun selama 45 hari adalah pipeline ilusi. Menurut CSO Insights Sales Performance Study 2023, sekitar 40% ketidakakuratan pipeline di sebagian besar tim ops berasal dari deal yang seharusnya sudah ditandai lost berminggu-minggu lalu, tapi tidak ada yang melakukannya karena tidak ada bendera yang terlihat di depan mereka.

Tandai deal stagnan dengan kolom pembantu di sheet data Anda:

=IF(
  AND(
    D2<>"Closed Won",
    D2<>"Closed Lost",
    IFERROR(TODAY()-DATEVALUE(G2), 999)>45
  ),
  "STALE",
  ""
)

Kolom G adalah Last Activity Date. IFERROR mensubstitusi 999 hari untuk tanggal aktivitas yang kosong, sehingga deal tanpa aktivitas tercatat selalu terflag sebagai stagnan. Ini memang disengaja: deal tanpa tanggal aktivitas adalah masalah yang sama dengan deal yang aktivitas terakhirnya sudah 200 hari lalu.

Conditional formatting pada kolom ini (isian merah untuk "STALE") mengubah sheet data menjadi alat review yang aktif, bukan sekadar catatan pasif.

Membangun Tab Dashboard CRM Sales Pipeline

Tab dashboard adalah yang sebenarnya dilihat direktur sales Anda. Dashboard harus menjawab 3 pertanyaan tanpa perlu menggali lebih dalam: berapa total pipeline terbobot kuartal ini, bagaimana distribusinya per tahap, dan rep mana yang memegang paling banyak deal stagnan.

Pipeline terbobot per tahap:

=QUERY(Data!A:H,
  "SELECT D, SUM(E), COUNT(A)
   WHERE D<>'Closed Won' AND D<>'Closed Lost'
   GROUP BY D
   ORDER BY SUM(E) DESC",
  1)

Beri label kolom output: Stage, Total Amount, Deal Count. Pada 5.000 baris, formula ini berjalan dalam waktu kurang dari 2 detik. Di atas 12.000 baris, pre-filter data sumber berdasarkan tahun fiskal sebelum QUERY dijalankan.

Tren pipeline mingguan: Tarik close date ke dalam ISO week menggunakan =ISOWEEKNUM(close_date) dan kelompokkan per minggu dalam QUERY kedua. Jika close date berantakan (dan itu pasti terjadi), pre-bersihkan di kolom pembantu menggunakan wrapper DATEVALUE di atas sebelum mereferensikannya di sini.

5 rep teratas berdasarkan pipeline terbobot:

=QUERY(Data!A:H,
  "SELECT C, SUM(E*F) WHERE D<>'Closed Lost' GROUP BY C ORDER BY SUM(E*F) DESC LIMIT 5",
  0)

Kolom F adalah kolom probabilitas Anda. Jika CRM tidak mengekspor probabilitas, lakukan VLOOKUP ke tabel konfigurasi bobot tahap di kolom pembantu terlebih dahulu, lalu referensikan kolom tersebut di QUERY.

Jumlah deal stagnan per rep:

=COUNTIFS(Data!C:C, B2, Data!H:H, "STALE")

Di mana H adalah kolom flag stagnan Anda. Jalankan formula ini ke bawah daftar rep di kolom B. Pada 5.000 baris, hasilnya instan.

Dashboard itu sendiri harus muat dalam 1 layar tanpa perlu scroll. Empat angka ringkasan di bagian atas (total pipeline terbobot, jumlah deal terbuka, deal yang closing bulan ini, jumlah deal stagnan), lalu 2 tabel di bawahnya. Jika direktur Anda harus scroll, itu tanda terlalu banyak metrik.

Ketika Skema CRM Berubah dan Formula Ikut Rusak

Bagian yang paling sering bermasalah bukan formulanya, melainkan skemanya. CRM Anda menambahkan stage baru, mengubah nama field, atau mulai mengekspor probabilitas sebagai desimal alih-alih persentase, dan tiba-tiba QUERY di dashboard Anda mengembalikan 0 baris atau tabel kosong.

ModelMonkey dapat menulis ulang formula QUERY tersebut dalam bahasa biasa ketika skema berubah. Deskripsikan nama kolom baru atau perubahan nama stage, dan formula langsung disesuaikan di tempat tanpa Anda harus menelusuri 6 sheet untuk menemukan setiap referensi. Ketika ekspor Anda diam-diam mengganti "Proposal Sent" menjadi "Proposal" dan pipeline terbobot Anda jatuh ke Rp 0 pukul 8 pagi hari Senin, perbedaan antara perbaikan 10 menit dan sesi investigasi 2 jam ada di sana. Coba gratis 14 hari.

FAQ: Buat CRM Sales Pipeline di Google Sheets

Berapa banyak baris yang bisa ditangani Google Sheets untuk pipeline tracker?

Google Sheets secara teknis mendukung hingga 10 juta sel per spreadsheet. Untuk pipeline tracker dengan 9-12 kolom, artinya sekitar 800.000 hingga 1 juta baris. Namun secara praktis, formula QUERY dan SUMPRODUCT mulai melambat di atas 15.000 baris aktif. Untuk tim dengan histori deal multi-tahun, pisahkan data per tahun fiskal di sheet atau file terpisah.

Apakah Google Sheets bisa menggantikan CRM berbayar sepenuhnya?

Tidak sepenuhnya. Google Sheets unggul untuk pelaporan, analisis pipeline, dan dasbor kustom karena fleksibilitasnya. Namun CRM berbayar seperti HubSpot atau Salesforce menawarkan fitur yang tidak bisa direplikasi di Sheets: logging aktivitas otomatis, integrasi email, dan manajemen kontak berskala besar. Pendekatan terbaik untuk tim 5-20 orang: gunakan CRM untuk input data, gunakan Sheets untuk analisis.

Formula apa yang paling efisien untuk menghitung nilai pipeline terbobot?

SUMPRODUCT adalah pilihan terbaik untuk pipeline terbobot. Formula ini memproses array dalam satu operasi tanpa iterasi sel per sel, sehingga jauh lebih efisien dari rangkaian SUMIF bersarang pada dataset yang sama. Untuk lebih dari 10.000 baris, kombinasikan dengan QUERY untuk pre-filtering sebelum kalkulasi.

Bagaimana cara mendeteksi deal stagnan secara otomatis di Google Sheets?

Tambahkan kolom pembantu dengan formula IF yang membandingkan TODAY() dengan Last Activity Date. Tetapkan threshold stagnan sesuai siklus sales Anda (45 hari untuk B2B mid-market adalah titik awal yang umum di pasar Indonesia). Aktifkan conditional formatting untuk mewarnai baris secara otomatis, lalu gunakan COUNTIFS di dashboard untuk menghitung jumlah deal stagnan per rep.

Kapan sebaiknya berpindah dari Google Sheets ke alat pipeline khusus?

Ada tiga sinyal yang jelas: (1) Anda menghabiskan lebih dari 2 jam per minggu untuk membersihkan data ekspor CRM sebelum bisa menganalisis, (2) pipeline tracker sudah menyentuh lebih dari 15.000 baris aktif dan formula mulai timeout, atau (3) lebih dari 5 orang perlu mengedit sheet secara bersamaan secara rutin. Di bawah ambang batas itu, Google Sheets dengan struktur yang benar sudah lebih dari cukup.

Ringkasan

CRM sales pipeline yang berfungsi di Google Sheets memiliki 4 lapisan: sheet data mentah yang di-parsing secara defensif, tabel konfigurasi untuk bobot tahap, formula SUMPRODUCT atau QUERY untuk nilai pipeline terbobot, dan tab dashboard yang menjawab 3 pertanyaan yang selalu ditanyakan direktur Anda di standup. Formula di atas menangani data kotor dari ekspor CRM yang umum, berskala dengan baik hingga 8.000 hingga 12.000 baris, dan tetap berfungsi dengan anggun karena mengembalikan 0, bukan #N/A, ketika CRM pasti akan mengganti nama stage tanpa memberitahu siapapun.