TL;DR
Analisis penjualan dengan pivot table dikerjain dengan naruh dimensi (produk, cabang, tanggal) di area Rows dan angka penjualan di area Values, lalu ganti-ganti susunannya buat tiap pertanyaan. Satu tabel data mentah bisa jawab pertanyaan soal produk terlaris, tren bulanan, kontribusi cabang, sampai jam paling ramai, tanpa nulis satu pun rumus. Syaratnya cuma satu: data mentahnya rapi, satu baris satu transaksi.
Analisis penjualan dengan pivot table dikerjain dengan naruh dimensi kayak produk atau cabang di area Rows, lalu naruh angka penjualan di area Values. Ganti susunannya, ganti pertanyaan yang dijawab. Nggak ada rumus yang perlu ditulis.
Rekap manual biasanya makan 40 menit tiap Senin pagi. Pivot table ngerjain hal yang sama dalam dua menit, dan hasilnya bisa diubah sudut pandangnya sambil bos ngomong di meeting.
Aku pakai data penjualan toko_berkah, 8.257 transaksi dari 3 cabang, buat jawab tujuh pertanyaan yang paling sering muncul.
Pivot table butuh data berbentuk tabel panjang: satu baris satu transaksi, satu kolom satu atribut, dan baris pertama isinya nama kolom. Nggak boleh ada baris kosong di tengah, nggak boleh ada sel yang di-merge, dan nggak boleh ada subtotal nyempil di antara data.
Struktur data toko_berkah:
| tanggal | jam | cabang | kategori | produk | qty | harga_satuan | total | metode_bayar |
|---|---|---|---|---|---|---|---|---|
| 2025-06-01 | 08:14 | Bandung | Sembako | Beras 5kg | 2 | 68.000 | 136.000 | tunai |
| 2025-06-01 | 08:22 | Yogyakarta | Minuman | Teh kotak | 6 | 5.500 | 33.000 | qris |
Tiga hal yang wajib dibenerin sebelum bikin pivot:
Kalau data mentahmu masih berantakan, mampir dulu ke checklist data cleaning sebelum lanjut.
Aturan mainnya gampang. Yang mau kamu lihat per apa, taruh di Rows. Yang mau kamu hitung, taruh di Values.
Di Google Sheets langkahnya mirip: blok data, klik Insert lalu Pivot table, terus atur Rows, Columns, dan Values di panel kanan. Bedanya cuma nama tombol.
Ini pertanyaan paling sering, dan paling sering dijawab salah. Banyak orang jawab pakai jumlah unit terjual, padahal yang ditanya omzet.
Susunan pivot:
produktotal (Sum)Habis itu klik panah di header Row Labels, pilih Value Filters lalu Top 10, ganti angkanya jadi 10 dan pilih Sum of total.
Hasil toko_berkah:
| Produk | Omzet | Unit terjual |
|---|---|---|
| Beras 5kg | Rp 214.880.000 | 3.160 |
| Minyak goreng 2L | Rp 168.420.000 | 4.010 |
| Gula pasir 1kg | Rp 89.760.000 | 5.984 |
| Teh kotak | Rp 21.340.000 | 3.880 |
Lihat baris gula pasir. Unitnya paling banyak, tapi omzetnya nomor tiga. Kalau kamu naruh rak berdasarkan unit terjual, kamu bakal ngasih posisi terbaik ke produk yang nyumbang paling kecil.
Susunan pivot:
tanggaltotal (Sum)Begitu field tanggal masuk ke Rows, Excel versi 2016 ke atas otomatis ngelompokin jadi Tahun, Kuartal, dan Bulan. Kalau nggak otomatis, klik kanan di salah satu tanggal, pilih Group, lalu centang Months dan Years.
Buat nampilin naik-turunnya dalam persen, taruh field total sekali lagi di Values, terus klik kanan kolom kedua, pilih Show Values As lalu % Difference From. Di kotak Base field pilih tanggal, di Base item pilih (previous).
| Bulan | Omzet | Perubahan |
|---|---|---|
| April 2025 | Rp 412.300.000 | |
| Mei 2025 | Rp 498.700.000 | +20,9% |
| Juni 2025 | Rp 433.100.000 | -13,2% |
Lonjakan Mei itu Ramadan dan Lebaran. Jangan panik lihat angka Juni yang turun. Bandinginnya sama Juni tahun sebelumnya, bukan sama Mei.
Cara ngelompokin tanggal lebih detail ada di panduan group tanggal di pivot table.
Susunan pivot:
cabangtotal (Sum), lalu total lagi dengan Show Values As % of Grand Total| Cabang | Omzet | Kontribusi | Jumlah struk | Rata-rata struk |
|---|---|---|---|---|
| Bandung | Rp 682.400.000 | 44,1% | 3.104 | Rp 219.800 |
| Yogyakarta | Rp 511.900.000 | 33,1% | 3.420 | Rp 149.700 |
| Surabaya | Rp 352.800.000 | 22,8% | 1.733 | Rp 203.600 |
Angka rata-rata struk didapat dengan naruh total di Values lalu ganti Summarize by jadi Average.
Yogyakarta punya struk terbanyak tapi rata-rata belanjanya paling kecil, selisih Rp 70.100 dari Bandung. Kalau Yogyakarta bisa naikin rata-rata struk Rp 20.000 aja lewat penawaran paket, tambahannya Rp 68,4 juta.
Kolom jam biasanya kesimpen sebagai waktu penuh, misalnya 08:14. Kamu perlu jamnya doang.
Tambahin kolom bantu di data mentah:
=HOUR(B2)
Susunan pivot:
jam_bulattotal (Sum) dan total (Count)| Jam | Jumlah struk | Omzet |
|---|---|---|
| 07:00 | 412 | Rp 54.200.000 |
| 08:00 | 988 | Rp 141.700.000 |
| 16:00 | 1.204 | Rp 289.400.000 |
| 17:00 | 1.386 | Rp 341.900.000 |
| 20:00 | 318 | Rp 38.600.000 |
Jam 16:00 sampai 18:00 nyumbang 40,8% omzet harian dalam 3 jam. Toko_berkah geser jadwal shift kasir tambahan dari jam 10 pagi ke jam 4 sore setelah lihat tabel ini.
Ini pakai dua dimensi sekaligus.
kategoritanggal (dikelompokkan per bulan)total (Sum)| Kategori | April | Mei | Juni | Tren |
|---|---|---|---|---|
| Sembako | Rp 248,1 jt | Rp 311,4 jt | Rp 262,0 jt | musiman |
| Minuman | Rp 61,2 jt | Rp 74,8 jt | Rp 83,1 jt | naik terus |
| Perawatan | Rp 58,9 jt | Rp 59,4 jt | Rp 57,8 jt | datar |
| Snack | Rp 44,1 jt | Rp 53,1 jt | Rp 30,2 jt | turun tajam |
Minuman naik 35,8% dalam tiga bulan sementara total omzet toko cuma naik 5%. Kategori kecil yang tumbuh kencang gini gampang kelewat kalau kamu cuma lihat total.
Snack turun 43% di Juni. Setelah dicek ke kolom produk, ternyata dua merek keripik habis stok tiga minggu.
metode_bayartotal (Average), total (Count)| Metode bayar | Jumlah struk | Rata-rata nilai |
|---|---|---|
| Tunai | 4.612 | Rp 118.400 |
| QRIS | 2.881 | Rp 241.700 |
| Transfer bank | 764 | Rp 486.200 |
Rata-rata belanja pakai QRIS dua kali lipat tunai. Ini pola yang konsisten di ketiga cabang toko_berkah.
Jangan langsung nyimpulin QRIS yang bikin orang belanja lebih banyak. Bisa juga orang yang belanja gede emang lebih milih nggak bawa uang tunai. Ini korelasi, bukan sebab. Bedanya dijelasin di artikel korelasi vs kausalitas.
Pivot table bawaan nggak bisa ngerjain ini langsung, tapi ada jalan pintas kalau data kamu punya nomor struk.
no_strukkategoriqty (Count)Habis itu salin hasilnya ke sheet baru sebagai nilai, dan hitung berapa struk yang punya isi di dua kategori sekaligus.
Hasil toko_berkah: dari 3.104 struk cabang Bandung, ada 1.187 struk yang isinya Sembako plus Minuman. Itu 38,2%.
Sementara Sembako plus Perawatan cuma 214 struk, atau 6,9%. Rak minuman ditaruh di jalur menuju kasir, rak perawatan di lorong terpisah. Setelah rak perawatan dipindah ke seberang rak sembako, angkanya naik ke 11,4% dalam sebulan.
Buat analisis kombinasi produk yang lebih serius, kerjain di SQL, bukan Excel.
Penyebabnya selalu sama: ada sel teks atau kosong di kolom angka. Bersihin dulu kolomnya, baru klik kanan di Values dan ganti ke Sum.
Pivot table nggak update sendiri. Tekan Alt + F5 setiap habis ubah data mentah. Detailnya ada di panduan refresh pivot table.
Kalau sumbernya A1:I8258, baris ke-8259 nggak bakal masuk. Ubah data jadi Table dulu pakai Ctrl + T.
Tanggal 12 Juli dibandingin sama Juni penuh jelas keliatan anjlok. Bandingin periode yang panjangnya sama, atau pakai rata-rata harian.
Total omzet toko_berkah Juni turun 13,2%, tapi kategori minuman naik 11,1% di periode yang sama. Pecah dulu per dimensi sebelum ambil kesimpulan.
Karena Excel nemu sel kosong atau teks di kolom angkamu. Begitu ada satu sel yang isinya teks, Excel nganggap kolom itu bukan numerik dan otomatis pilih Count. Cek kolomnya pakai filter, cari sel yang isinya spasi, tanda strip, atau angka yang kesimpen sebagai teks. Setelah dibersihin, klik kanan di area Values, pilih Value Field Settings, ganti ke Sum.
Klik kanan angka di area Values, pilih Show Values As, lalu pilih % of Grand Total buat kontribusi terhadap total keseluruhan, atau % of Parent Row Total kalau kamu punya dua level baris. Kamu juga bisa naruh field yang sama dua kali di Values, satu sebagai rupiah dan satu sebagai persen. Ini bikin tabelmu langsung kebaca tanpa kalkulator.
Bisa. Taruh field nilai transaksi di area Values, lalu klik kanan dan pilih Value Field Settings, ganti Summarize by jadi Average. Tapi hati-hati kalau datamu punya nilai ekstrem, karena rata-rata bakal ketarik. Pivot table bawaan Excel nggak bisa ngitung median, jadi kalau kamu butuh median, pakai rumus MEDIAN di luar pivot atau Power Pivot dengan DAX.
Pivot table nggak update otomatis. Kamu harus klik kanan di dalam pivot lalu pilih Refresh, atau tekan Alt lalu F5. Kalau kamu nambah baris baru di bawah data lama dan pivot-nya tetap nggak nangkep, artinya rentang sumbernya masih fix. Ubah data mentahmu jadi Table lewat Ctrl+T dulu, baru bikin pivot dari situ, biar rentangnya melar sendiri.
Excel modern sanggup sampai 1.048.576 baris per sheet, dan pivot table bisa ngolah segitu walau bakal terasa berat di atas 300 ribu baris. Kalau datamu lebih besar dari itu, pindah ke Power Pivot yang nyimpen data di model data, bukan di sheet. Cara lain, agregasi dulu di sumbernya pakai SQL, baru hasilnya yang ringkas dimasukin ke Excel.
Tiga hal yang paling ngaruh dari tujuh pertanyaan di atas:
Kalau kamu mau ngerti tiap area di panel PivotTable Fields lebih pelan, mulai dari panduan dasar pivot table Excel. Referensi resmi tiap opsi Value Field Settings ada di dokumentasi Microsoft.
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.