TL;DR
Laporan penjualan sederhana cukup satu sheet berisi delapan kolom: tanggal, nomor struk, nama produk, jumlah, harga satuan, total, metode bayar, dan catatan. Kolom total diisi rumus jumlah dikali harga, bukan diketik manual. Rekap omzet harian dan produk terlaris dihitung di sheet terpisah pakai SUMIFS dan pivot table, jadi data mentahnya nggak pernah diutak-atik.
Laporan penjualan sederhana cukup satu sheet berisi delapan kolom, dan kamu bisa bikinnya dalam 20 menit.
Nggak butuh template berbayar. Nggak butuh macro. Nggak butuh aplikasi kasir.
Yang bikin catatan penjualan gagal biasanya bukan kurang canggih, tapi kebanyakan kolom. Kalau ngisi satu transaksi butuh 12 isian, kamu bakal skip di hari ketiga.
Di bawah ini delapan kolomnya, langkah bikinnya dari nol, tiga rumus rekap, dan rutinitas lima menit tiap tutup toko.
Laporan penjualan sederhana adalah satu tabel yang nyatat tiap barang terjual dalam satu baris, dengan kolom secukupnya buat jawab tiga pertanyaan harian: hari ini omzetnya berapa, barang apa yang paling laku, dan berapa uang tunai yang harusnya ada di laci. Rekapnya dihitung otomatis, bukan diketik ulang.
Bedanya sama laporan keuangan lengkap: laporan penjualan cuma ngurus uang masuk dari jualan. Nggak ada biaya sewa, gaji, atau listrik di sini.
Ini kolomnya, urut dari kiri ke kanan sesuai urutan kamu ngisi.
| Kolom | Nama | Contoh isi | Kenapa perlu |
|---|---|---|---|
| A | tanggal | 10/07/2025 | Dasar semua rekap harian dan bulanan |
| B | no_struk | 001 | Buat ngitung jumlah pembeli, bukan jumlah barang |
| C | nama_produk | Minyak Goreng 1L | Buat tau barang terlaris |
| D | qty | 2 | Jumlah unit terjual |
| E | harga_satuan | 18500 | Harga jual saat itu |
| F | total | =D2*E2 | Hasil rumus, jangan diketik |
| G | bayar | Tunai | Buat cocokin uang di laci |
| H | catatan | Titip bayar besok | Boleh kosong, buat kasus aneh |
Delapan kolom ini sengaja pendek. Satu transaksi selesai dalam belasan detik, dan itu yang bikin kamu betah ngisi tiap hari.
Kalau usahamu udah lebih besar dan butuh kode produk plus sheet master, lanjut ke struktur tabel laporan penjualan.
Ikutin urut. Total sekitar 20 menit, sekali seumur hidup.
Penjualan 2025.transaksi.=D2*E2, terus tarik ke bawah sekitar 500 baris.rekap. Sheet ini yang bakal nampung semua hitungan.Selesai. Sekarang tiap kali ada yang beli, kamu tinggal ngisi satu baris.
Semua rumus ini ditulis di sheet rekap, bukan di sheet transaksi. Data mentah jangan pernah disisipin baris total.
Tulis daftar tanggal di kolom A sheet rekap, mulai dari A2. Di sel B2:
=SUMIFS(transaksi!F:F;transaksi!A:A;A2)
Rumus ini jumlahin kolom total di sheet transaksi, khusus baris yang tanggalnya cocok. Tarik ke bawah sepanjang daftar tanggalmu. Detail argumennya ada di dokumentasi SUMIFS Microsoft.
Satu struk bisa berisi lima barang, jadi jumlah baris bukan jumlah pembeli. Di Google Sheets:
=COUNTUNIQUE(FILTER(transaksi!B:B;transaksi!A:A=A2))
Angka ini dipakai buat ngitung rata-rata belanja per struk, atau yang biasa disebut average order value. Bagi omzet harian sama jumlah struknya.
Buat yang ini, pivot table lebih enak daripada rumus. Blok data di sheet transaksi, masuk Insert, pilih PivotTable, taruh nama_produk di Rows dan qty di Values, terus urutkan dari besar ke kecil.
Di Google Sheets, satu rumus juga cukup:
=QUERY(transaksi!A:H;
"select C, sum(D), sum(F)
where A is not null
group by C
order by sum(D) desc
limit 10";1)
Kalau kamu mau kolom total di sheet transaksi kehitung sendiri sampai baris terakhir tanpa perlu ditarik manual, pakai ARRAYFORMULA.
File yang bagus nggak ada gunanya kalau nggak diisi. Ini urutan yang paling gampang dijaga:
Langkah ketiga yang paling sering dilewatin, dan itu justru satu-satunya cara kamu tau datanya bener.
Ini simulasi dari data toko_berkah punya Ngulik Data, dipotong jadi satu bulan biar mirip skala warung kecil. Isinya 1.240 baris transaksi dari 30 hari.
Sebelum pakai file ini, catatan penjualan cuma ditulis di buku, dan rekap bulanan diketik ulang dari buku ke kalkulator. Butuh sekitar 2 jam tiap akhir bulan.
Setelah pindah ke satu sheet delapan kolom, rekapnya jalan sendiri. Tapi yang lebih menarik bukan hemat waktunya, melainkan angka yang baru kelihatan.
| Yang dikira | Yang keluar dari data |
|---|---|
| Omzet paling gede hari Minggu | Paling gede hari Jumat, Rp 1,42 juta rata-rata |
| Produk terlaris mie instan | Mie instan nomor satu per unit, tapi minyak goreng nyumbang omzet 2,1 kali lipat |
| Pembayaran didominasi tunai | Tunai 61 persen, sisanya transfer dan QRIS |
Keputusan yang berubah: stok minyak goreng dinaikin buat hari Kamis sore, karena Jumat pagi sering kehabisan. Perubahan kecil itu datang dari kolom tanggal yang selama ini nggak pernah dijumlahin per hari.
Bikin sheet baru tiap bulan. Nanti rekap tahunan jadi kerja manual lagi. Satu sheet buat semua bulan, kolom tanggal yang misahin.
Ngetik total manual. Kalau kolom F diketik angka, kamu kehilangan satu-satunya cara ngecek qty dan harga nyambung atau nggak.
Nulis harga pakai kata Rp. Angka yang diketik Rp 18.500 kebaca sebagai teks, dan SUMIFS-nya balikin nol. Ketik 18500 aja, format rupiahnya diatur lewat tampilan sel.
Nambah baris total di tengah data. Ini bikin pivot table dan SUMIFS ngitung angka yang sama dua kali. Semua total taruh di sheet rekap.
Nunda input sampai akhir minggu. Sabtu sore kamu nggak akan inget siapa yang bayar pakai QRIS hari Selasa. Isi tiap hari, walau cuma lima menit.
Delapan kolom: tanggal, nomor struk, nama produk, jumlah, harga satuan, total, metode bayar, dan catatan. Delapan ini cukup buat jawab pertanyaan sehari-hari seperti omzet hari ini berapa, produk mana yang paling laku, dan berapa uang tunai yang harus ada di laci. Kalau nanti butuh lebih detail, tambahin kolom baru di sebelah kanan, jangan disisipin di tengah.
Google Sheets kalau kamu input dari HP atau ada lebih dari satu orang yang ngisi, karena filenya online dan otomatis kesimpan. Excel kalau datanya udah puluhan ribu baris dan kamu butuh pivot table yang gesit. Buat toko kecil dengan puluhan transaksi sehari, dua-duanya sama-sama cukup. Yang lebih nentuin adalah kamu rutin ngisinya atau nggak.
Pakai rumus jumlah dikali harga satuan. Kalau diketik manual, kamu nggak punya cara ngecek apakah angkanya nyambung sama qty dan harga yang tertulis. Salah ketik satu digit di kolom total bisa bikin omzet harian meleset ratusan ribu, dan kesalahan itu nggak akan ketahuan sampai kamu cocokin sama uang di laci.
Pakai SUMIFS di sheet rekap. Rumusnya menjumlahkan kolom total dengan syarat kolom tanggal sama dengan tanggal yang kamu tulis di sheet rekap. Bikin daftar tanggal di satu kolom, tarik rumusnya ke bawah, dan omzet harian sebulan langsung kelihatan. Cara ini lebih aman daripada nambah baris subtotal di tengah data mentah.
Perlu kalau kamu mau tau untungnya, bukan cuma omzetnya. Tambahin satu kolom harga modal per unit di sebelah kanan, terus bikin kolom laba berisi total dikurangi harga modal dikali jumlah. Dari situ kamu bisa lihat produk mana yang ramai tapi tipis marginnya. Kalau baru mulai, catat omzet dulu sebulan, baru tambahin kolom modal.
Ringkasnya:
Buka spreadsheet sekarang, ketik delapan judul kolomnya, terus isi transaksi hari ini. Besok pagi kamu udah punya angka omzet pertama yang beneran datang dari datamu sendiri.
Kalau nanti mau nampilin angkanya dalam bentuk grafik, lanjut ke cara bikin dashboard Excel. Buat kerangka yang lebih lengkap, ambil template laporan penjualan Excel.
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.