TL;DR
Laporan stok barang gudang multi-lokasi butuh satu kolom kode lokasi di tiap baris transaksi, bukan sheet terpisah per gudang. Dengan struktur itu, saldo per rak bisa dihitung pakai SUMIFS dan rekapnya tinggal ditarik lewat pivot table. Kode lokasi yang rapi berbentuk gudang, zona, rak, lalu baris, misalnya GDG-A-R03-B02, supaya barang yang sama di dua rak tetap kelacak terpisah.
Laporan stok gudang multi-lokasi cuma butuh satu tambahan dibanding laporan stok biasa: kolom kode lokasi di tiap baris transaksi.
Bikin sheet terpisah per gudang kelihatan rapi di awal. Tiga bulan kemudian kamu punya lima sheet dengan rumus beda-beda, dan nggak ada yang berani ngubah salah satunya.
Di bawah ini struktur kolom yang jalan buat banyak rak dan banyak lokasi, cara nyusun kode lokasi, rumus saldo per rak, plus contoh gudang yang selisih opname-nya turun dari 3,1 persen jadi 0,6 persen.
Laporan stok gudang multi-lokasi adalah catatan barang masuk dan keluar yang nyimpan informasi posisi barang, bukan cuma jumlahnya. Tiap baris transaksi bawa kode lokasi, jadi kamu tahu bukan cuma sisa 40 dus, tapi 25 dus di rak A3 dan 15 dus di gudang cabang.
Bedanya sama laporan stok toko kecil ada di satu hal. Di toko, barang cuma ada di satu tempat. Di gudang, barang yang sama bisa nyebar di beberapa rak dan pindah-pindah.
Tanpa kode lokasi, kamu masih tahu total stok, tapi nggak tahu di mana harus ambil barangnya. Waktu pengambilan jadi lama, dan selisih opname jadi susah ditelusuri.
Tujuh kolom ini yang inti buat tabel transaksi gudang. Semua baris masuk dan keluar ditulis di satu tabel yang sama, dibedakan lewat kolom jenis transaksi. Struktur ini yang bikin rekap per rak, per gudang, atau per barang bisa ditarik tanpa ngubah data.
| Kolom | Isi | Contoh |
|---|---|---|
| Tanggal | Tanggal transaksi | 2025-08-07 |
| No referensi | Nomor surat jalan atau nota | SJ-2508-114 |
| Kode barang | Identitas unik barang | BRG-014 |
| Kode lokasi | Posisi barang di gudang | GDG-A-R03-B02 |
| Jenis | Masuk, keluar, atau pindah | Masuk |
| Jumlah | Kuantitas dalam satuan tetap | 24 |
| Petugas | Siapa yang mencatat | Rahmat |
Kolom petugas sering dianggap nggak penting. Waktu ada selisih 12 dus dan kamu perlu tanya siapa yang terakhir pegang, kolom itu yang nolong.
Nama barang, harga beli, dan kategori jangan ditaruh di tabel ini. Simpan di tabel master barang terpisah, lalu tarik pakai lookup waktu bikin laporan.
Susun kode dari satuan terbesar ke terkecil: gudang, zona, rak, baris. Panjangnya dibikin seragam supaya gampang diurut, difilter, dan dipotong pakai fungsi teks. Hindari spasi, pakai tanda hubung sebagai pemisah.
GDG-A-R03-B02
│ │ │ └─ baris ke-2 dari bawah
│ │ └────── rak nomor 3
│ └────────── zona A
└────────────── gudang utama
Kalau kamu punya dua lokasi fisik, bedakan di segmen pertama: GDU buat gudang utama dan GDC buat gudang cabang.
Kode seragam ini yang bikin rekap per zona gampang nanti. Ambil potongan kodenya pakai MID, lalu jadikan kolom bantu:
=MID(D2,5,1)
Rumus itu narik huruf zona dari kode lokasi di kolom D. Sekarang kamu bisa pivot per zona tanpa ngubah satu pun data lama.
Satu aturan yang sering dilanggar: sekali kode dibuat, jangan diubah artinya. Rak R03 yang tahun lalu berarti rak paling kiri nggak boleh tiba-tiba jadi rak tengah, soalnya data lama ikut jadi salah.
Pakai SUMIFS dengan dua kriteria, yaitu kode barang dan kode lokasi. Hitung total masuk dan total keluar secara terpisah, lalu kurangkan. Hasilnya saldo barang itu di rak itu, dan angkanya update sendiri tiap ada baris baru.
Anggap sheet Transaksi punya kode barang di C, kode lokasi di D, jenis di E, dan jumlah di F. Di sheet rekap, kode barang ada di A2 dan kode lokasi di B2.
Total masuk:
=SUMIFS(Transaksi!$F:$F, Transaksi!$C:$C, $A2, Transaksi!$D:$D, $B2, Transaksi!$E:$E, "Masuk")
Total keluar:
=SUMIFS(Transaksi!$F:$F, Transaksi!$C:$C, $A2, Transaksi!$D:$D, $B2, Transaksi!$E:$E, "Keluar")
Saldo:
=C2-D2
Buat saldo satu barang di semua lokasi, hapus kriteria kode lokasinya:
=SUMIFS(Transaksi!$F:$F, Transaksi!$C:$C, $A2, Transaksi!$E:$E, "Masuk")
-SUMIFS(Transaksi!$F:$F, Transaksi!$C:$C, $A2, Transaksi!$E:$E, "Keluar")
Dua angka itu harus cocok waktu semua lokasi dijumlahkan. Kalau nggak cocok, biasanya ada baris dengan kode lokasi salah ketik. Penjelasan kriteria bertingkat ada di panduan fungsi SUMIFS.
Catat sebagai dua baris dengan nomor referensi yang sama: satu baris keluar dari rak asal, satu baris masuk ke rak tujuan. Total stok gudang nggak berubah, tapi saldo per rak ikut bergeser. Jangan cuma ganti kode lokasi di baris lama, soalnya jejak perpindahannya hilang.
| Tanggal | Referensi | Barang | Lokasi | Jenis | Jumlah |
|---|---|---|---|---|---|
| 2025-08-07 | PDH-0042 | BRG-014 | GDU-A-R03-B02 | Keluar | 12 |
| 2025-08-07 | PDH-0042 | BRG-014 | GDU-B-R07-B01 | Masuk | 12 |
Nomor referensi yang sama bikin pasangan ini gampang dicari waktu ada selisih. Kalau muncul baris keluar tanpa pasangan masuknya, kamu langsung tahu di mana putusnya.
Aku pakai data toko_berkah dari dataset ngulikdata, yang punya gudang utama di Semarang dan gudang cabang di Ungaran. Total 142 jenis barang tersebar di 36 rak.
Sebelum ada kolom kode lokasi, catatan stok cuma nyimpan jumlah total per barang. Waktu stok opname dijalankan, selisih antara catatan dan hitungan fisik ada di angka 3,1 persen dari total unit.
Setelah kode lokasi dipasang dan perpindahan dicatat dua baris, ketahuan penyebabnya:
| Temuan | Jumlah | Dampak |
|---|---|---|
| Barang tercatat di dua rak tanpa catatan pindah | 18 jenis | 214 unit nggak jelas posisinya |
| Baris keluar tanpa pasangan masuk | 9 baris | Barang pindah tapi nggak sampai |
| Salah ketik kode lokasi | 23 baris | Saldo rak kelihatan minus |
Setelah tiga hal itu dibenerin dan pencatatan dua baris diterapkan selama satu kuartal, selisih stok opname turun dari 3,1 persen ke 0,6 persen. Nggak ada software baru yang dibeli, cuma satu kolom tambahan dan satu aturan pencatatan.
Efek sampingnya juga kerasa di lantai gudang. Waktu ambil barang buat satu surat jalan turun karena petugas nggak perlu keliling nyari rak.
Pakai pivot table dengan kode lokasi di baris dan jumlah di area nilai, lalu tambahkan jenis transaksi sebagai kolom. Hasilnya tabel masuk dan keluar per rak dalam satu tarikan. Buat rekap per gudang, taruh kolom bantu berisi segmen pertama kode lokasi.
Kolom bantu gudang bisa diambil pakai LEFT:
=LEFT(D2,3)
Buat ngitung berapa jenis barang yang nyimpen di satu rak, pakai COUNTIFS di sheet rekap:
=COUNTIFS(Transaksi!$D:$D, $B2)
Rak dengan jumlah jenis barang terlalu banyak biasanya rak yang paling sering salah ambil. Itu kandidat pertama buat ditata ulang. Langkah bikin pivot-nya ada di panduan pivot table Excel, dan struktur kolom dasarnya aku bahas di template stok barang Excel.
Pasang conditional formatting di kolom saldo dengan tiga aturan sederhana. Saldo minus jadi merah, saldo nol jadi abu, dan saldo di atas kapasitas rak jadi kuning.
Saldo minus itu sinyal paling penting. Angkanya mustahil secara fisik, jadi pasti ada baris yang salah lokasi atau ada barang keluar yang nggak pernah tercatat masuk.
Kalau kamu nyimpan kapasitas maksimum tiap rak di tabel master lokasi, tambahkan kolom status:
=IF(E2<0,"CEK DATA",IF(E2>F2,"OVERLOAD","Aman"))
Kolom E saldo, kolom F kapasitas rak. Sekali lihat, kamu tahu rak mana yang perlu didatangi hari ini.
Bikin satu sheet per gudang. Rumusnya jadi berlipat dan tiap nambah lokasi kerjaannya nambah lagi. Satu tabel dengan kolom lokasi jauh lebih gampang dirawat.
Ganti kode lokasi di baris lama waktu barang pindah. Jejak perpindahannya hilang, dan selisih jadi mustahil ditelusuri. Selalu catat dua baris.
Ngetik kode lokasi manual. Salah satu huruf aja bikin saldo rak kacau. Pakai data validation dengan daftar kode dari tabel master lokasi.
Nyimpan nama dan harga barang di tabel transaksi. Waktu harga berubah, kamu perlu ngedit ratusan baris. Simpan di master barang, tarik pakai lookup.
Nggak pernah rekonsiliasi total per lokasi dengan total keseluruhan. Cek ini sebulan sekali. Selisihnya nunjukin ada baris dengan kode lokasi yang salah.
Satu sheet gabungan dengan kolom kode lokasi jauh lebih gampang dirawat. Kalau tiap gudang punya sheet sendiri, kamu perlu ngulang rumus dan rekap di tiap sheet. Dengan satu tabel transaksi plus kolom lokasi, nambah gudang baru cuma berarti nambah kode, dan rekap per gudang tetap bisa ditarik pakai pivot.
Pakai urutan dari satuan terbesar ke terkecil: gudang, zona, rak, baris. Contohnya GDU-A-R03-B02. Panjangnya seragam supaya gampang diurut dan difilter, dan hindari spasi karena rawan salah ketik. Kalau nanti butuh rekap per zona, tinggal potong kodenya pakai fungsi teks.
Pakai SUMIFS dengan kriteria kode barang dan kode lokasi, sekali buat baris masuk dan sekali buat baris keluar, lalu kurangkan hasilnya. Jangan isi saldo manual, soalnya tiap perpindahan barang bakal bikin angkanya meleset. Rumus yang sama bisa dipakai buat saldo total dengan cara menghapus kriteria lokasinya.
Catat sebagai dua baris dengan nomor referensi sama: satu baris keluar dari rak asal dan satu baris masuk ke rak tujuan. Total stok tetap, saldo per rak ikut berubah, dan jejak perpindahannya kesimpan. Kalau muncul baris keluar tanpa pasangan masuk, kamu langsung tahu di mana putusnya.
Waktu transaksi harian udah ratusan baris, banyak orang input bareng dari lokasi berbeda, atau kamu butuh riwayat perubahan tiap baris. Selama gudangmu masih puluhan rak dengan input terkendali, spreadsheet plus struktur kolom yang benar masih sanggup dan jauh lebih murah.
Tiga hal yang perlu kamu bawa:
Buka file stokmu sekarang, tambahin kolom kode lokasi, dan isi buat rak yang paling sering dipakai dulu. Nggak perlu langsung semua rak, mulai dari sepuluh yang paling ramai.
Buat referensi rumus resmi, cek dokumentasi fungsi SUMIFS dari Microsoft. Kalau kamu juga butuh ngukur seberapa cepat stok muter, lanjut ke analisis perputaran persediaan, dan buat pencocokan data antar tabel ada fungsi VLOOKUP.
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.