TL;DR
Growth MoM (month over month) ngukur pertumbuhan omzet dibanding bulan sebelumnya, dihitung dengan rumus (bulan ini dikurangi bulan lalu) dibagi bulan lalu. Growth YoY (year over year) ngebandingin bulan yang sama tahun lalu, jadi pengaruh musim ikut hilang. Di Excel dua-duanya cuma butuh satu kolom omzet bulanan yang urut, plus IFERROR biar nggak error di baris pertama.
Omzet bulan ini 52 juta, bulan lalu 48 juta. Naik 4 juta, kedengeran bagus.
Tapi kalau bulan yang sama tahun lalu omzetnya 61 juta, ceritanya beda total.
Dua cara baca itu namanya MoM dan YoY. Dua-duanya butuh satu kolom data yang sama, dan dua-duanya cuma butuh satu rumus.
Di bawah ini aku susun rumusnya di Excel, struktur sheet yang bikin dua-duanya jalan, dan jebakan yang paling sering bikin orang salah simpul.
MoM (month over month) adalah persentase perubahan omzet dibanding bulan sebelumnya. YoY (year over year) adalah persentase perubahan dibanding bulan yang sama di tahun sebelumnya. Rumus dasarnya identik: selisih dibagi angka pembanding, bedanya cuma bulan mana yang dipakai sebagai pembanding.
MoM cepat nangkep perubahan, tapi ikut goyang sama musim. Omzet turun di Januari setelah ramai Desember itu normal, bukan tanda usahamu memburuk.
YoY ngilangin masalah itu, karena Januari dibandingin sama Januari. Bayarannya, dia butuh minimal 13 bulan data.
Rumusnya (omzet bulan ini dikurangi omzet bulan lalu) dibagi omzet bulan lalu. Di Excel, kalau omzet ada di kolom B mulai baris 2, rumus MoM ditulis di kolom C mulai baris 3, karena baris pertama nggak punya pembanding.
=IFERROR((B3-B2)/B2; "")
Format sel-nya jadi Percentage dengan satu angka di belakang koma. Tarik ke bawah sampai baris terakhir.
IFERROR di sini kepakai buat dua hal. Dia nyembunyiin error di baris pertama yang belum punya pembanding, dan nangkep kasus omzet bulan lalu nol yang bikin pembagian gagal.
Kalau kamu mau nampilin nominalnya juga, bikin kolom tambahan.
=B3-B2
Persentase gampang bikin salah paham pas angkanya kecil. Naik 300 persen dari 200 ribu ke 800 ribu itu kedengeran heboh, padahal nominalnya 600 ribu.
YoY ngebandingin baris yang jaraknya 12 baris ke atas, dengan syarat datamu urut per bulan tanpa bolong. Kalau omzet Juli 2025 ada di B14 dan Juli 2024 di B2, rumusnya begini.
=IFERROR((B14-B2)/B2; "")
Tulis rumus ini pertama kali di baris ke-14 (bulan ke-13), lalu tarik ke bawah. Excel bakal geser referensinya otomatis, dan tiap baris bakal ngebandingin dirinya sama 12 baris di atasnya.
Syarat mutlaknya: nggak boleh ada bulan yang kelewat. Kalau Maret 2025 nggak ada barisnya karena tokomu tutup, sisipin barisnya dengan nilai nol, jangan dihapus. Baris yang hilang bikin semua perbandingan di bawahnya meleset satu bulan.
Cara lain yang lebih tahan salah: pakai kolom bantu berisi nomor bulan dan tahun, lalu tarik pembandingnya pakai rumus pencarian. Tapi buat data 24 sampai 36 bulan, cara sederhana di atas udah cukup dan lebih gampang dicek.
Dua-duanya kepakai, cuma buat pertanyaan yang beda.
| Situasi | Pakai | Alasan |
|---|---|---|
| Ngecek dampak promo yang baru jalan bulan lalu | MoM | Butuh sinyal cepat |
| Laporan pertumbuhan usaha ke investor atau bank | YoY | Bersih dari pengaruh musim |
| Usaha yang omzetnya ikut musim (seragam sekolah, oleh-oleh) | YoY | MoM bakal naik turun ekstrem tiap tahun |
| Data baru 6 bulan | MoM | YoY butuh minimal 13 bulan |
| Ngukur tren jangka panjang | YoY | Lebih stabil dan nggak berisik |
Kalau datamu belum genap setahun tapi MoM-nya terlalu naik turun, tambahin kolom rata-rata bergerak 3 bulan.
=AVERAGE(B2:B4)
Angka itu lebih tenang dan polanya lebih gampang dilihat.
Bikin dua sheet. Sheet Transaksi isinya data mentah per baris transaksi, dan sheet Bulanan isinya satu baris per bulan. Kolom omzet bulanan ditarik otomatis pakai SUMIFS dengan batas awal dan akhir bulan.
Di sheet Bulanan, kolom A diisi tanggal 1 tiap bulan: 01/01/2024, 01/02/2024, dan seterusnya. Lalu kolom B pakai rumus ini.
=SUMIFS(Transaksi!E:E; Transaksi!A:A; ">="&A2; Transaksi!A:A; "<="&EOMONTH(A2;0))
EOMONTH(A2;0) ngasih tanggal terakhir di bulan yang sama, jadi rumusnya jalan buat bulan 28, 30, maupun 31 hari tanpa kamu ubah manual. SUMIFS lalu jumlahin semua transaksi di rentang itu.
Struktur data mentahnya sendiri aku bahas di laporan penjualan harian. Kalau sheet transaksimu udah ikut format itu, rumus di atas langsung jalan tanpa diubah.
Tambahin juga kolom jumlah transaksi dan unit terjual dengan pola yang sama. Growth omzet doang nggak cukup buat tau penyebabnya.
Aku pakai data 24 bulan dari salah satu warung di dataset toko_berkah. Ini potongan tengahnya.
| Bulan | Omzet | MoM | YoY |
|---|---|---|---|
| Apr 2025 | Rp 118.400.000 | +21,3% | +9,8% |
| Mei 2025 | Rp 96.200.000 | -18,8% | +14,2% |
| Jun 2025 | Rp 92.700.000 | -3,6% | +16,1% |
| Jul 2025 | Rp 99.800.000 | +7,7% | +18,4% |
Lihat Mei. MoM-nya minus 18,8 persen, dan kalau cuma itu yang dilihat, kesannya warungnya lagi anjlok.
Padahal YoY-nya plus 14,2 persen. Turunnya cuma karena April kena musim ramai menjelang Lebaran, dan Mei balik ke pola normal.
Ini yang namanya base effect: angka pembanding yang luar biasa tinggi bikin bulan berikutnya selalu keliatan jelek.
Angka menarik lain dari 24 bulan itu: rata-rata MoM-nya cuma 1,2 persen dengan simpangan yang lebar, sementara rata-rata YoY-nya 14,6 persen dan jauh lebih stabil dari bulan ke bulan.
Selisih itu bukan kebetulan. MoM ngukur naik turun jangka pendek yang isinya sebagian besar musim, sedangkan YoY ngukur arah usahanya. Angka original dari dataset ngulikdata.
Satu lagi yang kelihatan setelah unit terjual ikut dihitung: YoY omzet 18,4 persen di Juli, tapi YoY unit cuma 6,1 persen. Sisanya datang dari kenaikan harga jual, bukan dari nambahnya barang yang laku.
Angka persentase di tabel gampang bikin mata capek. Dua hal ini yang paling cepat bikin laporanmu kebaca.
Pertama, pasang Conditional Formatting di kolom growth. Blok kolomnya, masuk Home > Conditional Formatting > Color Scales, pilih skala merah ke hijau. Bulan yang minus langsung kelihatan tanpa dibaca satu-satu.
Kedua, bikin grafik garis dengan dua garis: satu buat tahun ini, satu buat tahun lalu, dengan sumbu bulan Januari sampai Desember. Bentuk ini bikin pola musim langsung kebaca, dan cara bikinnya aku bahas di panduan visualisasi data.
MoM ngebandingin omzet bulan ini sama bulan sebelumnya, jadi cepat nangkep perubahan tapi ikut goyang sama musim. YoY ngebandingin bulan yang sama tahun lalu, jadi pengaruh musim hilang. Buat ngukur pertumbuhan usaha yang sebenernya, YoY lebih jujur. Buat ngecek dampak keputusan bulan lalu, MoM lebih cepat kasih sinyal.
Minimal 13 bulan, karena kamu butuh bulan yang sama di tahun sebelumnya sebagai pembanding. Kalau datamu baru 6 bulan, pakai MoM dulu dan tambahin rata-rata bergerak 3 bulan biar naik turunnya nggak terlalu berisik. Jangan maksa ngitung YoY dari data yang belum genap setahun.
Kemungkinan besar karena bulan sebelumnya kena musim ramai, misalnya Lebaran atau libur sekolah. Turun setelah bulan yang luar biasa ramai itu wajar, namanya base effect. Cek YoY-nya buat kepastian. Kalau bulan itu masih lebih tinggi dari tahun lalu, usahamu sebenernya tumbuh.
Persentase nggak bisa dihitung kalau pembaginya nol, dan Excel bakal ngasih error pembagian. Bungkus rumusmu pakai IFERROR biar selnya nampilin tanda strip. Buat produk baru yang bulan lalu belum ada, tulis selisih nominalnya aja. Persentase dari basis nol gampang bikin salah paham.
Tergantung pembandingnya. Cek inflasi tahunan di periode yang sama, karena kenaikan harga bikin omzet naik walau jumlah barang yang laku tetap. Kalau inflasi 3 persen, pertumbuhan riilmu sekitar 2 persen. Cara lain yang lebih jelas: bandingin unit terjual, bukan rupiahnya.
Dua rumus, satu kolom data. Yang bikin bedanya bukan rumusnya, tapi kebiasaan baca MoM dan YoY bareng-bareng, plus ngecek unit terjual biar kamu tau kenaikannya datang dari mana.
Kalau datamu belum genap setahun, mulai dari MoM sekarang. Tahun depan YoY-nya jalan sendiri tanpa kerja tambahan.
Buat ngerangkum penjualan per barang atau per kategori dari data yang sama, lanjut ke panduan pivot table Excel, lalu latihan langsung pakai dataset penjualan di NgulikSheet.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Punya ratusan angka dan mau tau sebarannya masuk ke rentang mana aja? FREQUENCY ngitung distribusi frekuensi sekali jalan, tanpa nulis COUNTIFS berkali-kali.
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.