Misalnya, jika Assumptions!$B$3 berisi tanggal 1 September 2026, rumus berikut menghitung booking bulan September yang berstatus Closed Won:
=COUNTIFS(
'Bookings'!$B$2:$B, ">=" & Assumptions!$B$3,
'Bookings'!$B$2:$B, "<" & EDATE(Assumptions!$B$3, 1),
'Bookings'!$F$2:$F, "Closed Won"
)
Angka pada contoh ini bersifat hipotetis dan dapat disesuaikan dengan model Anda.
Batas < pada bulan berikutnya sangat penting. Pola ini tetap memasukkan data seperti 30/9/2026 23:59:59 tanpa bergantung pada timestamp akhir hari.
Dalam dokumentasi COUNTIF Google Sheets, Google mendefinisikan fungsi ini sebagai fungsi untuk “mengembalikan hitungan bersyarat pada suatu rentang”. Sementara itu, dokumentasi COUNTIFS Google Sheets menjelaskan bahwa fungsi tersebut “mengembalikan hitungan bersyarat pada suatu rentang, berdasarkan beberapa kriteria”.
Mengapa Google Sheets COUNTIF ARRAYFORMULA untuk rentang bulan sering gagal
Rumus yang sering dicoba biasanya seperti ini:
=ARRAYFORMULA(COUNTIF('Bookings'!$B$2:$B, ">=" & B$4))
Rumus tersebut hanya menerapkan satu batas tanggal. Rumus itu juga tidak otomatis menghasilkan hitungan terpisah untuk setiap bulan di B4:M4. Membungkus COUNTIF dengan ARRAYFORMULA tidak mengubah satu fungsi agregasi menjadi 12 agregasi bulanan.
Rentang bulan membutuhkan dua batas:
">=" & month_start
"<" & EDATE(month_start, 1)
Gunakan EOMONTH(month_start, 0) hanya jika Anda yakin data sumber tidak mengandung waktu. Data dari CRM, payment processor, payroll, atau ERP biasanya menyimpan timestamp, sehingga batas pada awal bulan berikutnya lebih aman.
Kapan Google Sheets COUNTIF ARRAYFORMULA untuk rentang bulan dapat digunakan
COUNTIF dan ARRAYFORMULA tetap berguna jika tujuannya adalah membuat penanda pada setiap baris, bukan langsung menghasilkan agregat bulanan. Buat helper flag di tab sumber, lalu jumlahkan hasilnya di laporan.
Misalnya, Bookings!B:B berisi tanggal closing dan Assumptions!$B$3 berisi awal bulan:
=ARRAYFORMULA(
IF(
B2:B="",
,
--(
(B2:B>=Assumptions!$B$3) *
(B2:B<EDATE(Assumptions!$B$3,1)) *
(F2:F="Closed Won")
)
)
)
Rumus tersebut menghasilkan 1 untuk booking Closed Won pada bulan September dan 0 untuk baris lainnya.
Menurut dokumentasi ARRAYFORMULA Google Sheets, fungsi ini digunakan untuk “menampilkan nilai yang dikembalikan dari rumus array ke beberapa baris dan kolom”. Jadi, ARRAYFORMULA memperluas hasil array, tetapi tidak menggantikan logika agregasi COUNTIFS.
Rumus bulanan yang andal untuk model FP&A
Untuk header bulan kalender di Returns Analysis!C$4:N$4, gunakan rumus berikut di C18, lalu salin ke kanan:
=COUNTIFS(
'P&L Detail'!$C$2:$C, ">=" & C$4,
'P&L Detail'!$C$2:$C, "<" & EDATE(C$4, 1),
'P&L Detail'!$G$2:$G, $B18
)
Jika B18 berisi Enterprise, rumus tersebut menghitung jumlah bulanan untuk segmen itu.
Pola batas tanggal yang sama dapat digunakan untuk revenue roll-forward:
=SUMIFS(
'P&L'!C:C,
'P&L'!B:B, ">=" & Assumptions!$B$3,
'P&L'!B:B, "<" & EDATE(Assumptions!$B$3,1)
)
Dalam contoh hipotetis, laporan closing September dapat menunjukkan 286 booking Closed Won dan pendapatan yang diakui sebesar Rp 5,4 miliar, dengan margin kotor 38,5%. Angka tersebut hanya ilustrasi. Hitungan booking bukan perhitungan pendapatan, tetapi dapat menjadi pemeriksaan kontrol awal saat meninjau laporan keuangan triwulanan atau laporan investor.
COUNTIFS, helper column, atau QUERY untuk rentang bulan
| Pendekatan | Penggunaan terbaik | Kelemahan | Aturan praktis |
|---|---|---|---|
COUNTIFS dengan batas tanggal | Monthly reporting grid, tab KPI, dan board pack | Kriteria diulang pada setiap sel output | Pilihan default untuk model 12 hingga 60 bulan |
Helper flag dengan ARRAYFORMULA | Audit trail, klasifikasi per baris, dan SUMIFS lanjutan | Menambah kolom pada tab sumber | Gunakan saat reviewer perlu melihat alasan sebuah baris masuk hitungan |
QUERY dengan pengelompokan bulan | Ringkasan transaksi ad hoc atau tabel bulanan baru | Format tanggal dan layout output dapat berubah | Gunakan untuk analisis, bukan fondasi laporan utama |
COUNTIF dengan ARRAYFORMULA | Satu kondisi pada spill range | Tidak menyatakan rentang bulan secara lengkap | Jangan gunakan sebagai pola utama untuk laporan bulanan |
QUERY dapat menghasilkan tabel bulanan yang rapi, tetapi deretan COUNTIFS yang terhubung ke header periode biasanya lebih mudah dipelihara ketika forecast diperpanjang atau skenario disalin.
Dalam tab operasional dengan ribuan baris, hindari whole-column reference jika performa menjadi masalah. Gunakan rentang seperti $B$2:$B$50000 sesuai volume data yang diperkirakan.
Jebakan kalender yang dapat mengubah hasil
Jika C$4 menampilkan Sep-26, tetapi nilainya berupa teks, rumus dapat mengembalikan 0. Uji header dengan:
=ISNUMBER(C$4)
Hasilnya harus TRUE.
Buat header bulanan dari tanggal sebenarnya, lalu format tampilannya sebagai mmm-yy:
=EDATE(Assumptions!$B$3, COLUMN()-COLUMN($C$4))
Dengan demikian, logika bulan bergantung pada nilai tanggal, bukan label teks yang hanya terlihat seperti tanggal.
Per September 2026, pola yang paling aman untuk menghitung data per bulan di Google Sheets adalah menggunakan tanggal awal bulan yang valid, >= untuk batas pembuka, dan < EDATE(month_start,1) untuk batas penutup.
Jika Anda mewarisi model dengan logika tanggal yang tersebar di tab P&L, Cash Flow, dan dump CRM, ModelMonkey dapat membantu memeriksa linked ranges serta menemukan filter bulan yang menggunakan batas berbeda. Coba ModelMonkey gratis selama 14 hari, tersedia di Google Sheets dan Excel.