TL;DR
Aplikasi kasir Excel sederhana bisa dibangun dari empat sheet: Produk berisi daftar barang dan harga, Kasir sebagai layar transaksi, Transaksi sebagai arsip semua penjualan, dan Rekap untuk laporan harian. Kuncinya ada di VLOOKUP yang narik nama dan harga barang begitu kode diketik, dibungkus IFERROR supaya kode salah nggak bikin layar penuh pesan error. Data Form bawaan Excel dipakai buat nyimpen transaksi baris demi baris tanpa perlu makro.
Aplikasi kasir Excel sederhana adalah satu file spreadsheet berisi daftar produk, layar transaksi, arsip penjualan, dan rekap harian, yang dihubungkan pakai rumus pencarian supaya harga muncul sendiri begitu kode barang diketik.
Buat toko dengan satu meja kasir dan kurang dari 300 jenis barang, ini udah cukup. Nggak perlu langganan bulanan, nggak perlu internet.
Di bawah ini susunan lengkapnya, dari sheet pertama sampai rekap yang bisa kamu lihat tiap tutup toko.
Aplikasi kasir Excel adalah kumpulan sheet yang saling terhubung buat mencatat penjualan satu per satu, menghitung total dan kembalian, lalu menyimpan riwayatnya biar bisa direkap. Semuanya jalan pakai rumus bawaan, tanpa makro dan tanpa pemrograman.
Cocok kalau kondisimu begini:
Nggak cocok kalau kamu butuh dua kasir jalan barengan, butuh integrasi pembayaran digital, atau punya lebih dari satu gudang. Di titik itu, aplikasi kasir betulan lebih murah daripada waktu yang kamu buang.
Empat sheet, masing-masing punya satu tugas. Jangan gabung, karena begitu digabung kamu kehilangan kemampuan ngerekap.
| Sheet | Isinya | Diisi kapan |
|---|---|---|
| Produk | Kode, nama, harga jual, harga beli, stok awal | Sekali di awal, diperbarui saat kulakan |
| Kasir | Layar transaksi berjalan, total, bayar, kembalian | Tiap ada pembeli |
| Transaksi | Arsip semua baris penjualan | Otomatis lewat Data Form |
| Rekap | Penjualan harian, produk terlaris, sisa stok | Baca aja, isinya rumus |
MG500 buat minyak goreng 500 ml. Kode nggak boleh berubah selamanya, walaupun nama barangnya ganti.=COUNTIF($A:$A, A2), hasilnya harus 1 di semua baris.Kalau kamu punya barcode, isi kolom Kode dengan angka barcodenya. Pemindai barcode di pasaran cara kerjanya sama dengan ngetik cepat lalu menekan Enter, jadi dia langsung jalan tanpa pengaturan tambahan.
Sheet Kasir cuma butuh enam kolom. Kamu ngetik dua kolom, sisanya keisi sendiri.
| Kolom | Isi | Diketik atau rumus |
|---|---|---|
| B | Kode barang | Diketik atau dipindai |
| C | Nama barang | Rumus |
| D | Harga satuan | Rumus |
| E | Jumlah | Diketik |
| F | Subtotal | Rumus |
Nama barang di C5, dibungkus IFERROR biar kode salah ketik nggak bikin layar penuh tanda pagar:
=IF($B5="", "",
IFERROR(VLOOKUP($B5, Produk!$A:$E, 2, FALSE),
"Kode nggak ketemu"))
Harga satuan di D5, kolom ketiga dari tabel Produk:
=IF($B5="", "",
IFERROR(VLOOKUP($B5, Produk!$A:$E, 3, FALSE), 0))
Argumen keempat wajib FALSE. Kalau dikosongkan atau diisi TRUE, Excel bakal nyari padanan terdekat dan bisa ngasih harga barang lain. Penjelasan tiap argumennya ada di halaman fungsi VLOOKUP, dan dokumentasi resminya di dukungan Microsoft.
Subtotal di F5:
=IF($B5="", "", $D5 * $E5)
Total, bayar, dan kembalian di bawah tabel:
' Total belanja
=SUM($F$5:$F$24)
' Kembalian, F25 total dan F26 uang yang dibayar
=IF($F$26="", "", $F$26 - $F$25)
' Peringatan kalau uangnya kurang
=IF($F$26 < $F$25, "Uang kurang", "")
Kalau Excelmu versi Microsoft 365, XLOOKUP lebih enak dipakai karena nggak perlu ngitung nomor kolom dan udah punya penanganan kesalahan sendiri:
=XLOOKUP($B5, Produk!$A:$A, Produk!$B:$B, "Kode nggak ketemu")
Buat menghindari salah ketik kode, pasang Data Validation di kolom B dengan sumber daftar dari kolom Kode di sheet Produk. Kasirmu tinggal milih dari daftar.
Excel punya kotak isian bawaan bernama Data Form yang bisa nambah baris ke tabel tanpa makro. Banyak yang nggak tahu karena tombolnya nggak ada di ribbon.
Batasannya ada dua dan sebaiknya kamu tahu sejak awal. Data Form cuma sanggup menangani sampai 32 kolom, dan dia nggak tersedia di Excel untuk Mac maupun Google Sheets.
Di Google Sheets, gantinya Google Form yang jawabannya nyambung ke sheet. Bedanya, isian di Google Form nggak bisa narik harga otomatis, jadi kolom harga tetap diisi lewat rumus di sheet tujuan.
Cara paling sederhana tanpa dua-duanya: salin baris dari sheet Kasir, lalu tempel sebagai nilai di baris kosong sheet Transaksi. Tambahkan nomor struk dan tanggal, lalu bersihkan sheet Kasir buat pembeli berikutnya.
Sheet Rekap isinya rumus semua. Sekali dipasang, kamu tinggal baca.
Total penjualan hari ini:
=SUMIFS(Transaksi!$G:$G,
Transaksi!$A:$A, ">="&TODAY(),
Transaksi!$A:$A, "<"&TODAY()+1)
Jumlah struk hari ini, dihitung dari nomor struk yang unik:
=SUMPRODUCT((Transaksi!$A$2:$A$5000>=TODAY())
*(Transaksi!$A$2:$A$5000
Sisa stok per barang, dihitung dari stok awal dikurangi yang udah kejual:
=Produk!$E2 - SUMIF(Transaksi!$C:$C, Produk!$A2, Transaksi!$E:$E)
Peringatan stok menipis:
=IF(H2 <= 5, "Kulakan", "Aman")
Nama barang terlaris, pakai pasangan INDEX dan MATCH:
=INDEX(Produk!$B:$B, MATCH(MAX($I$2:$I$300), $I$2:$I$300, 0) + 1)
Argumen kriteria ganda di SUMIFS yang bikin rekap per tanggal jalan tanpa perlu filter manual.
Aku pakai dataset ngulikdata toko_berkah, warung kelontong di Semarang dengan 212 jenis barang. Ini rekap minggu pertama September 2025.
| Hari | Jumlah struk | Total penjualan | Rata-rata per struk |
|---|---|---|---|
| Senin | 84 | 2.148.000 | 25.571 |
| Selasa | 79 | 1.976.000 | 25.013 |
| Rabu | 91 | 2.310.000 | 25.385 |
| Kamis | 88 | 2.244.000 | 25.500 |
| Jumat | 106 | 2.968.000 | 28.000 |
| Sabtu | 134 | 4.154.000 | 31.000 |
| Minggu | 112 | 3.248.000 | 29.000 |
Total seminggu Rp 19.048.000 dari 694 struk.
Yang menarik bukan Sabtu jadi hari tersibuk, itu udah ditebak pemiliknya. Yang baru ketahuan setelah rekapnya jalan: rata-rata belanja per struk di Sabtu Rp 31.000, sementara Selasa cuma Rp 25.013. Selisihnya 24%.
Waktu ditelusuri ke sheet Transaksi, penyebabnya barang berukuran besar. Minyak 2 liter dan beras 5 kilogram hampir cuma laku Sabtu dan Minggu.
Keputusan yang muncul dari situ: stok kemasan besar ditambah menjelang akhir pekan, dan rak depan dipakai buat kemasan kecil di hari kerja. Kesimpulan itu nggak bakal muncul dari catatan yang cuma nyimpen total harian.
MG500 dan MG500 dianggap dua barang berbeda. Bersihkan pakai TRIM waktu impor.Bisa, tapi ke printer biasa dengan ukuran kertas yang kamu atur sendiri, bukan ke printer struk termal. Caranya, atur area cetak di sheet Kasir supaya cuma bagian daftar belanja dan total yang ikut tercetak, lalu simpan sebagai pengaturan tetap. Kalau kamu memang butuh struk termal dengan potong otomatis, itu titik di mana aplikasi kasir betulan jadi lebih masuk akal daripada spreadsheet.
Sampai sekitar 300 jenis barang, VLOOKUP masih terasa seketika. Di atas 1.000 baris produk dengan rumus di banyak kolom, file mulai terasa berat waktu dibuka, terutama kalau rumusmu pakai rujukan satu kolom penuh seperti A titik dua A. Perbaikan paling cepat adalah membatasi rentang rumus ke jumlah baris yang beneran ada, misalnya A2 sampai A400, bukan seluruh kolom.
Di Excel yang disimpan lokal, nggak bisa dengan aman. Dua orang yang membuka file yang sama bakal saling menimpa. Kalau memang butuh dua meja kasir, pindahkan filenya ke Google Sheets yang mendukung banyak orang mengedit sekaligus, dan buat sheet Kasir terpisah untuk tiap orang yang keduanya nyimpen ke sheet Transaksi yang sama. Nomor struk harus diberi awalan berbeda per kasir biar nggak bentrok.
Karena baris transaksimu nyimpen rumus VLOOKUP, bukan angka. Setiap kali file dibuka, rumusnya ngambil harga terbaru dari sheet Produk. Perbaikannya, saat baris transaksi dipindahkan ke arsip, tempel sebagai nilai supaya angkanya beku. Ini juga alasan kenapa sheet Kasir dan sheet Transaksi harus dipisah, satu buat menghitung dan satu buat menyimpan.
Buat kebutuhan yang aku bahas di sini, nggak perlu. Data Form bawaan udah menangani penambahan baris, dan rumus udah menangani perhitungan serta rekap. Makro baru masuk akal kalau kamu mau satu tombol yang sekaligus nyimpen, ngosongin layar kasir, dan naikkan nomor struk. Konsekuensinya, filemu harus disimpan dengan format xlsm dan sebagian kantor memblokir file jenis itu.
Tiga hal yang perlu kamu bawa. Argumen FALSE di VLOOKUP wajib, tanpa itu harganya bisa salah diam-diam. Kode barang harus permanen walaupun namanya berubah. Dan harga di baris transaksi harus dibekukan sebagai nilai, bukan rumus.
Sore ini bikin dulu sheet Produk dengan 20 barang paling laku. Sisanya bisa nyusul sambil jalan.
Kalau kamu masih asing sama pencarian data antar sheet, mulai dari rumus VLOOKUP Excel. Buat sisi stoknya, cek aplikasi stok barang Excel. Dan kalau kamu mau nggarap laporannya lebih dalam, lanjut ke laporan penjualan dari data kasir.
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.