Analisis Data

Google Sheets COUNTIF ARRAYFORMULA untuk Rentang Bulan

ModelMonkey2 September 20265 menit baca

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

PendekatanPenggunaan terbaikKelemahanAturan praktis
COUNTIFS dengan batas tanggalMonthly reporting grid, tab KPI, dan board packKriteria diulang pada setiap sel outputPilihan default untuk model 12 hingga 60 bulan
Helper flag dengan ARRAYFORMULAAudit trail, klasifikasi per baris, dan SUMIFS lanjutanMenambah kolom pada tab sumberGunakan saat reviewer perlu melihat alasan sebuah baris masuk hitungan
QUERY dengan pengelompokan bulanRingkasan transaksi ad hoc atau tabel bulanan baruFormat tanggal dan layout output dapat berubahGunakan untuk analisis, bukan fondasi laporan utama
COUNTIF dengan ARRAYFORMULASatu kondisi pada spill rangeTidak menyatakan rentang bulan secara lengkapJangan 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.

Pertanyaan Umum