BCDEFG fx Σ
=XLOOKUP(A2,Kode,Harga)
=SUMIFS(Actual,Status,"COMPLETED")
=FILTER(Data,Status="DELAY")
EXCEL REFERENCE BOOK · PRACTICAL TUTORIAL
MASTER

RUMUS
EXCEL

Panduan Lengkap 300+ Rumus Excel
dari Basic hingga Advanced

Administrasi • Finance • HR • Project • Data Analysis • Dashboard
DITULIS OLEHPICTOR ROITO TUMANGGOR

Disclaimer

Buku ini disusun sebagai bahan belajar dan referensi kerja. Penulis sudah berusaha memastikan setiap rumus, contoh data, dan hasil perhitungan benar. Meski begitu, beberapa hal perlu Anda perhatikan sebelum memakai rumus di buku ini untuk pekerjaan nyata.

Penulis dan pihak mana pun yang terlibat dalam penyusunan buku ini tidak bertanggung jawab atas kerugian yang timbul akibat penggunaan informasi di dalamnya. Selalu uji rumus pada salinan data sebelum dipakai di file kerja utama.

Kata Pengantar

Hampir semua pekerjaan kantor menyentuh Excel. Rekap penjualan, absensi karyawan, monitoring proyek, daftar material gudang, sampai laporan untuk manajemen biasanya berawal dari satu sheet yang barisnya terus bertambah.

Waktu kerja paling banyak habis untuk hal yang sebenarnya bisa diotomatiskan: menghitung manual, menyalin nilai satu per satu dari sheet lain, lalu mengecek ulang karena takut ada yang terlewat. Sebagian besar pekerjaan itu cukup diselesaikan dengan beberapa rumus yang tepat.

Buku ini saya susun sebagai teman kerja. Anda bisa membacanya berurutan dari BAB 1 kalau sedang belajar dari dasar. Anda juga bisa langsung membuka BAB tertentu saat lupa cara menulis XLOOKUP, bingung kenapa VLOOKUP menghasilkan #N/A, atau perlu contoh cepat untuk menghitung umur proyek.

Setiap rumus disajikan dengan pola yang sama: contoh data, rumus, hasil, lalu penjelasan. Penjelasan teori sengaja dibuat pendek. Yang lebih penting adalah Anda bisa langsung menyalin rumusnya, mengganti referensi cell sesuai data sendiri, dan melihat hasilnya bekerja.

Di akhir setiap BAB ada studi kasus dari situasi kerja yang umum: laporan penjualan, monitoring status proyek, pembersihan database customer, sampai dashboard eksekutif. Latihan bertingkat di bagian akhir buku membantu Anda menguji pemahaman sebelum memakainya di file kerja.

Terima kasih sudah memilih buku ini. Semoga pekerjaan Anda dengan Excel jadi lebih cepat, lebih rapi, dan lebih sedikit lembur.

Pictor Roito Tumanggor
Penulis

Tentang Penulis

Pictor Roito Tumanggor
Pictor Roito Tumanggor
TELEKOMUNIKASI · PROJECT MANAGEMENT · DATA PROCESSING

Pictor Roito Tumanggor merupakan profesional di bidang telekomunikasi, project management, data processing, dan digitalisasi sistem kerja yang memiliki pengalaman menggunakan Excel untuk monitoring, reporting, analisis data, dashboard, dan pengendalian proyek.

Melalui MASTER RUMUS EXCEL, penulis membagikan kumpulan formula dan teknik Excel yang disusun secara praktis agar dapat langsung diterapkan dalam pekerjaan sehari-hari.

"Jangan hanya belajar rumus Excel. Belajarlah memahami masalah, kemudian gunakan Excel untuk menyelesaikannya."
Pictor Roito Tumanggor

Cara Menggunakan Buku

Buku ini bisa dipakai dengan dua cara. Pemula sebaiknya membaca berurutan dari BAB 1 sampai BAB 10, karena BAB berikutnya memakai konsep dari BAB sebelumnya. Pengguna yang sudah terbiasa dengan Excel bisa langsung melompat ke BAB atau rumus yang sedang dibutuhkan lewat Daftar Isi.

Alur setiap rumus

Semua rumus utama memakai urutan yang sama, jadi Anda cepat menemukan bagian yang dicari:

BagianIsi
Formula CardNama rumus, fungsi singkat, dan syntax
Penjelasan ArgumentArti setiap argument di dalam kurung
Contoh DataTabel data dengan huruf kolom dan nomor baris seperti di Excel
FormulaRumus siap salin
HasilNilai yang keluar dari rumus
PenjelasanCara rumus bekerja langkah demi langkah
Pro Tip, Common Mistake, Real World UseTips kerja, kesalahan umum, dan contoh pemakaian di kantor

Tabel Contoh Data ditampilkan seperti lembar Excel: huruf kolom (A, B, C...) di atas dan nomor baris di kiri. Baris 1 selalu judul kolom. Dengan begitu, referensi seperti C2:C6 di rumus bisa langsung Anda cocokkan dengan posisi datanya.

Arti info card

IkonNamaKapan muncul
💡PRO TIPCara kerja yang lebih cepat atau lebih aman
⚠️WARNING / COMMON MISTAKEKesalahan yang sering terjadi dan cara menghindarinya
📌IMPORTANTAturan yang wajib diingat
🚀ADVANCEDTeknik lanjutan untuk pengguna intermediate ke atas
💼REAL WORLDContoh pemakaian di pekerjaan nyata
🧠CHALLENGELatihan untuk menguji pemahaman

Pengaturan regional: koma atau titik koma

Label versi Excel

Rumus tanpa label bisa dipakai di Excel 2010 ke atas. Rumus yang lebih baru diberi label di pojok kanan formula card:

LabelTersedia di
Excel 2013+Excel 2013, 2016, 2019, 2021, 2024, Microsoft 365
Excel 2019+Excel 2019, 2021, 2024, Microsoft 365
Excel 2021+Excel 2021, 2024, Microsoft 365, Excel untuk web
Excel 2024 / 365Excel 2024, Microsoft 365, Excel untuk web

Jika file Anda akan dibuka oleh rekan kerja yang masih memakai Excel 2016 atau lebih lama, hindari fungsi berlabel 2019 ke atas, atau sediakan versi alternatifnya. Hampir setiap fungsi modern di buku ini disertai alternatif untuk Excel versi lama.

Tentang angka "300+ rumus"

Angka 300+ di judul menghitung semua rumus siap pakai di buku ini: rumus di formula card, variasi rumus, kombinasi rumus, rumus studi kasus, rumus di cheat sheet, dan rumus kunci jawaban latihan. Buku ini memuat 132 formula card dengan pembahasan lengkap, lebih dari 800 contoh rumus, dan cheat sheet berisi 162 fungsi.

Tanggal acuan

Contoh yang memakai TODAY() atau NOW() memakai tanggal acuan 15 Juni 2026, kecuali disebutkan lain. Saat Anda mencoba rumusnya, hasil akan mengikuti tanggal di komputer Anda.

Cara berlatih

  1. Buka workbook kosong, lalu ketik ulang tabel Contoh Data persis di posisi yang sama (mulai dari cell A1).
  2. Ketik rumusnya sendiri. Mengetik membuat Anda lebih cepat hafal dibanding menyalin.
  3. Bandingkan hasil dengan bagian Hasil.
  4. Ubah satu angka di data, lalu lihat bagaimana hasil berubah.
  5. Kerjakan latihan di bagian Practice Questions, lalu cocokkan dengan Answer Key.

Daftar Isi

BAB
01

FUNDAMENTAL EXCEL & LOGIKA RUMUS

Sebelum menghafal ratusan fungsi, pahami dulu cara Excel membaca rumus: dari mana data diambil, bagaimana operator dihitung, dan apa yang terjadi saat rumus disalin ke cell lain. BAB ini menjadi fondasi untuk semua BAB berikutnya.

Tujuan Pembelajaran
  • Mengenal istilah dasar: workbook, worksheet, cell, range, table, formula bar, name box
  • Membedakan formula, function, dan syntax
  • Memakai referensi relative, absolute, dan mixed dengan tepat
  • Memahami urutan perhitungan operator
  • Menguasai 7 fungsi dasar yang dipakai setiap hari
Formula Count
7
formula card di BAB ini
Rumus yang Dibahas
SUMPRODUCTAVERAGEMINMAXCOUNTCOUNTA

1.1 Mengenal Excel

Excel menyimpan data dalam struktur bertingkat. Satu file berisi beberapa sheet, satu sheet berisi jutaan cell, dan setiap cell punya alamat unik. Alamat inilah yang dipakai rumus untuk mengambil data.

D2fx=B2*C2
① Name Box② Formula Bar
ABCD
1ProdukQtyHargaTotal
2Laptop57,500,00037,500,000
3Monitor121,850,00022,200,000
IstilahArtiContoh
WorkbookFile Excel secara keseluruhanLaporan_Juni.xlsx
WorksheetSatu lembar kerja di dalam workbookSheet Data, Rekap, Dashboard
RowBaris, ditandai angka di sisi kiriBaris 2
ColumnKolom, ditandai huruf di bagian atasKolom D
CellPertemuan satu kolom dan satu barisD2
RangeKumpulan cell yang berdekatanB2:B6, A1:D6
TableRange yang diubah menjadi Excel Table (Ctrl+T)TabelPenjualan
Formula BarKotak di atas sheet yang menampilkan isi asli cell aktif=B2*C2
Name BoxKotak di kiri formula bar, menampilkan alamat cell aktifD2

Pada gambar di atas, cell aktif adalah D2. Name Box menunjukkan alamatnya, sedangkan Formula Bar menunjukkan rumus di baliknya. Cell D2 sendiri hanya menampilkan hasilnya, 37,500,000.

Excel Table

Range biasa bisa diubah menjadi Excel Table dengan menekan Ctrl+T. Table punya tiga keuntungan yang terasa di pekerjaan harian: format belang otomatis, rumus otomatis terisi ke baris baru, dan referensi berbasis nama kolom (structured reference).

=SUM(TabelPenjualan[Total])
// sama dengan =SUM(D2:D6), tetapi otomatis ikut bertambah saat baris baru ditambahkan

1.2 Mengenal Formula

IstilahArtiContoh
FormulaInstruksi perhitungan yang selalu diawali tanda ==B2*C2
FunctionRumus siap pakai buatan Excel dengan nama tertentuSUM, IF, XLOOKUP
SyntaxAturan penulisan function: nama, tanda kurung, dan urutan argument=ROUND(number, num_digits)
ArgumentNilai yang dimasukkan ke dalam functionB2:B6, 2, "Lunas"

Satu formula bisa berisi beberapa function sekaligus:

=ROUND(AVERAGE(B2:B6), 0)
// AVERAGE menghitung rata-rata, lalu ROUND membulatkannya tanpa desimal

Operator matematika

OperatorArtiContohHasil
+Tambah=10+515
-Kurang=10-55
*Kali=10*550
/Bagi=10/52
^Pangkat=10^2100
%Persen=200*10%20

Operator perbandingan

Operator perbandingan menghasilkan TRUE atau FALSE. Hasil ini menjadi bahan utama fungsi logika di BAB 3.

OperatorArtiContoh (A2 = 75)Hasil
=Sama dengan=A2=75TRUE
<>Tidak sama dengan=A2<>75FALSE
>Lebih besar=A2>80FALSE
<Lebih kecil=A2<80TRUE
>=Lebih besar atau sama dengan=A2>=75TRUE
<=Lebih kecil atau sama dengan=A2<=70FALSE

Operator teks

Tanda & menggabungkan teks. Jika A2 berisi Budi dan B2 berisi Santoso:

=A2&" "&B2
// hasil: Budi Santoso

1.3 Referensi Cell

Saat rumus disalin ke cell lain, Excel menyesuaikan alamat di dalamnya. Tanda dolar ($) dipakai untuk mengunci bagian alamat yang tidak boleh bergeser.

JenisPenulisanSaat disalin ke bawahSaat disalin ke kanan
RelativeA2Baris berubahKolom berubah
Absolute$A$2TetapTetap
Mixed (kunci kolom)$A2Baris berubahTetap
Mixed (kunci baris)A$2TetapKolom berubah

Relative reference

Kolom Total diisi dengan rumus di D2, lalu disalin ke bawah.

ABCD
1ProdukQtyHargaTotal
2Laptop57,500,00037,500,000
3Monitor121,850,00022,200,000
4Keyboard30250,0007,500,000
=B2*C2   // di D2
=B3*C3   // di D3, otomatis bergeser saat disalin
=B4*C4   // di D4

Absolute reference

Komisi sales dihitung dari satu tarif di cell G1. Tarif ini harus dikunci supaya tidak ikut bergeser.

ABCDEFG
1SalesPenjualanKomisiTarif Komisi2.5%
2Andi120,000,0003,000,000
3Bella86,000,0002,150,000
4Candra142,000,0003,550,000
=B2*$G$1   // di C2, lalu salin ke C3:C4

Tanpa tanda dolar, rumus di C3 akan menjadi =B3*G2. Cell G2 kosong, jadi komisi Bella dihitung 0.

Mixed reference

Mixed reference berguna untuk tabel dua arah. Contoh berikut menghitung harga setelah diskon untuk beberapa produk (baris) dan beberapa tingkat diskon (kolom).

ABCD
1Harga \ Diskon5%10%15%
21,000,000950,000900,000850,000
32,500,0002,375,0002,250,0002,125,000
44,000,0003,800,0003,600,0003,400,000
=$A2*(1-B$1)   // di B2, lalu salin ke seluruh B2:D4

$A2 mengunci kolom A (harga selalu diambil dari kolom A), sedangkan B$1 mengunci baris 1 (diskon selalu diambil dari baris judul). Satu rumus cukup untuk mengisi sembilan cell.

1.4 Operator Excel dan Urutan Perhitungan

Excel tidak menghitung dari kiri ke kanan begitu saja. Ada urutan prioritas, mirip aturan matematika di sekolah.

UrutanOperatorKeterangan
1: , spasiOperator referensi (range, gabungan, irisan)
2-Tanda negatif, misalnya -5
3%Persen
4^Pangkat
5* /Kali dan bagi
6+ -Tambah dan kurang
7&Gabung teks
8= <> < > <= >=Perbandingan
FormulaHasilAlasan
=2+3*414Perkalian dihitung lebih dulu
=(2+3)*420Kurung dihitung paling awal
=100-20/49520/4 = 5, lalu 100-5
=-2^24Tanda negatif diproses sebelum pangkat
=0-2^2-4Di sini minus adalah pengurangan, jadi pangkat dihitung dulu

1.5 Formula Dasar

Tujuh fungsi berikut adalah fungsi yang paling sering dipakai di kantor. Hampir semua laporan sederhana bisa dibuat hanya dengan fungsi-fungsi ini.

FORMULA CARD

SUM

Fungsi

Menjumlahkan angka dalam satu atau beberapa range. Teks dan cell kosong diabaikan.

Syntax
=SUM(number1, [number2], ...)
Penjelasan Argument
ArgumentPenjelasan
number1Angka, cell, atau range pertama yang dijumlahkan (wajib)
[number2]Angka, cell, atau range tambahan (opsional, sampai 255 argument)
Contoh Data
AB
1KategoriBiaya
2Listrik2,450,000
3Internet1,200,000
4Air380,000
5ATK725,000
6Konsumsi1,150,000
Formula
=SUM(B2:B6)
Hasil

5,905,000

Penjelasan

Excel menjumlahkan semua angka di B2 sampai B6: 2,450,000 + 1,200,000 + 380,000 + 725,000 + 1,150,000 = 5,905,000.

FORMULA CARD

PRODUCT

Fungsi

Mengalikan semua angka dalam argument. Berguna saat faktor pengalinya lebih dari dua.

Syntax
=PRODUCT(number1, [number2], ...)
Penjelasan Argument
ArgumentPenjelasan
number1Angka atau range pertama yang dikalikan
[number2]Angka atau range tambahan
Contoh Data
ABCD
1ItemQtyHarga SatuanFaktor Diskon
2Kertas A4 (box)12285,00095%
Formula
=PRODUCT(B2:D2)
Hasil

3,249,000

Penjelasan

Excel mengalikan 12 × 285,000 × 95%. Hasil 12 × 285,000 adalah 3,420,000, lalu dikali 0.95 menjadi 3,249,000. Rumus ini sama dengan =B2*C2*D2.

FORMULA CARD

AVERAGE

Fungsi

Menghitung rata-rata aritmatika. Excel menjumlahkan angka lalu membaginya dengan banyaknya angka.

Syntax
=AVERAGE(number1, [number2], ...)
Penjelasan Argument
ArgumentPenjelasan
number1Angka atau range pertama
[number2]Angka atau range tambahan
Contoh Data
AB
1KaryawanNilai Training
2Andi82
3Bella90
4Citra76
5Dimas88
6Eka79
Formula
=AVERAGE(B2:B6)
Hasil

83

Penjelasan

Total nilai adalah 82 + 90 + 76 + 88 + 79 = 415. Ada 5 angka, jadi 415 ÷ 5 = 83.

FORMULA CARD

MIN

Fungsi

Mengambil angka terkecil dari sekumpulan nilai.

Syntax
=MIN(number1, [number2], ...)
Penjelasan Argument
ArgumentPenjelasan
number1Angka atau range pertama
[number2]Angka atau range tambahan
Contoh Data
AB
1VendorHarga Penawaran
2PT Sinar Jaya14,750,000
3CV Mitra Abadi13,980,000
4PT Karya Teknik15,200,000
5CV Prima Solusi14,100,000
Formula
=MIN(B2:B5)
Hasil

13,980,000

Penjelasan

Excel membandingkan keempat harga dan mengembalikan yang paling kecil, yaitu penawaran CV Mitra Abadi. Untuk menampilkan nama vendornya, gunakan kombinasi lookup di BAB 6.

FORMULA CARD

MAX

Fungsi

Mengambil angka terbesar dari sekumpulan nilai.

Syntax
=MAX(number1, [number2], ...)
Penjelasan Argument
ArgumentPenjelasan
number1Angka atau range pertama
[number2]Angka atau range tambahan
Contoh Data
AB
1No TiketWaktu Respon (menit)
2T-10135
3T-10212
4T-10348
5T-10427
6T-10519
7T-10655
Formula
=MAX(B2:B7)
Hasil

55

Penjelasan

Dari enam tiket, waktu respon paling lama adalah 55 menit pada tiket T-106.

FORMULA CARD

COUNT

Fungsi

Menghitung jumlah cell yang berisi angka. Tanggal juga dihitung karena Excel menyimpan tanggal sebagai angka.

Syntax
=COUNT(value1, [value2], ...)
Penjelasan Argument
ArgumentPenjelasan
value1Cell atau range yang dihitung
[value2]Cell atau range tambahan
Contoh Data
AB
1KaryawanJam Lembur
2Rudi3
3Sari
4Tono2
5Umiizin
6Vina4
7Wawan0
Formula
=COUNT(B2:B7)
Hasil

4

Penjelasan

Cell yang berisi angka adalah B2 (3), B4 (2), B6 (4), dan B7 (0). Cell kosong B3 dan teks "izin" di B5 tidak dihitung.

FORMULA CARD

COUNTA

Fungsi

Menghitung cell yang tidak kosong, apa pun isinya: angka, teks, tanggal, nilai logika, bahkan error.

Syntax
=COUNTA(value1, [value2], ...)
Penjelasan Argument
ArgumentPenjelasan
value1Cell atau range yang dihitung
[value2]Cell atau range tambahan
Contoh Data
AB
1KaryawanJam Lembur
2Rudi3
3Sari
4Tono2
5Umiizin
6Vina4
7Wawan0
Formula
=COUNTA(A2:A7)
=COUNTA(B2:B7)
Hasil

6 (jumlah karyawan) dan 5 (jumlah isian jam lembur)

Penjelasan

Kolom A terisi penuh, jadi hasilnya 6. Di kolom B hanya B3 yang kosong. Angka dan teks "izin" sama-sama dihitung, sehingga hasilnya 5. Selisih COUNTA(A2:A7)-COUNTA(B2:B7) = 1 menunjukkan satu karyawan belum mengisi data.

REAL WORLD CASE STUDY

Laporan Penjualan Sederhana

Problem

Admin penjualan diminta membuat laporan singkat penjualan minggu ini untuk supervisor: total omzet, total unit terjual, rata-rata penjualan per produk, produk dengan omzet tertinggi dan terendah, serta jumlah produk yang terjual. Selama ini angka dihitung dengan kalkulator, dan hasilnya sering berbeda saat dicek ulang.

Raw Data
ABCD
1ProdukQtyHargaTotal
2Laptop57,500,000
3Monitor121,850,000
4Keyboard30250,000
5Mouse45120,000
6Printer82,300,000
Formula

Isi kolom Total di D2, lalu salin ke D6:

=B2*C2

Buat ringkasan di area kosong, misalnya kolom F dan G:

Ringkasan (F)Formula (G)
Total Omzet=SUM(D2:D6)
Total Unit=SUM(B2:B6)
Rata-rata Omzet per Produk=AVERAGE(D2:D6)
Omzet Tertinggi=MAX(D2:D6)
Omzet Terendah=MIN(D2:D6)
Jumlah Produk Terjual=COUNT(B2:B6)
Jumlah Baris Produk=COUNTA(A2:A6)
Result
ABCD
1ProdukQtyHargaTotal
2Laptop57,500,00037,500,000
3Monitor121,850,00022,200,000
4Keyboard30250,0007,500,000
5Mouse45120,0005,400,000
6Printer82,300,00018,400,000
RingkasanHasil
Total Omzet91,000,000
Total Unit100
Rata-rata Omzet per Produk18,200,000
Omzet Tertinggi37,500,000
Omzet Terendah5,400,000
Jumlah Produk Terjual5
Jumlah Baris Produk5
Explanation

Kolom Total memakai relative reference, jadi satu rumus di D2 cukup disalin ke bawah. Semua angka ringkasan diambil dari kolom D dan B, sehingga jika ada revisi qty atau harga, seluruh laporan ikut berubah tanpa dihitung ulang.

COUNT(B2:B6) dan COUNTA(A2:A6) sama-sama bernilai 5. Kalau suatu saat hasilnya berbeda, berarti ada produk yang qty-nya belum diisi atau tersimpan sebagai teks. Perbedaan ini bisa dipakai sebagai alarm sederhana.

Answer
=D2*$J$1          // di E2, salin ke E6. J1 berisi 11%
=SUM(E2:E6)       // total PPN
=D2/SUM($D$2:$D$6) // kontribusi Laptop, format sebagai persen

PPN Laptop = 37,500,000 × 11% = 4,125,000. Total PPN = 91,000,000 × 11% = 10,010,000. Kontribusi Laptop = 37,500,000 ÷ 91,000,000 = 41.2%.

BAB
02

RUMUS MATEMATIKA & STATISTIK

Menjumlahkan dengan syarat, membulatkan angka sesuai aturan kantor, mencari nilai tengah, dan menyusun ranking. Rumus di BAB ini adalah alat utama untuk laporan keuangan, penjualan, dan penggajian.

Tujuan Pembelajaran
  • Menjumlahkan data dengan satu atau banyak kriteria
  • Memilih fungsi pembulatan yang tepat untuk harga, pajak, dan jam kerja
  • Membedakan rata-rata, median, dan modus
  • Menyusun top list dan ranking otomatis
  • Menghitung achievement terhadap target
Formula Count
23
formula card di BAB ini
+ 4 fungsi dasar lanjutan dari BAB 1
Rumus yang Dibahas
SUM (3D & Multi-Range)SUMIFSUMIFSSUMPRODUCTABSMODPOWERSQRTINTTRUNCROUNDROUNDUPROUNDDOWNMROUNDCEILINGFLOORAVERAGEIFAVERAGEIFSMEDIANMODELARGESMALLRANK

2.1 Penjumlahan dan Perkalian

FORMULA CARD

SUM (3D & Multi-Range)

Fungsi

Selain menjumlahkan satu range, SUM bisa menjumlahkan beberapa range sekaligus dan cell yang sama di beberapa sheet berurutan (3D reference). Teknik ini cocok untuk rekap bulanan yang datanya dipisah per sheet.

Syntax
=SUM(Sheet_awal:Sheet_akhir!cell)
=SUM(range1, range2, ...)
Penjelasan Argument
ArgumentPenjelasan
Sheet_awal:Sheet_akhirNama sheet pertama dan terakhir. Semua sheet di antaranya ikut dijumlahkan
cellAlamat cell yang sama di setiap sheet
range1, range2Beberapa range terpisah yang dijumlahkan sekaligus
Contoh Data
SheetIsi cell B2 (Total Penjualan)
Jan125,400,000
Feb118,750,000
Mar132,100,000
Formula
=SUM(Jan:Mar!B2)
=SUM(Jan!B2, Feb!B2, Mar!B2)   // cara panjang, hasil sama
Hasil

376,250,000

Penjelasan

Excel mengambil cell B2 dari sheet Jan, Feb, dan Mar, lalu menjumlahkannya: 125,400,000 + 118,750,000 + 132,100,000 = 376,250,000. Karena memakai rentang sheet Jan:Mar, sheet baru yang diletakkan di antara Jan dan Mar otomatis ikut terhitung.

PRODUCT (lanjutan BAB 1)
=PRODUCT(B2:B4)   // B2:B4 berisi faktor pertumbuhan 1.05, 1.08, 1.10

Hasil 1.2474, artinya pertumbuhan gabungan tiga tahun adalah 24.74%. PRODUCT praktis untuk mengalikan faktor pertumbuhan, kurs berantai, atau faktor koreksi. Pembahasan lengkap ada di BAB 1.

FORMULA CARD

SUMIF

Fungsi

Menjumlahkan angka yang memenuhi satu kriteria. Misalnya total penjualan khusus region Jakarta.

Syntax
=SUMIF(range, criteria, [sum_range])
Penjelasan Argument
ArgumentPenjelasan
rangeRange yang diperiksa kriterianya
criteriaSyarat, bisa teks ("Jakarta"), angka (100), operator (">=50000000"), atau alamat cell
[sum_range]Range yang dijumlahkan. Jika dikosongkan, range yang dijumlahkan
Contoh Data
ABC
1RegionSalesPenjualan
2JakartaAndi45,000,000
3BandungBella32,500,000
4JakartaCandra51,200,000
5SurabayaDewi38,700,000
6BandungEko27,300,000
7JakartaFajar40,100,000
Formula
=SUMIF(A2:A7, "Jakarta", C2:C7)
Hasil

136,300,000

Penjelasan

Excel memeriksa kolom A baris per baris. Baris 2, 4, dan 7 berisi "Jakarta", jadi nilai C2, C4, dan C7 dijumlahkan: 45,000,000 + 51,200,000 + 40,100,000 = 136,300,000.

FORMULA CARD

SUMIFS

Fungsi

Menjumlahkan angka yang memenuhi dua kriteria atau lebih sekaligus. Semua kriteria harus terpenuhi (logika AND).

Syntax
=SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
Penjelasan Argument
ArgumentPenjelasan
sum_rangeRange angka yang dijumlahkan (ditulis paling depan)
criteria_range1Range pertama yang diperiksa
criteria1Syarat untuk range pertama
[criteria_range2, criteria2]Pasangan range dan syarat berikutnya, sampai 127 pasang
Contoh Data
ABC
1RegionKategoriPenjualan
2JakartaHardware45,000,000
3BandungSoftware32,500,000
4JakartaSoftware51,200,000
5SurabayaHardware38,700,000
6BandungHardware27,300,000
7JakartaHardware40,100,000
Formula
=SUMIFS(C2:C7, A2:A7, "Jakarta", B2:B7, "Hardware")
=SUMIFS(C2:C7, A2:A7, "Jakarta", C2:C7, ">=45000000")
Hasil

Rumus pertama: 85,100,000 Rumus kedua: 96,200,000

Penjelasan

Rumus pertama hanya menjumlahkan baris yang region-nya Jakarta dan kategorinya Hardware, yaitu baris 2 dan 7: 45,000,000 + 40,100,000. Rumus kedua mengambil transaksi Jakarta yang nilainya minimal 45 juta, yaitu baris 2 dan 4: 45,000,000 + 51,200,000.

FORMULA CARD

SUMPRODUCT

Fungsi

Mengalikan beberapa range baris per baris, lalu menjumlahkan semua hasil kalinya. Cukup satu cell untuk menghitung total tanpa kolom bantu.

Syntax
=SUMPRODUCT(array1, [array2], ...)
Penjelasan Argument
ArgumentPenjelasan
array1Range atau array pertama
[array2]Range kedua dan seterusnya, ukurannya harus sama dengan array1
Contoh Data
ABC
1ItemQtyHarga
2Pulpen243,500
3Buku Tulis366,000
4Map Plastik502,500
5Stapler628,000
Formula
=SUMPRODUCT(B2:B5, C2:C5)
Hasil

593,000

Penjelasan

Excel menghitung 24×3,500 = 84,000, lalu 36×6,000 = 216,000, 50×2,500 = 125,000, dan 6×28,000 = 168,000. Keempat hasil dijumlahkan menjadi 593,000. Anda tidak perlu membuat kolom Total terlebih dulu.

2.2 Operasi Angka

FORMULA CARD

ABS

Fungsi

Mengubah angka menjadi nilai mutlak (positif). Berguna untuk mengukur besarnya selisih tanpa peduli arahnya.

Syntax
=ABS(number)
Penjelasan Argument
ArgumentPenjelasan
numberAngka atau rumus yang ingin diambil nilai mutlaknya
Contoh Data
ABC
1Pos AnggaranBudgetActual
2Marketing50,000,00046,500,000
3Training20,000,00023,200,000
4IT35,000,00035,000,000
Formula
=ABS(C2-B2)   // di D2, salin ke D4
Hasil
Pos AnggaranSelisih Absolut
Marketing3,500,000
Training3,200,000
IT0
Penjelasan

Selisih Marketing sebenarnya -3,500,000 (di bawah budget), sedangkan Training +3,200,000 (di atas budget). ABS membuang tanda minus sehingga keduanya bisa dibandingkan dari besarnya deviasi.

FORMULA CARD

MOD

Fungsi

Menghasilkan sisa pembagian. Jika 250 dibagi 24, hasil bagi bulatnya 10 dan sisanya 10.

Syntax
=MOD(number, divisor)
Penjelasan Argument
ArgumentPenjelasan
numberAngka yang dibagi
divisorAngka pembagi
Contoh Data
ABC
1ProdukQty (pcs)Isi per Dus
2Air Mineral25024
3Mie Instan1,00040
4Teh Kotak12536
Formula
=MOD(B2, C2)   // di D2, salin ke D4
Hasil
ProdukSisa pcs (tidak genap 1 dus)
Air Mineral10
Mie Instan0
Teh Kotak17
Penjelasan

250 ÷ 24 = 10 dus penuh (240 pcs), sisa 10 pcs. 1,000 ÷ 40 habis dibagi, sisa 0. 125 ÷ 36 = 3 dus (108 pcs), sisa 17 pcs.

FORMULA CARD

POWER

Fungsi

Memangkatkan angka. =POWER(5, 2) sama dengan =5^2.

Syntax
=POWER(number, power)
Penjelasan Argument
ArgumentPenjelasan
numberAngka dasar
powerPangkat
Contoh Data
AB
1KeteranganNilai
2Modal Awal100,000,000
3Pertumbuhan per Tahun8%
4Jumlah Tahun3
Formula
=B2*POWER(1+B3, B4)
Hasil

125,971,200

Penjelasan

Nilai tumbuh 8% per tahun secara majemuk. Faktor pertumbuhannya 1.08 pangkat 3 = 1.259712. Dikalikan modal 100,000,000 menjadi 125,971,200.

FORMULA CARD

SQRT

Fungsi

Menghitung akar kuadrat dari angka positif.

Syntax
=SQRT(number)
Penjelasan Argument
ArgumentPenjelasan
numberAngka yang ingin dicari akar kuadratnya, tidak boleh negatif
Contoh Data
AB
1Komponen EOQNilai
2Kebutuhan per Tahun (unit)12,000
3Biaya per Pemesanan150,000
4Biaya Simpan per Unit per Tahun4,000
Formula
=SQRT(2*B2*B3/B4)
Hasil

948.68, dibulatkan menjadi sekitar 949 unit per pesanan

Penjelasan

Rumus Economic Order Quantity (EOQ) adalah akar dari (2 × kebutuhan × biaya pesan ÷ biaya simpan). 2 × 12,000 × 150,000 ÷ 4,000 = 900,000. Akar kuadrat dari 900,000 adalah 948.68.

2.3 Pembulatan

Kantor punya aturan pembulatan yang berbeda-beda. Pajak dibulatkan ke rupiah terdekat, kebutuhan kendaraan selalu dibulatkan ke atas, poin reward selalu dibulatkan ke bawah. Pilih fungsi sesuai aturannya.

FungsiArahContohHasil
ROUNDTerdekat=ROUND(3.45, 1)3.5
ROUNDUPSelalu naik (menjauhi nol)=ROUNDUP(3.41, 1)3.5
ROUNDDOWNSelalu turun (mendekati nol)=ROUNDDOWN(3.49, 1)3.4
MROUNDKelipatan terdekat=MROUND(12730, 500)12,500
CEILINGNaik ke kelipatan=CEILING(2.3, 1)3
FLOORTurun ke kelipatan=FLOOR(2.4, 0.5)2
INTTurun ke bilangan bulat=INT(10.41)10
TRUNCPotong desimal=TRUNC(10.49)10
FORMULA CARD

INT

Fungsi

Membulatkan angka ke bawah menjadi bilangan bulat terdekat. Sering dipakai untuk mengambil hasil bagi bulat.

Syntax
=INT(number)
Penjelasan Argument
ArgumentPenjelasan
numberAngka yang ingin dibulatkan ke bawah
Contoh Data
ABC
1ProdukQty (pcs)Isi per Dus
2Air Mineral25024
3Mie Instan1,00040
4Teh Kotak12536
Formula
=INT(B2/C2)   // di D2, salin ke D4
Hasil
ProdukDus Penuh
Air Mineral10
Mie Instan25
Teh Kotak3
Penjelasan

250 ÷ 24 = 10.41, dibulatkan ke bawah menjadi 10. 125 ÷ 36 = 3.47 menjadi 3. Dipadukan dengan MOD, Anda mendapat jumlah dus penuh dan sisa pcs.

FORMULA CARD

TRUNC

Fungsi

Memotong angka pada jumlah desimal tertentu tanpa pembulatan.

Syntax
=TRUNC(number, [num_digits])
Penjelasan Argument
ArgumentPenjelasan
numberAngka yang dipotong
[num_digits]Jumlah desimal yang dipertahankan. Default 0
Contoh Data
AB
1KeteranganNilai
2Kurs USD15,873.4589
3Koreksi Stok-2.75
Formula
=TRUNC(B2, 2)
=TRUNC(B3)
=INT(B3)
Hasil

15,873.45, lalu -2 untuk TRUNC, dan -3 untuk INT

Penjelasan

TRUNC(B2, 2) membuang semua digit setelah desimal kedua tanpa melihat digit berikutnya, jadi 15,873.4589 menjadi 15,873.45 (bukan 15,873.46). Untuk -2.75, TRUNC hanya membuang desimal sehingga hasilnya -2, sedangkan INT membulatkan ke bawah menjadi -3.

FORMULA CARD

ROUND

Fungsi

Membulatkan angka ke jumlah digit tertentu dengan aturan standar: 5 ke atas dibulatkan naik.

Syntax
=ROUND(number, num_digits)
Penjelasan Argument
ArgumentPenjelasan
numberAngka yang dibulatkan
num_digitsJumlah digit desimal. 0 = bilangan bulat, 2 = dua desimal, -3 = ribuan terdekat
Contoh Data
AB
1KeteranganNilai
2DPP1,234,567
3Tarif PPN11%
Formula
=ROUND(B2*B3, 0)
=ROUND(B2, -3)
Hasil

PPN = 135,802, dan DPP dibulatkan ke ribuan = 1,235,000

Penjelasan

1,234,567 × 11% = 135,802.37. Dengan num_digits 0, desimal .37 dibulatkan ke bawah menjadi 135,802. Pada rumus kedua, angka -3 berarti pembulatan ke ribuan: 1,234,567 lebih dekat ke 1,235,000.

FORMULA CARD

ROUNDUP

Fungsi

Membulatkan angka selalu ke atas (menjauhi nol), berapa pun digit berikutnya.

Syntax
=ROUNDUP(number, num_digits)
Penjelasan Argument
ArgumentPenjelasan
numberAngka yang dibulatkan
num_digitsJumlah digit. 0 = bilangan bulat, -3 = ribuan
Contoh Data
AB
1KeteranganNilai
2Jumlah Peserta47
3Kapasitas per Mobil12
Formula
=ROUNDUP(B2/B3, 0)
Hasil

4 mobil

Penjelasan

47 ÷ 12 = 3.92. Tiga mobil hanya menampung 36 orang, jadi hasil harus dibulatkan ke atas menjadi 4. ROUND biasa juga menghasilkan 4 di kasus ini, tetapi untuk 37 peserta (3.08) ROUND menghasilkan 3 dan satu peserta tertinggal. ROUNDUP tetap menghasilkan 4.

FORMULA CARD

ROUNDDOWN

Fungsi

Membulatkan angka selalu ke bawah (mendekati nol).

Syntax
=ROUNDDOWN(number, num_digits)
Penjelasan Argument
ArgumentPenjelasan
numberAngka yang dibulatkan
num_digitsJumlah digit. 0 = bilangan bulat
Contoh Data
AB
1KeteranganNilai
2Total Belanja187,500
3Belanja per 1 Poin10,000
Formula
=ROUNDDOWN(B2/B3, 0)
Hasil

18 poin

Penjelasan

187,500 ÷ 10,000 = 18.75. Poin hanya diberikan untuk kelipatan penuh, jadi 0.75 dibuang dan hasilnya 18 poin.

FORMULA CARD

MROUND

Fungsi

Membulatkan angka ke kelipatan tertentu yang paling dekat, misalnya kelipatan 500 atau 0.25.

Syntax
=MROUND(number, multiple)
Penjelasan Argument
ArgumentPenjelasan
numberAngka yang dibulatkan
multipleKelipatan tujuan pembulatan
Contoh Data
AB
1ItemHarga Hitung
2Nasi Box A12,730
3Nasi Box B18,260
4Snack Box9,250
Formula
=MROUND(B2, 500)   // di C2, salin ke C4
Hasil
ItemHarga Jual
Nasi Box A12,500
Nasi Box B18,500
Snack Box9,500
Penjelasan

12,730 lebih dekat ke 12,500 (selisih 230) daripada ke 13,000 (selisih 270). 18,260 lebih dekat ke 18,500. Untuk 9,250 yang berada tepat di tengah 9,000 dan 9,500, MROUND membulatkan ke atas.

FORMULA CARD

CEILING

Fungsi

Membulatkan angka ke atas ke kelipatan tertentu.

Syntax
=CEILING(number, significance)
Penjelasan Argument
ArgumentPenjelasan
numberAngka yang dibulatkan
significanceKelipatan tujuan
Contoh Data
ABC
1No ResiBerat (kg)Tarif per kg
2RS-22012.39,000
3RS-22020.89,000
4RS-220359,000
Formula
=CEILING(B2, 1)        // berat tagih, di D2
=CEILING(B2, 1)*C2     // ongkir, di E2
Hasil
No ResiBerat TagihOngkir
RS-2201327,000
RS-220219,000
RS-2203545,000
Penjelasan

Ekspedisi menagih per kg penuh. Berat 2.3 kg ditagih 3 kg, 0.8 kg ditagih 1 kg. Berat 5 kg sudah kelipatan 1, jadi tetap 5.

FORMULA CARD

FLOOR

Fungsi

Membulatkan angka ke bawah ke kelipatan tertentu.

Syntax
=FLOOR(number, significance)
Penjelasan Argument
ArgumentPenjelasan
numberAngka yang dibulatkan
significanceKelipatan tujuan
Contoh Data
AB
1KaryawanJam Lembur
2Rudi2.4
3Tono3.75
4Vina1.9
Formula
=FLOOR(B2, 0.5)   // di C2, salin ke C4
Hasil
KaryawanJam Dibayar
Rudi2
Tono3.5
Vina1.5
Penjelasan

Perusahaan membayar lembur per 30 menit penuh. 2.4 jam turun ke 2 jam, 3.75 jam turun ke 3.5 jam, dan 1.9 jam turun ke 1.5 jam.

2.4 Statistik dan Rata-rata

AVERAGE, MAX, MIN (lanjutan BAB 1)
=MAX(C2:C7)-MIN(C2:C7)   // rentang (range) nilai

Selisih nilai terbesar dan terkecil menunjukkan seberapa lebar sebaran data. Untuk penjualan pada studi kasus di akhir BAB ini, hasilnya 51,200,000 - 27,300,000 = 23,900,000. Pembahasan lengkap AVERAGE, MAX, dan MIN ada di BAB 1.

FORMULA CARD

AVERAGEIF

Fungsi

Menghitung rata-rata dari data yang memenuhi satu kriteria.

Syntax
=AVERAGEIF(range, criteria, [average_range])
Penjelasan Argument
ArgumentPenjelasan
rangeRange yang diperiksa kriterianya
criteriaSyarat yang harus dipenuhi
[average_range]Range yang dirata-ratakan. Jika kosong, range yang dipakai
Contoh Data
ABCD
1KaryawanDeptStatusSkor KPI
2AndiSalesTetap82
3BellaFinanceTetap90
4CitraSalesKontrak76
5DimasITTetap88
6EkaFinanceKontrak84
7FaniSalesTetap91
Formula
=AVERAGEIF(B2:B7, "Sales", D2:D7)
=AVERAGEIF(D2:D7, ">=85")
Hasil

83 untuk departemen Sales, dan 89.67 untuk rata-rata skor yang minimal 85

Penjelasan

Karyawan Sales adalah Andi (82), Citra (76), dan Fani (91). Rata-ratanya (82 + 76 + 91) ÷ 3 = 83. Rumus kedua tidak memakai average_range, jadi kolom D sekaligus diperiksa dan dirata-ratakan: (90 + 88 + 91) ÷ 3 = 89.67.

FORMULA CARD

AVERAGEIFS

Fungsi

Menghitung rata-rata dari data yang memenuhi beberapa kriteria sekaligus.

Syntax
=AVERAGEIFS(average_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
Penjelasan Argument
ArgumentPenjelasan
average_rangeRange yang dirata-ratakan (ditulis paling depan)
criteria_range1, criteria1Pasangan range dan syarat pertama
[criteria_range2, criteria2]Pasangan berikutnya
Contoh Data
ABCD
1KaryawanDeptStatusSkor KPI
2AndiSalesTetap82
3BellaFinanceTetap90
4CitraSalesKontrak76
5DimasITTetap88
6EkaFinanceKontrak84
7FaniSalesTetap91
Formula
=AVERAGEIFS(D2:D7, B2:B7, "Sales", C2:C7, "Tetap")
Hasil

86.5

Penjelasan

Baris yang memenuhi dua syarat (Sales dan Tetap) adalah Andi (82) dan Fani (91). Rata-ratanya (82 + 91) ÷ 2 = 86.5. Citra tidak ikut karena statusnya Kontrak.

FORMULA CARD

MEDIAN

Fungsi

Mengambil nilai tengah setelah data diurutkan. Median tidak terpengaruh nilai ekstrem, berbeda dengan rata-rata.

Syntax
=MEDIAN(number1, [number2], ...)
Penjelasan Argument
ArgumentPenjelasan
number1Angka atau range pertama
[number2]Angka atau range tambahan
Contoh Data
AB
1PosisiGaji
2Staff Admin5,200,000
3Staff Gudang5,500,000
4Staff Finance5,800,000
5Staff HR6,100,000
6Manager18,500,000
Formula
=MEDIAN(B2:B6)
=AVERAGE(B2:B6)
Hasil

Median 5,800,000, sedangkan rata-rata 8,220,000

Penjelasan

Setelah diurutkan, nilai ketiga dari lima data adalah 5,800,000. Rata-rata melonjak ke 8,220,000 karena satu gaji manager yang jauh lebih tinggi. Median lebih mewakili gaji "umum" di tim ini.

FORMULA CARD

MODE

Fungsi

Mengambil angka yang paling sering muncul (modus).

Syntax
=MODE(number1, [number2], ...)
Penjelasan Argument
ArgumentPenjelasan
number1Angka atau range pertama
[number2]Angka atau range tambahan
Contoh Data
AB
1KaryawanUkuran Sepatu
2Andi40
3Bella41
4Citra42
5Dimas41
6Eka43
7Fani41
8Gilang42
Formula
=MODE(B2:B8)
Hasil

41

Penjelasan

Ukuran 41 muncul tiga kali, lebih banyak dari ukuran lain. Informasi ini membantu bagian pengadaan menentukan stok terbanyak.

2.5 Top List dan Ranking

LARGE, SMALL, dan RANK memakai data penjualan yang sama supaya hasilnya mudah dibandingkan.

FORMULA CARD

LARGE

Fungsi

Mengambil nilai terbesar ke-k. LARGE(range, 1) sama dengan MAX, LARGE(range, 2) adalah nilai terbesar kedua, dan seterusnya.

Syntax
=LARGE(array, k)
Penjelasan Argument
ArgumentPenjelasan
arrayRange angka
kUrutan yang diinginkan dari yang terbesar
Contoh Data
AB
1SalesPenjualan
2Andi45,000,000
3Bella32,500,000
4Candra51,200,000
5Dewi38,700,000
6Eko27,300,000
7Fajar40,100,000
Formula
=LARGE($B$2:$B$7, 1)
=LARGE($B$2:$B$7, 2)
=LARGE($B$2:$B$7, 3)
Hasil

Top 1 = 51,200,000, Top 2 = 45,000,000, Top 3 = 40,100,000

Penjelasan

Excel mengurutkan penjualan dari terbesar secara internal, lalu mengambil posisi ke-1, ke-2, dan ke-3. Data asli tidak berubah urutannya.

FORMULA CARD

SMALL

Fungsi

Mengambil nilai terkecil ke-k. Kebalikan dari LARGE.

Syntax
=SMALL(array, k)
Penjelasan Argument
ArgumentPenjelasan
arrayRange angka
kUrutan yang diinginkan dari yang terkecil
Contoh Data
AB
1SalesPenjualan
2Andi45,000,000
3Bella32,500,000
4Candra51,200,000
5Dewi38,700,000
6Eko27,300,000
7Fajar40,100,000
Formula
=SMALL($B$2:$B$7, 1)
=SMALL($B$2:$B$7, 2)
Hasil

Terendah pertama = 27,300,000, terendah kedua = 32,500,000

Penjelasan

Nilai terkecil adalah milik Eko (27,300,000), disusul Bella (32,500,000).

FORMULA CARD

RANK

Fungsi

Menentukan peringkat suatu angka di dalam daftar.

Syntax
=RANK(number, ref, [order])
Penjelasan Argument
ArgumentPenjelasan
numberAngka yang dicari peringkatnya
refRange seluruh angka pembanding (kunci dengan $)
[order]0 atau kosong = terbesar peringkat 1. Angka 1 = terkecil peringkat 1
Contoh Data
AB
1SalesPenjualan
2Andi45,000,000
3Bella32,500,000
4Candra51,200,000
5Dewi38,700,000
6Eko27,300,000
7Fajar40,100,000
Formula
=RANK(B2, $B$2:$B$7, 0)   // di C2, salin ke C7
Hasil
SalesPeringkat
Andi2
Bella5
Candra1
Dewi4
Eko6
Fajar3
Penjelasan

Candra punya penjualan terbesar sehingga peringkat 1. Andi di urutan kedua. Range dikunci dengan $ agar pembandingnya tetap saat rumus disalin.

REAL WORLD CASE STUDY

Analisis Penjualan Bulanan

Problem

Sales manager ingin melihat performa enam sales pada bulan Juni: total target dan realisasi, rata-rata penjualan, penjualan tertinggi dan terendah, achievement tiap sales, dan peringkat berdasarkan achievement. Laporan harus diperbarui setiap bulan hanya dengan mengganti angka target dan actual.

Raw Data
ABC
1SalesTargetActual
2Andi50,000,00045,000,000
3Bella30,000,00032,500,000
4Candra50,000,00051,200,000
5Dewi40,000,00038,700,000
6Eko35,000,00027,300,000
7Fajar40,000,00040,100,000
Formula

Kolom D (Achievement) dan E (Rank), isi di baris 2 lalu salin ke baris 7:

=ROUND(C2/B2, 4)              // D2, format Percentage 2 desimal
=RANK(D2, $D$2:$D$7, 0)       // E2

Ringkasan di area terpisah:

RingkasanFormula
Total Target=SUM(B2:B7)
Total Actual=SUM(C2:C7)
Achievement Tim=C9/B9 (C9 dan B9 berisi total)
Rata-rata Actual=AVERAGE(C2:C7)
Actual Tertinggi=MAX(C2:C7)
Actual Terendah=MIN(C2:C7)
Jumlah Sales Capai Target=COUNTIF(D2:D7, ">=1")
Result
ABCDE
1SalesTargetActualAchievementRank
2Andi50,000,00045,000,00090.00%5
3Bella30,000,00032,500,000108.33%1
4Candra50,000,00051,200,000102.40%2
5Dewi40,000,00038,700,00096.75%4
6Eko35,000,00027,300,00078.00%6
7Fajar40,000,00040,100,000100.25%3
RingkasanHasil
Total Target245,000,000
Total Actual234,800,000
Achievement Tim95.84%
Rata-rata Actual39,133,333
Actual Tertinggi51,200,000
Actual Terendah27,300,000
Jumlah Sales Capai Target3
Explanation

Achievement dihitung dari actual dibagi target, lalu dibulatkan 4 digit agar tampil rapi sebagai persen dengan 2 desimal. Peringkat disusun dari achievement, bukan dari nominal actual. Hasilnya berbeda: Candra punya actual terbesar, tetapi Bella yang paling tinggi achievement-nya karena targetnya lebih kecil.

Achievement tim dihitung dari total actual dibagi total target (234,800,000 ÷ 245,000,000 = 95.84%). Angka ini berbeda dari rata-rata achievement enam sales (95.96%), karena target tiap sales tidak sama besar. Untuk laporan manajemen, pakai total dibagi total.

Answer
=SUMIF(D2:D7, ">=1", C2:C7)        // 123,800,000
=ROUND(AVERAGE(C2:C7), -5)         // 39,100,000
=LARGE(D2:D7, 2)                   // 102.40%

Sales yang mencapai target adalah Bella, Candra, dan Fajar: 32,500,000 + 51,200,000 + 40,100,000 = 123,800,000. Rata-rata 39,133,333 dibulatkan ke ratusan ribu menjadi 39,100,000.

BAB
03

RUMUS LOGIKA

Rumus logika membuat Excel bisa mengambil keputusan: lulus atau remedial, dapat bonus atau tidak, proyek masih aman atau sudah terlambat. BAB ini juga membahas cara menangani error agar laporan tetap bersih.

Tujuan Pembelajaran
  • Menulis kondisi dengan IF, IFS, dan SWITCH
  • Menggabungkan beberapa syarat dengan AND, OR, NOT, dan XOR
  • Menyusun Nested IF yang rapi dan mudah dibaca
  • Menangani error dengan IFERROR dan IFNA
  • Membuat status proyek otomatis
Formula Count
10
formula card di BAB ini
Rumus yang Dibahas
IFNested IFIFSANDORNOTXORSWITCHIFERRORIFNA

3.1 Keputusan Dasar

Semua rumus logika bertumpu pada hasil TRUE atau FALSE dari operator perbandingan (BAB 1.2). IF lalu memilih nilai mana yang ditampilkan berdasarkan hasil itu.

FORMULA CARD

IF

Fungsi

Menguji satu kondisi. Jika kondisi benar, tampilkan nilai pertama. Jika salah, tampilkan nilai kedua.

Syntax
=IF(logical_test, value_if_true, [value_if_false])
Penjelasan Argument
ArgumentPenjelasan
logical_testKondisi yang diuji, misalnya B2>=75
value_if_trueNilai atau rumus jika kondisi benar
[value_if_false]Nilai atau rumus jika kondisi salah. Jika dikosongkan, hasilnya FALSE
Contoh Data
AB
1PesertaNilai
2Andi82
3Bella68
4Citra75
Formula
=IF(B2>=75, "LULUS", "REMEDIAL")   // di C2, salin ke C4
Hasil
PesertaHasil
AndiLULUS
BellaREMEDIAL
CitraLULUS
Penjelasan

Excel memeriksa apakah nilai minimal 75. Andi (82) dan Citra (75) memenuhi syarat karena operatornya >=. Bella (68) tidak memenuhi, sehingga mendapat REMEDIAL.

FORMULA CARD

Nested IF

Fungsi

IF di dalam IF. Dipakai jika hasilnya lebih dari dua kemungkinan. Excel memeriksa kondisi dari kiri ke kanan dan berhenti di kondisi pertama yang benar.

Syntax
=IF(kondisi1, hasil1, IF(kondisi2, hasil2, hasil_lain))
Penjelasan Argument
ArgumentPenjelasan
kondisi1, hasil1Kondisi dan hasil pertama yang diperiksa
kondisi2, hasil2Kondisi berikutnya, hanya diperiksa jika kondisi1 salah
hasil_lainNilai jika semua kondisi salah
Contoh Data
AB
1SalesAchievement
2Bella108.33%
3Dewi96.75%
4Eko78.00%
Formula
=IF(B2>=100%, "Achieved", IF(B2>=90%, "Near Target", "Below Target"))
Hasil
SalesKategori
BellaAchieved
DewiNear Target
EkoBelow Target
Penjelasan

Untuk Dewi (96.75%), kondisi pertama >=100% salah, jadi Excel masuk ke IF kedua. Kondisi >=90% benar, sehingga hasilnya Near Target. Untuk Eko, kedua kondisi salah dan hasilnya nilai terakhir.

FORMULA CARDExcel 2019+

IFS

Fungsi

Menguji banyak kondisi berurutan tanpa perlu IF bertingkat. Hasilnya diambil dari kondisi pertama yang benar.

Syntax
=IFS(logical_test1, value_if_true1, [logical_test2, value_if_true2], ...)
Penjelasan Argument
ArgumentPenjelasan
logical_test1Kondisi pertama
value_if_true1Hasil jika kondisi pertama benar
[logical_test2, value_if_true2]Pasangan kondisi dan hasil berikutnya, sampai 127 pasang
Contoh Data
AB
1PesertaNilai
2Andi92
3Bella85
4Citra71
5Dimas64
Formula
=IFS(B2>=90, "A", B2>=80, "B", B2>=70, "C", TRUE, "D")
Hasil
PesertaGrade
AndiA
BellaB
CitraC
DimasD
Penjelasan

Excel memeriksa pasangan kondisi satu per satu. Nilai 71 gagal di >=90 dan >=80, lalu lolos di >=70 sehingga mendapat C. Kondisi terakhir TRUE selalu benar dan berfungsi sebagai "selain itu".

3.2 Menggabungkan Kondisi

FungsiHasil TRUE jikaContoh
ANDSemua kondisi benarTarget tercapai dan absensi baik
ORMinimal satu kondisi benarNilai besar atau customer prioritas
NOTKondisi salahStatus bukan Closed
XORJumlah kondisi yang benar ganjil (untuk dua kondisi: tepat satu yang benar)Dokumen hanya ada salah satu versi
FORMULA CARD

AND

Fungsi

Menghasilkan TRUE hanya jika semua kondisi benar. Hampir selalu dipakai di dalam IF.

Syntax
=AND(logical1, [logical2], ...)
Penjelasan Argument
ArgumentPenjelasan
logical1Kondisi pertama
[logical2]Kondisi berikutnya, sampai 255 kondisi
Contoh Data
ABC
1SalesAchievementKehadiran
2Andi108%97%
3Bella102%92%
4Citra96%99%
Formula
=AND(B2>=100%, C2>=95%)
=IF(AND(B2>=100%, C2>=95%), "Dapat Bonus", "-")
Hasil
SalesANDBonus
AndiTRUEDapat Bonus
BellaFALSE-
CitraFALSE-
Penjelasan

Syarat bonus ada dua: achievement minimal 100% dan kehadiran minimal 95%. Andi memenuhi keduanya. Bella gagal di kehadiran, Citra gagal di achievement.

FORMULA CARD

OR

Fungsi

Menghasilkan TRUE jika minimal satu kondisi benar.

Syntax
=OR(logical1, [logical2], ...)
Penjelasan Argument
ArgumentPenjelasan
logical1Kondisi pertama
[logical2]Kondisi berikutnya
Contoh Data
ABC
1ProjectNilai KontrakTipe Customer
2PRJ-011,250,000,000Regular
3PRJ-02450,000,000Key Account
4PRJ-03300,000,000Regular
Formula
=IF(OR(B2>=1000000000, C2="Key Account"), "PRIORITAS", "NORMAL")
Hasil
ProjectPrioritas
PRJ-01PRIORITAS
PRJ-02PRIORITAS
PRJ-03NORMAL
Penjelasan

PRJ-01 lolos karena nilainya di atas 1 miliar. PRJ-02 lolos karena customer Key Account. PRJ-03 tidak memenuhi satu pun syarat.

FORMULA CARD

NOT

Fungsi

Membalik hasil logika. TRUE menjadi FALSE dan sebaliknya.

Syntax
=NOT(logical)
Penjelasan Argument
ArgumentPenjelasan
logicalKondisi atau nilai logika yang dibalik
Contoh Data
AB
1TiketStatus
2TK-01Open
3TK-02Closed
4TK-03Pending
Formula
=NOT(B2="Closed")
Hasil

TK-01 TRUE, TK-02 FALSE, TK-03 TRUE

Penjelasan

Kondisi B2="Closed" hanya benar untuk TK-02. NOT membaliknya, jadi hasil TRUE berarti tiket masih aktif.

FORMULA CARDExcel 2013+

XOR

Fungsi

Menghasilkan TRUE jika jumlah kondisi yang benar ganjil. Untuk dua kondisi, artinya tepat satu yang benar.

Syntax
=XOR(logical1, [logical2], ...)
Penjelasan Argument
ArgumentPenjelasan
logical1Kondisi pertama
[logical2]Kondisi berikutnya
Contoh Data
ABC
1InvoiceDokumen FisikDokumen Digital
2INV-01YaYa
3INV-02YaTidak
4INV-03TidakYa
5INV-04TidakTidak
Formula
=XOR(B2="Ya", C2="Ya")
Hasil

INV-01 FALSE, INV-02 TRUE, INV-03 TRUE, INV-04 FALSE

Penjelasan

INV-02 dan INV-03 hanya punya satu versi dokumen, jadi hasilnya TRUE dan perlu dilengkapi. INV-01 punya keduanya. INV-04 tidak punya sama sekali, yang juga FALSE di XOR, sehingga perlu kondisi tambahan jika kasus ini ingin ditandai.

3.3 Memilih dari Daftar

FORMULA CARDExcel 2019+

SWITCH

Fungsi

Mencocokkan satu nilai dengan daftar pilihan, lalu mengembalikan hasil yang sesuai. Lebih ringkas dari Nested IF untuk pencocokan persis.

Syntax
=SWITCH(expression, value1, result1, [value2, result2], ..., [default])
Penjelasan Argument
ArgumentPenjelasan
expressionNilai yang dicocokkan
value1, result1Pilihan pertama dan hasilnya
[value2, result2]Pilihan berikutnya
[default]Hasil jika tidak ada yang cocok (argument terakhir tanpa pasangan)
Contoh Data
A
1Kode Region
2JKT
3SBY
4MDN
Formula
=SWITCH(A2, "JKT", "Jakarta", "BDG", "Bandung", "SBY", "Surabaya", "Lainnya")
Hasil

JKT → Jakarta, SBY → Surabaya, MDN → Lainnya

Penjelasan

Excel mencocokkan isi A2 dengan setiap pilihan. MDN tidak ada di daftar, sehingga yang keluar adalah nilai default "Lainnya".

3.4 Menangani Error

ErrorPenyebab umum
#DIV/0!Pembagian dengan nol atau cell kosong
#N/AData yang dicari tidak ditemukan (lookup)
#VALUE!Tipe data salah, misalnya teks ikut dihitung
#REF!Referensi hilang karena baris atau kolom dihapus
#NAME?Nama fungsi salah ketik, atau fungsi tidak ada di versi Excel tersebut
#NUM!Angka tidak valid, misalnya akar dari bilangan negatif
FORMULA CARD

IFERROR

Fungsi

Menampilkan nilai pengganti jika rumus menghasilkan error apa pun. Jika tidak error, hasil rumus asli yang tampil.

Syntax
=IFERROR(value, value_if_error)
Penjelasan Argument
ArgumentPenjelasan
valueRumus yang diperiksa
value_if_errorNilai pengganti jika terjadi error
Contoh Data
ABC
1SalesTargetActual
2Andi50,000,00045,000,000
3Gita (baru)12,000,000
Formula
=IFERROR(C2/B2, "Target belum ada")
Hasil

Andi 90%, Gita "Target belum ada"

Penjelasan

Untuk Andi, pembagian berjalan normal. Target Gita masih kosong, sehingga C3/B3 menghasilkan #DIV/0!. IFERROR menangkap error itu dan menampilkan teks pengganti.

FORMULA CARDExcel 2013+

IFNA

Fungsi

Menampilkan nilai pengganti hanya untuk error #N/A. Error lain tetap tampil sehingga masalah lain tidak tersembunyi.

Syntax
=IFNA(value, value_if_na)
Penjelasan Argument
ArgumentPenjelasan
valueRumus yang diperiksa, biasanya rumus lookup
value_if_naNilai pengganti jika hasilnya #N/A
Contoh Data
ABCDE
1KodeNama MaterialCari Kode
2M-001Kabel FO 24 CoreM-009
3M-002Closure 48 Core
4M-003ODP 16 Port
Formula
=IFNA(VLOOKUP(E2, A2:B4, 2, FALSE), "Kode tidak ditemukan")
Hasil

Kode tidak ditemukan

Penjelasan

VLOOKUP mencari M-009 di kolom A dan tidak menemukannya, sehingga menghasilkan #N/A. IFNA menggantinya dengan pesan yang lebih jelas. VLOOKUP dibahas lengkap di BAB 6.

REAL WORLD CASE STUDY

Project Status Monitoring

Problem

Tim project admin mengelola tujuh proyek dengan status yang selama ini diisi manual. Status sering terlambat diperbarui sehingga laporan mingguan tidak akurat. Status harus dihitung otomatis dari tanggal rencana, progress, dan dokumen BAST, dengan enam kemungkinan: NOT STARTED, ON PROGRESS, ON TRACK, DELAY, COMPLETED, dan CLOSED.

Raw Data
ABCDEFGHI
1ProjectPlan StartPlan FinishProgressBASTPlan %StatusTgl Acuan15 Jun 2026
2PRJ-01 FO Backbone Medan01 Apr 202630 Jun 202685%
3PRJ-02 Tower Bekasi01 Mar 202631 May 202690%
4PRJ-03 FTTH Bandung01 Jul 202630 Sep 20260%
5PRJ-04 Upgrade BTS Bogor01 May 202631 Jul 202640%
6PRJ-05 Relokasi ODC Depok01 Feb 202630 Apr 2026100%Ya
7PRJ-06 FO Access Tangerang01 Apr 202631 May 2026100%
8PRJ-07 Microcell Jakarta15 May 202615 Jul 202620%
Formula

Aturan status diperiksa berurutan dari atas:

UrutanKondisiStatus
1BAST sudah adaCLOSED
2Progress 100%COMPLETED
3Progress 0% dan belum masuk tanggal mulaiNOT STARTED
4Sudah melewati Plan FinishDELAY
5Progress ≥ Plan %ON TRACK
6Progress tertinggal maksimal 10 poin dari Plan %ON PROGRESS
7Selain ituDELAY

Plan % adalah persentase waktu yang sudah berjalan (F2), dibatasi antara 0% dan 100%. Tanggal acuan disimpan di I1.

=MIN(1, MAX(0, ($I$1-B2)/(C2-B2)))     // F2, Plan %
=IFS(E2="Ya","CLOSED", D2=1,"COMPLETED", AND(D2=0,$I$1<B2),"NOT STARTED", $I$1>C2,"DELAY", D2>=F2,"ON TRACK", D2>=F2-0.1,"ON PROGRESS", TRUE,"DELAY")   // G2

Versi untuk Excel 2016 ke bawah (tanpa IFS):

=IF(E2="Ya","CLOSED",IF(D2=1,"COMPLETED",IF(AND(D2=0,$I$1<B2),"NOT STARTED",IF($I$1>C2,"DELAY",IF(D2>=F2,"ON TRACK",IF(D2>=F2-0.1,"ON PROGRESS","DELAY"))))))

Rekap jumlah per status:

=COUNTIF($G$2:$G$8, "DELAY")
Result
ProjectProgressPlan %Status
PRJ-01 FO Backbone Medan85%83.33%ON TRACK
PRJ-02 Tower Bekasi90%100.00%DELAY
PRJ-03 FTTH Bandung0%0.00%NOT STARTED
PRJ-04 Upgrade BTS Bogor40%49.45%ON PROGRESS
PRJ-05 Relokasi ODC Depok100%100.00%CLOSED
PRJ-06 FO Access Tangerang100%100.00%COMPLETED
PRJ-07 Microcell Jakarta20%50.82%DELAY
StatusJumlah
NOT STARTED1
ON PROGRESS1
ON TRACK1
DELAY2
COMPLETED1
CLOSED1
Explanation

PRJ-01 sudah berjalan 75 dari 90 hari (83.33%), dan progress 85% lebih tinggi dari itu, jadi ON TRACK. PRJ-04 berjalan 45 dari 91 hari (49.45%). Progress 40% memang tertinggal, tetapi masih dalam toleransi 10 poin, sehingga ON PROGRESS. PRJ-07 tertinggal lebih dari 30 poin dan langsung masuk DELAY walau tanggal selesainya belum lewat.

Urutan kondisi menentukan hasil. CLOSED diperiksa paling awal karena proyek yang sudah BAST pasti juga 100%. Jika urutan COMPLETED dan CLOSED ditukar, tidak akan pernah ada proyek berstatus CLOSED.

Tanggal acuan disimpan di I1 supaya contoh ini bisa diuji ulang. Di file kerja, isi I1 dengan =TODAY() sehingga status diperbarui otomatis setiap kali file dibuka.

Answer
=IF(OR(G2="DELAY", AND(G2="ON PROGRESS", C2-$I$1<=30)), "ESKALASI", "-")

Hasilnya: PRJ-02 dan PRJ-07 berstatus ESKALASI karena DELAY. PRJ-04 berstatus ON PROGRESS dengan sisa 46 hari, sehingga belum perlu eskalasi. Proyek lain menampilkan "-".

BAB
04

RUMUS TEXT & DATA PROCESSING

Data dari sistem, formulir online, atau hasil copy-paste jarang langsung rapi. Nama berhuruf kapital acak, nomor HP berisi tanda strip, kode customer tidak seragam. Rumus teks membersihkan dan menyusun ulang data seperti ini tanpa diketik ulang satu per satu.

Tujuan Pembelajaran
  • Mengambil bagian teks dengan LEFT, RIGHT, dan MID
  • Menyeragamkan huruf dan membuang spasi berlebih
  • Mencari dan mengganti karakter di dalam teks
  • Menggabungkan teks dari beberapa kolom
  • Mengubah teks menjadi angka dan angka menjadi teks berformat
Formula Count
19
formula card di BAB ini
Rumus yang Dibahas
LEFTRIGHTMIDLENLOWERUPPERPROPERTRIMCLEANFINDSEARCHSUBSTITUTEREPLACEEXACTCONCATENATECONCATTEXTJOINVALUETEXT

4.1 Mengambil Bagian Teks

Setiap karakter dalam teks punya posisi. Pada kode JKT-2026-0147, huruf J di posisi 1, tanda strip pertama di posisi 4, dan angka 0147 di posisi 10 sampai 13. Tiga fungsi berikut memotong teks berdasarkan posisi tersebut.

FORMULA CARD

LEFT

Fungsi

Mengambil sejumlah karakter dari sisi kiri teks.

Syntax
=LEFT(text, [num_chars])
Penjelasan Argument
ArgumentPenjelasan
textTeks sumber
[num_chars]Jumlah karakter yang diambil. Default 1
Contoh Data
A
1Kode Proyek
2JKT-2026-0147
3BDG-2026-0022
4SBY-2025-0310
Formula
=LEFT(A2, 3)
Hasil

JKT, BDG, SBY

Penjelasan

Tiga karakter pertama dari setiap kode adalah kode region. Rumus ini memisahkannya ke kolom sendiri sehingga bisa dipakai untuk rekap per region.

FORMULA CARD

RIGHT

Fungsi

Mengambil sejumlah karakter dari sisi kanan teks.

Syntax
=RIGHT(text, [num_chars])
Penjelasan Argument
ArgumentPenjelasan
textTeks sumber
[num_chars]Jumlah karakter yang diambil. Default 1
Contoh Data
A
1No Invoice
2INV/2026/06/0452
3INV/2026/06/0453
Formula
=RIGHT(A2, 4)
Hasil

0452 dan 0453

Penjelasan

Empat karakter terakhir adalah nomor urut invoice. Karena hasilnya teks, angka nol di depan tetap terlihat.

FORMULA CARD

MID

Fungsi

Mengambil karakter dari tengah teks, mulai dari posisi tertentu sebanyak jumlah tertentu.

Syntax
=MID(text, start_num, num_chars)
Penjelasan Argument
ArgumentPenjelasan
textTeks sumber
start_numPosisi karakter pertama yang diambil
num_charsJumlah karakter yang diambil
Contoh Data
A
1Kode Proyek
2JKT-2026-0147
3BDG-2026-0022
4SBY-2025-0310
Formula
=MID(A2, 5, 4)
Hasil

2026, 2026, 2025

Penjelasan

Tahun dimulai di posisi 5 (setelah JKT-) dan panjangnya 4 karakter.

FORMULA CARD

LEN

Fungsi

Menghitung jumlah karakter dalam teks, termasuk spasi dan tanda baca.

Syntax
=LEN(text)
Penjelasan Argument
ArgumentPenjelasan
textTeks yang dihitung panjangnya
Contoh Data
A
1No HP
2081234567890
308123456
40812 3456 7890
Formula
=LEN(A2)
Hasil

12, 8, 14

Penjelasan

Nomor pertama 12 digit. Nomor kedua hanya 8 digit, kemungkinan salah input. Nomor ketiga terhitung 14 karena dua spasi ikut dihitung.

4.2 Huruf Besar, Kecil, dan Spasi

FORMULA CARD

LOWER

Fungsi

Mengubah semua huruf menjadi huruf kecil.

Syntax
=LOWER(text)
Penjelasan Argument
ArgumentPenjelasan
textTeks yang diubah
Contoh Data
A
1Email
2Budi.Santoso@PTMaju.co.id
3SITI.N@YAHOO.CO.ID
Formula
=LOWER(A2)
Hasil

budi.santoso@ptmaju.co.id dan siti.n@yahoo.co.id

Penjelasan

Semua huruf kapital diubah menjadi huruf kecil. Alamat email tidak membedakan huruf besar dan kecil, sehingga format huruf kecil memudahkan pencarian duplikat.

FORMULA CARD

UPPER

Fungsi

Mengubah semua huruf menjadi huruf kapital.

Syntax
=UPPER(text)
Penjelasan Argument
ArgumentPenjelasan
textTeks yang diubah
Contoh Data
A
1Kode Input
2jkt-2026-0147
3Bdg-2026-0022
Formula
=UPPER(A2)
Hasil

JKT-2026-0147 dan BDG-2026-0022

Penjelasan

Kode yang diketik dengan huruf campuran diseragamkan menjadi kapital. Angka dan tanda strip tidak berubah.

FORMULA CARD

PROPER

Fungsi

Mengubah huruf pertama setiap kata menjadi kapital dan sisanya huruf kecil.

Syntax
=PROPER(text)
Penjelasan Argument
ArgumentPenjelasan
textTeks yang diubah
Contoh Data
A
1Nama
2BUDI SANTOSO
3siti nurhaliza
4aNDI wIJAYA
Formula
=PROPER(A2)
Hasil

Budi Santoso, Siti Nurhaliza, Andi Wijaya

Penjelasan

PROPER memperlakukan setiap kata secara terpisah, lalu membuat huruf pertama kapital.

FORMULA CARD

TRIM

Fungsi

Membuang spasi di awal dan akhir teks, serta mengubah spasi ganda di tengah menjadi satu spasi.

Syntax
=TRIM(text)
Penjelasan Argument
ArgumentPenjelasan
textTeks yang dibersihkan
Contoh Data
A
1Nama Asli (· = spasi)
2··Budi···Santoso·
Formula
=TRIM(A2)
=LEN(A2)
=LEN(TRIM(A2))
Hasil

"Budi Santoso", panjang berubah dari 17 menjadi 12 karakter

Penjelasan

Teks asli punya 2 spasi di depan, 3 spasi di antara kata, dan 1 spasi di belakang (2 + 4 + 3 + 7 + 1 = 17 karakter). TRIM menyisakan satu spasi di antara kata saja.

FORMULA CARD

CLEAN

Fungsi

Membuang karakter tak tercetak (kode ASCII 0-31), seperti line break dan tab, yang sering terbawa dari sistem lain.

Syntax
=CLEAN(text)
Penjelasan Argument
ArgumentPenjelasan
textTeks yang dibersihkan
Contoh Data
A
1Alamat (↵ = line break di dalam cell)
2Jl. Merdeka No. 5↵Jakarta Pusat
Formula
=CLEAN(A2)
=TRIM(SUBSTITUTE(A2, CHAR(10), " "))
Hasil

CLEAN menghasilkan "Jl. Merdeka No. 5Jakarta Pusat". Rumus kedua menghasilkan "Jl. Merdeka No. 5 Jakarta Pusat".

Penjelasan

Line break adalah karakter nomor 10 (CHAR(10)). CLEAN menghapusnya, sehingga kata "5" dan "Jakarta" menempel. Rumus kedua mengganti line break dengan spasi, lalu TRIM merapikan spasinya.

4.3 Mencari dan Mengganti

FORMULA CARD

FIND

Fungsi

Mencari posisi sebuah teks di dalam teks lain. Membedakan huruf besar dan kecil.

Syntax
=FIND(find_text, within_text, [start_num])
Penjelasan Argument
ArgumentPenjelasan
find_textTeks yang dicari
within_textTeks tempat mencari
[start_num]Posisi mulai pencarian. Default 1
Contoh Data
A
1Email
2budi.santoso@ptmaju.co.id
Formula
=FIND("@", A2)
=LEFT(A2, FIND("@", A2)-1)
=MID(A2, FIND("@", A2)+1, 100)
Hasil

Posisi @ = 13, username = budi.santoso, domain = ptmaju.co.id

Penjelasan

budi.santoso terdiri dari 12 karakter, jadi @ berada di posisi 13. LEFT mengambil 12 karakter sebelum @, dan MID mengambil semua karakter setelah @.

FORMULA CARD

SUBSTITUTE

Fungsi

Mengganti teks tertentu dengan teks lain. Bisa mengganti semua kemunculan atau hanya kemunculan ke-n.

Syntax
=SUBSTITUTE(text, old_text, new_text, [instance_num])
Penjelasan Argument
ArgumentPenjelasan
textTeks sumber
old_textTeks yang ingin diganti
new_textTeks pengganti. Tulis "" untuk menghapus
[instance_num]Kemunculan ke berapa yang diganti. Jika kosong, semua diganti
Contoh Data
A
1No HP
20812-3456-7890
30813 1122 3344
Formula
=SUBSTITUTE(A2, "-", "")
=SUBSTITUTE(SUBSTITUTE(A3, "-", ""), " ", "")
Hasil

081234567890 dan 081311223344

Penjelasan

Rumus pertama menghapus semua tanda strip. Rumus kedua menumpuk dua SUBSTITUTE: yang dalam menghapus strip, yang luar menghapus spasi. Dengan cara ini, nomor HP dari berbagai format menjadi seragam.

FORMULA CARD

REPLACE

Fungsi

Mengganti teks berdasarkan posisi karakter, bukan berdasarkan isi.

Syntax
=REPLACE(old_text, start_num, num_chars, new_text)
Penjelasan Argument
ArgumentPenjelasan
old_textTeks sumber
start_numPosisi awal yang diganti
num_charsJumlah karakter yang diganti
new_textTeks pengganti
Contoh Data
A
1No HP
2081234567890
Formula
=REPLACE(A2, 5, 4, "****")
Hasil

0812****7890

Penjelasan

Mulai dari karakter ke-5, empat karakter (3456) diganti dengan empat bintang. Posisi lain tidak berubah.

FORMULA CARD

EXACT

Fungsi

Membandingkan dua teks secara persis, termasuk huruf besar dan kecil. Hasilnya TRUE atau FALSE.

Syntax
=EXACT(text1, text2)
Penjelasan Argument
ArgumentPenjelasan
text1Teks pertama
text2Teks kedua
Contoh Data
AB
1Kode SistemKode Input
2INV-001INV-001
3INV-002inv-002
Formula
=EXACT(A2, B2)
=A2=B2
Hasil

Baris 2: EXACT TRUE, operator = TRUE. Baris 3: EXACT FALSE, operator = TRUE.

Penjelasan

Operator = di Excel tidak membedakan huruf besar dan kecil, sehingga INV-002 dianggap sama dengan inv-002. EXACT lebih ketat dan menganggap keduanya berbeda.

4.4 Menggabungkan Teks

FORMULA CARD

CONCATENATE

Fungsi

Menggabungkan beberapa teks menjadi satu. Fungsi lama yang masih didukung semua versi Excel.

Syntax
=CONCATENATE(text1, [text2], ...)
Penjelasan Argument
ArgumentPenjelasan
text1Teks atau cell pertama
[text2]Teks atau cell berikutnya, sampai 255 item
Contoh Data
AB
1Nama DepanNama Belakang
2BudiSantoso
Formula
=CONCATENATE(A2, " ", B2)
=A2&" "&B2
Hasil

Budi Santoso

Penjelasan

Kedua rumus menghasilkan hal yang sama. Spasi " " harus ditulis sendiri sebagai argument, karena Excel tidak menambahkan pemisah otomatis.

FORMULA CARDExcel 2019+

CONCAT

Fungsi

Pengganti modern CONCATENATE yang juga bisa menggabungkan seluruh isi range.

Syntax
=CONCAT(text1, [text2], ...)
Penjelasan Argument
ArgumentPenjelasan
text1Teks, cell, atau range pertama
[text2]Teks, cell, atau range berikutnya
Contoh Data
ABC
1RegionTahunNo Urut
2JKT2026147
Formula
=CONCAT(A2, "-", B2, "-", TEXT(C2, "0000"))
Hasil

JKT-2026-0147

Penjelasan

Nomor urut 147 disimpan sebagai angka. TEXT(C2, "0000") mengubahnya menjadi teks empat digit dengan nol di depan, lalu CONCAT menggabungkan semua bagian dengan tanda strip.

FORMULA CARDExcel 2019+

TEXTJOIN

Fungsi

Menggabungkan isi range dengan pemisah tertentu, dan bisa melewati cell kosong.

Syntax
=TEXTJOIN(delimiter, ignore_empty, text1, [text2], ...)
Penjelasan Argument
ArgumentPenjelasan
delimiterPemisah antar teks, misalnya ", "
ignore_emptyTRUE untuk melewati cell kosong
text1Teks atau range pertama
[text2]Teks atau range berikutnya
Contoh Data
ABCDE
1JalanKelurahanKecamatanKotaKode Pos
2Jl. Merdeka No. 5GambirJakarta Pusat10110
Formula
=TEXTJOIN(", ", TRUE, A2:E2)
Hasil

Jl. Merdeka No. 5, Gambir, Jakarta Pusat, 10110

Penjelasan

Kolom Kelurahan kosong. Karena ignore_empty bernilai TRUE, Excel melewatinya sehingga tidak muncul pemisah ganda , ,.

4.5 Konversi Teks dan Angka

FORMULA CARD

VALUE

Fungsi

Mengubah teks yang berbentuk angka menjadi angka sungguhan, sehingga bisa dihitung.

Syntax
=VALUE(text)
Penjelasan Argument
ArgumentPenjelasan
textTeks yang berisi angka, tanggal, atau waktu
Contoh Data
A
1Penjualan (teks dari sistem)
245000
332500
451200
Formula
=SUM(A2:A4)
=VALUE(A2)                     // di B2, salin ke B4
=SUM(B2:B4)
Hasil

SUM pada data asli menghasilkan 0. Setelah dikonversi, SUM(B2:B4) menghasilkan 128,700.

Penjelasan

Data dari sistem tersimpan sebagai teks, sehingga SUM mengabaikannya. VALUE mengubah setiap teks menjadi angka, lalu total bisa dihitung: 45,000 + 32,500 + 51,200 = 128,700.

FORMULA CARD

TEXT

Fungsi

Mengubah angka atau tanggal menjadi teks dengan format tertentu. Berguna untuk kalimat otomatis dan label.

Syntax
=TEXT(value, format_text)
Penjelasan Argument
ArgumentPenjelasan
valueAngka atau tanggal yang diformat
format_textKode format dalam tanda kutip, misalnya "#,##0" atau "dd mmm yyyy"
Contoh Data
AB
1KeteranganNilai
2Total Tagihan1250000
3Jatuh Tempo15 Jun 2026
Formula
="Total tagihan: Rp"&TEXT(B2, "#,##0")
="Jatuh tempo "&TEXT(B3, "dd mmm yyyy")
=TEXT(B3, "[$-421]dddd, dd mmmm yyyy")
Hasil

Total tagihan: Rp1,250,000 Jatuh tempo 15 Jun 2026 Senin, 15 Juni 2026

Penjelasan

Tanpa TEXT, angka yang digabung dengan teks kehilangan format dan tampil sebagai 1250000, sedangkan tanggal tampil sebagai angka seri 46188. Kode [$-421] memaksa nama hari dan bulan ditulis dalam bahasa Indonesia, apa pun bahasa Excel Anda.

REAL WORLD CASE STUDY

Membersihkan Database Customer

Problem

Tim marketing menerima database customer dari tiga sumber: formulir online, input manual sales, dan export sistem lama. Nama ditulis dengan huruf acak dan spasi berlebih, nomor HP punya empat format berbeda, email bercampur huruf besar, dan kode customer tidak seragam. Data ini akan diimpor ke CRM yang mewajibkan format baku.

Raw Data
Tanda · menandai spasi yang tidak terlihat di cell
ABCDE
1NamaNo HPEmailKotaKode
2··budi···SANTOSO·0812-3456-7890Budi.Santoso@Gmail.com·jakarta selatancst-12
3SITI nurhaliza+62 813 1122 3344SITI.N@YAHOO.CO.ID·BANDUNG·CST-7
4andi··wijaya62-857-9988-7766andi.w@ptmaju.co.idsurabayacst-105
Formula

Buat kolom hasil di sebelah kanan (mulai kolom G), isi di baris 2 lalu salin ke baris 4. Nomor HP dibersihkan dalam dua langkah memakai kolom bantu H.

KolomIsiFormula
GNama=PROPER(TRIM(A2))
HHP (bantu)=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B2,"-","")," ",""),"+","")
IHP Final=IF(LEFT(H2,2)="62", "0"&MID(H2,3,20), H2)
JEmail=LOWER(TRIM(C2))
KKota=PROPER(TRIM(D2))
LKode="CST-"&TEXT(VALUE(MID(E2,5,10)),"0000")
Result

BEFORE → FORMULA → AFTER untuk customer pertama:

FieldBeforeFormulaAfter
Nama··budi···SANTOSO·PROPER(TRIM())Budi Santoso
No HP0812-3456-7890SUBSTITUTE ×3, lalu cek prefix 62081234567890
EmailBudi.Santoso@Gmail.comLOWER(TRIM())budi.santoso@gmail.com
Kota·jakarta selatanPROPER(TRIM())Jakarta Selatan
Kodecst-12"CST-"&TEXT(VALUE(MID()),"0000")CST-0012

Hasil akhir seluruh data:

NamaNo HPEmailKotaKode
Budi Santoso081234567890budi.santoso@gmail.comJakarta SelatanCST-0012
Siti Nurhaliza081311223344siti.n@yahoo.co.idBandungCST-0007
Andi Wijaya085799887766andi.w@ptmaju.co.idSurabayaCST-0105
Explanation

Nomor HP butuh dua langkah. Langkah pertama membuang strip, spasi, dan tanda plus, sehingga +62 813 1122 3344 menjadi 6281311223344. Langkah kedua mengecek dua digit awal. Jika 62, digit tersebut diganti 0 dan sisa nomornya diambil dengan MID mulai posisi 3.

Kode customer diambil angkanya dengan MID(E2,5,10), karena prefix cst- selalu 4 karakter. VALUE mengubahnya menjadi angka, lalu TEXT(...,"0000") menambahkan nol di depan sampai 4 digit.

Setelah semua kolom hasil benar, salin kolom G sampai L, lalu Paste Special > Values ke sheet baru. Data siap diimpor tanpa rumus di dalamnya.

Answer
=LEFT(G2, FIND(" ", G2&" ")-1)      // Nama Panggilan: Budi, Siti, Andi
=REPLACE(I2, 5, 4, "****")          // HP Tersamar: 0812****7890

Tambahan G2&" " di dalam FIND mencegah error jika nama hanya satu kata. Tanpa itu, nama seperti "Rudi" tidak punya spasi dan FIND menghasilkan #VALUE!.

BAB
05

RUMUS TANGGAL & WAKTU

Umur piutang, masa kerja karyawan, jatuh tempo kontrak, jumlah hari kerja proyek, dan keterlambatan SLA semuanya dihitung dari tanggal. BAB ini membahas cara Excel menyimpan tanggal dan fungsi yang paling sering dipakai untuk menghitungnya.

Tujuan Pembelajaran
  • Memahami tanggal sebagai angka seri dan waktu sebagai pecahan hari
  • Mengambil dan menyusun komponen tanggal
  • Menghitung selisih hari, bulan, tahun, dan hari kerja
  • Menentukan jatuh tempo dan akhir bulan
  • Membuat monitoring aging dan SLA proyek
Formula Count
20
formula card di BAB ini
Rumus yang Dibahas
TODAYNOWDATEDAYMONTHYEARDAYSDATEDIFYEARFRACEDATEEOMONTHWEEKDAYWEEKNUMWORKDAYWORKDAY.INTLNETWORKDAYSNETWORKDAYS.INTLHOURMINUTESECOND

5.1 Cara Excel Menyimpan Tanggal

Excel menyimpan tanggal sebagai angka seri. Tanggal 1 Januari 1900 bernilai 1, dan setiap hari berikutnya bertambah 1. Tanggal 15 Juni 2026 tersimpan sebagai angka 46188. Waktu disimpan sebagai pecahan hari: pukul 12:00 bernilai 0.5 dan pukul 06:00 bernilai 0.25.

TampilanNilai asliKeterangan
15 Jun 202646188Tanggal saja
12:000.5Setengah hari
15 Jun 2026 18:0046188.75Tanggal dan jam

Karena tanggal adalah angka, dua tanggal bisa langsung dikurangi untuk mendapatkan selisih hari:

=B2-A2    // A2 = 01 Jun 2026, B2 = 15 Jun 2026, hasil 14

5.2 Tanggal Hari Ini dan Menyusun Tanggal

FORMULA CARD

TODAY

Fungsi

Menghasilkan tanggal hari ini sesuai jam komputer. Nilainya diperbarui otomatis setiap kali file dihitung ulang.

Syntax
=TODAY()
Penjelasan Argument
ArgumentPenjelasan
(tanpa argument)Tanda kurung tetap wajib ditulis
Contoh Data
AB
1No InvoiceTanggal Invoice
2INV-045220 May 2026
Formula
=TODAY()
=TODAY()-B2
Hasil

15 Jun 2026, dan umur invoice 26 hari

Penjelasan

Dari 20 Mei ke 31 Mei ada 11 hari, ditambah 15 hari di bulan Juni, jadi totalnya 26 hari. Besok, tanpa diubah apa pun, hasilnya menjadi 27.

FORMULA CARD

NOW

Fungsi

Menghasilkan tanggal dan jam saat ini. Diperbarui setiap kali workbook dihitung ulang.

Syntax
=NOW()
Penjelasan Argument
ArgumentPenjelasan
(tanpa argument)Tanda kurung tetap wajib ditulis
Contoh Data
AB
1No TiketWaktu Dibuka
2TK-778115 Jun 2026 08:20
Formula
=NOW()
=(NOW()-B2)*24
Hasil

15 Jun 2026 14:35, dan tiket sudah terbuka 6.25 jam

Penjelasan

Selisih dua waktu dalam satuan hari adalah 0.2604 (6 jam 15 menit). Dikalikan 24 menjadi jam desimal: 6.25 jam.

FORMULA CARD

DATE

Fungsi

Menyusun tanggal dari angka tahun, bulan, dan hari yang terpisah.

Syntax
=DATE(year, month, day)
Penjelasan Argument
ArgumentPenjelasan
yearTahun, empat digit
monthBulan 1-12. Angka di luar rentang otomatis digeser ke tahun berikutnya atau sebelumnya
dayTanggal 1-31. Angka di luar rentang otomatis digeser ke bulan berikutnya atau sebelumnya
Contoh Data
ABC
1TahunBulanHari
22026615
32026131
4202630
Formula
=DATE(A2, B2, C2)
Hasil

15 Jun 2026, 01 Jan 2027, 28 Feb 2026

Penjelasan

Baris pertama menghasilkan tanggal normal. Bulan 13 digeser menjadi Januari tahun berikutnya. Hari 0 berarti "satu hari sebelum tanggal 1", yaitu hari terakhir bulan sebelumnya.

5.3 Mengambil Komponen Tanggal

FORMULA CARD

DAY

Fungsi

Mengambil angka tanggal (1-31) dari sebuah tanggal.

Syntax
=DAY(serial_number)
Penjelasan Argument
ArgumentPenjelasan
serial_numberTanggal sumber
Contoh Data
AB
1KaryawanTanggal Masuk
2Rudi10 Aug 2019
3Sari23 Feb 2024
Formula
=DAY(B2)
Hasil

10 dan 23

Penjelasan

DAY hanya mengambil bagian tanggal. Bulan dan tahun diabaikan.

FORMULA CARD

MONTH

Fungsi

Mengambil angka bulan (1-12) dari sebuah tanggal.

Syntax
=MONTH(serial_number)
Penjelasan Argument
ArgumentPenjelasan
serial_numberTanggal sumber
Contoh Data
AB
1No POTanggal PO
2PO-10105 Jan 2026
3PO-10217 Apr 2026
4PO-10315 Jun 2026
Formula
=MONTH(B2)
="Q"&ROUNDUP(MONTH(B2)/3, 0)
Hasil
No POBulanKuartal
PO-1011Q1
PO-1024Q2
PO-1036Q2
Penjelasan

MONTH mengambil angka bulan. Bulan 4 dibagi 3 menghasilkan 1.33, dibulatkan ke atas menjadi 2, sehingga April masuk Q2.

FORMULA CARD

YEAR

Fungsi

Mengambil angka tahun dari sebuah tanggal.

Syntax
=YEAR(serial_number)
Penjelasan Argument
ArgumentPenjelasan
serial_numberTanggal sumber
Contoh Data
AB
1AsetTanggal Perolehan
2Laptop AST-0112 Mar 2022
3Genset AST-0203 Nov 2019
Formula
=YEAR(TODAY())-YEAR(B2)
Hasil

4 dan 7

Penjelasan

Rumus mengurangkan tahun sekarang (2026) dengan tahun perolehan. Laptop dibeli 2022 sehingga hasilnya 4, genset 2019 menghasilkan 7.

5.4 Selisih Tanggal

FORMULA CARDExcel 2013+

DAYS

Fungsi

Menghitung jumlah hari antara dua tanggal.

Syntax
=DAYS(end_date, start_date)
Penjelasan Argument
ArgumentPenjelasan
end_dateTanggal akhir (ditulis lebih dulu)
start_dateTanggal awal
Contoh Data
ABC
1KontrakMulaiSelesai
2KTR-2026-0801 Mar 202631 Dec 2026
Formula
=DAYS(C2, B2)
=DAYS(C2, B2)+1
Hasil

305 hari, atau 306 hari jika tanggal mulai ikut dihitung

Penjelasan

DAYS sama dengan C2-B2. Hasil 305 adalah jarak antar tanggal. Jika kontrak berlaku sejak hari pertama sampai hari terakhir, tambahkan 1 untuk menghitung hari berlaku.

FORMULA CARD

DATEDIF

Fungsi

Menghitung selisih dua tanggal dalam tahun, bulan, atau hari penuh. Fungsi ini tidak muncul di daftar saran Excel, tetapi tersedia di semua versi.

Syntax
=DATEDIF(start_date, end_date, unit)
Penjelasan Argument
ArgumentPenjelasan
start_dateTanggal awal
end_dateTanggal akhir, harus lebih besar atau sama dengan start_date
unit"Y" tahun penuh, "M" bulan penuh, "D" hari, "YM" sisa bulan setelah tahun penuh, "MD" sisa hari setelah bulan penuh
Contoh Data
ABC
1KaryawanTanggal MasukTanggal Acuan
2Rudi10 Aug 201915 Jun 2026
Formula
=DATEDIF(B2, C2, "Y")
=DATEDIF(B2, C2, "YM")
=DATEDIF(B2, C2, "MD")
=DATEDIF(B2,C2,"Y")&" thn "&DATEDIF(B2,C2,"YM")&" bln "&DATEDIF(B2,C2,"MD")&" hari"
Hasil

6, 10, 5, dan teks "6 thn 10 bln 5 hari"

Penjelasan

Dari 10 Agu 2019 sampai 10 Agu 2025 sudah genap 6 tahun. Dari 10 Agu 2025 sampai 10 Jun 2026 ada 10 bulan penuh. Sisa dari 10 Jun ke 15 Jun adalah 5 hari.

FORMULA CARD

YEARFRAC

Fungsi

Menghitung selisih dua tanggal sebagai pecahan tahun, misalnya 0.71 tahun. Berguna untuk perhitungan prorata.

Syntax
=YEARFRAC(start_date, end_date, [basis])
Penjelasan Argument
ArgumentPenjelasan
start_dateTanggal awal
end_dateTanggal akhir
[basis]Cara menghitung hari. 0 atau kosong = 30/360 (US), 1 = hari aktual, 2 = aktual/360, 3 = aktual/365, 4 = 30/360 (Eropa)
Contoh Data
AB
1KeteranganNilai
2Tanggal Masuk01 Oct 2025
3Tanggal Hitung15 Jun 2026
4Bonus Tahunan Penuh12,000,000
Formula
=YEARFRAC(B2, B3)
=ROUND(B4*YEARFRAC(B2, B3), 0)
Hasil

0.705556 tahun, bonus prorata 8,466,667

Penjelasan

Dengan basis 30/360, setiap bulan dianggap 30 hari. Oktober 2025 sampai Juni 2026 dihitung 254 hari dari 360, yaitu 0.705556 tahun. Bonus penuh dikali pecahan tersebut lalu dibulatkan.

5.5 Jatuh Tempo dan Akhir Bulan

FORMULA CARD

EDATE

Fungsi

Menghasilkan tanggal beberapa bulan sebelum atau sesudah tanggal awal, dengan tanggal yang sama.

Syntax
=EDATE(start_date, months)
Penjelasan Argument
ArgumentPenjelasan
start_dateTanggal awal
monthsJumlah bulan. Positif ke depan, negatif ke belakang
Contoh Data
ABC
1KontrakMulaiDurasi (bulan)
2PKWT-0115 Jan 20266
3SEWA-0731 Jan 20261
Formula
=EDATE(B2, C2)
Hasil

15 Jul 2026 dan 28 Feb 2026

Penjelasan

Enam bulan setelah 15 Januari adalah 15 Juli. Untuk 31 Januari plus satu bulan, Februari 2026 tidak punya tanggal 31, sehingga Excel memakai tanggal terakhir Februari, yaitu 28.

FORMULA CARD

EOMONTH

Fungsi

Menghasilkan tanggal terakhir dari bulan tertentu, dihitung dari tanggal awal ditambah sejumlah bulan.

Syntax
=EOMONTH(start_date, months)
Penjelasan Argument
ArgumentPenjelasan
start_dateTanggal awal
months0 = akhir bulan yang sama, 1 = akhir bulan depan, -1 = akhir bulan lalu
Contoh Data
AB
1No InvoiceTanggal Invoice
2INV-046012 Jun 2026
Formula
=EOMONTH(B2, 0)
=EOMONTH(B2, 1)
=EOMONTH(B2, -1)+1
Hasil

30 Jun 2026, 31 Jul 2026, 01 Jun 2026

Penjelasan

Rumus pertama memberi akhir bulan invoice. Rumus kedua memberi akhir bulan berikutnya, cocok untuk syarat bayar "akhir bulan berikutnya". Rumus ketiga mengambil akhir bulan lalu (31 Mei) lalu ditambah 1, sehingga menjadi tanggal 1 bulan ini.

5.6 Hari dan Minggu

FORMULA CARD

WEEKDAY

Fungsi

Menghasilkan angka urutan hari dalam seminggu dari sebuah tanggal.

Syntax
=WEEKDAY(serial_number, [return_type])
Penjelasan Argument
ArgumentPenjelasan
serial_numberTanggal sumber
[return_type]1 atau kosong = Minggu 1 sampai Sabtu 7. 2 = Senin 1 sampai Minggu 7
Contoh Data
A
1Tanggal
213 Jun 2026
314 Jun 2026
415 Jun 2026
Formula
=WEEKDAY(A2, 2)
=IF(WEEKDAY(A2, 2)>5, "Weekend", "Hari Kerja")
Hasil
TanggalWEEKDAYKeterangan
13 Jun 2026 (Sabtu)6Weekend
14 Jun 2026 (Minggu)7Weekend
15 Jun 2026 (Senin)1Hari Kerja
Penjelasan

Dengan return_type 2, Senin bernilai 1 dan Minggu bernilai 7. Angka di atas 5 berarti Sabtu atau Minggu.

FORMULA CARD

WEEKNUM

Fungsi

Menghasilkan nomor minggu dalam setahun dari sebuah tanggal.

Syntax
=WEEKNUM(serial_number, [return_type])
Penjelasan Argument
ArgumentPenjelasan
serial_numberTanggal sumber
[return_type]1 atau kosong = minggu dimulai hari Minggu. 2 = minggu dimulai Senin. 21 = sistem ISO 8601
Contoh Data
A
1Tanggal
215 Jun 2026
Formula
=WEEKNUM(A2)
="W"&TEXT(WEEKNUM(A2, 21), "00")&"-"&YEAR(A2)
Hasil

25, dan label W25-2026

Penjelasan

Dengan sistem default, minggu pertama adalah minggu yang memuat 1 Januari, dan setiap minggu dimulai hari Minggu. 15 Juni 2026 jatuh di minggu ke-25. Pada tahun 2026, sistem ISO juga menghasilkan 25.

5.7 Hari Kerja

FORMULA CARD

WORKDAY

Fungsi

Menghasilkan tanggal setelah sejumlah hari kerja, dengan melewati Sabtu, Minggu, dan daftar hari libur.

Syntax
=WORKDAY(start_date, days, [holidays])
Penjelasan Argument
ArgumentPenjelasan
start_dateTanggal mulai (tidak ikut dihitung)
daysJumlah hari kerja yang ditambahkan
[holidays]Range daftar tanggal libur
Contoh Data
ABCDE
1PekerjaanMulaiDurasi (hari kerja)Libur (contoh)
2Instalasi ODP15 Jun 20261017 Jun 2026
322 Jun 2026
Formula
=WORKDAY(B2, C2)
=WORKDAY(B2, C2, $E$2:$E$3)
Hasil

29 Jun 2026 tanpa daftar libur, 01 Jul 2026 dengan daftar libur

Penjelasan

Hitungan dimulai dari hari setelah 15 Juni. Tanpa libur, 10 hari kerja jatuh pada Senin 29 Juni. Dengan dua hari libur di tengahnya, target mundur dua hari kerja menjadi Rabu 1 Juli.

FORMULA CARD

WORKDAY.INTL

Fungsi

Seperti WORKDAY, tetapi hari libur mingguan bisa diatur, misalnya kerja enam hari (libur hanya Minggu).

Syntax
=WORKDAY.INTL(start_date, days, [weekend], [holidays])
Penjelasan Argument
ArgumentPenjelasan
start_dateTanggal mulai
daysJumlah hari kerja
[weekend]Kode akhir pekan. 1 = Sabtu-Minggu, 11 = hanya Minggu, 7 = Jumat-Sabtu. Bisa juga teks 7 digit seperti "0000011"
[holidays]Range daftar libur
Contoh Data
ABC
1PekerjaanMulaiDurasi (hari kerja)
2Tarik Kabel Site A15 Jun 202610
Formula
=WORKDAY.INTL(B2, C2, 11)
Hasil

26 Jun 2026

Penjelasan

Kode 11 berarti hanya hari Minggu yang libur, jadi Sabtu tetap dihitung hari kerja. Sepuluh hari kerja dari 16 Juni termasuk Sabtu 20 Juni, sehingga target jatuh pada Jumat 26 Juni.

FORMULA CARD

NETWORKDAYS

Fungsi

Menghitung jumlah hari kerja di antara dua tanggal, termasuk tanggal awal dan akhir, tanpa Sabtu, Minggu, dan hari libur.

Syntax
=NETWORKDAYS(start_date, end_date, [holidays])
Penjelasan Argument
ArgumentPenjelasan
start_dateTanggal awal (ikut dihitung)
end_dateTanggal akhir (ikut dihitung)
[holidays]Range daftar libur
Contoh Data
ABCDE
1PeriodeMulaiSelesaiLibur (contoh)
2Juni 202601 Jun 202630 Jun 202617 Jun 2026
322 Jun 2026
Formula
=NETWORKDAYS(B2, C2, $E$2:$E$3)
Hasil

20 hari kerja

Penjelasan

Juni 2026 dimulai hari Senin dan punya 22 hari Senin sampai Jumat. Dua tanggal libur jatuh di hari kerja (Rabu dan Senin), sehingga hari kerja efektif menjadi 20.

FORMULA CARD

NETWORKDAYS.INTL

Fungsi

Seperti NETWORKDAYS, dengan pengaturan hari libur mingguan yang bisa diubah.

Syntax
=NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])
Penjelasan Argument
ArgumentPenjelasan
start_dateTanggal awal (ikut dihitung)
end_dateTanggal akhir (ikut dihitung)
[weekend]Kode atau teks 7 digit akhir pekan, sama seperti WORKDAY.INTL
[holidays]Range daftar libur
Contoh Data
ABCDE
1PeriodeMulaiSelesaiLibur (contoh)
2Juni 202601 Jun 202630 Jun 202617 Jun 2026
322 Jun 2026
Formula
=NETWORKDAYS.INTL(B2, C2, "0000001", $E$2:$E$3)
Hasil

24 hari kerja

Penjelasan

Dengan pola kerja enam hari, hanya hari Minggu yang libur. Juni 2026 punya 4 hari Minggu (7, 14, 21, 28), jadi ada 26 hari kerja. Dikurangi dua hari libur, hasilnya 24.

5.8 Komponen Waktu

Tiga fungsi berikut memakai data absensi yang sama, dengan batas jam masuk pukul 08:00:00.

FORMULA CARD

HOUR

Fungsi

Mengambil angka jam (0-23) dari sebuah waktu.

Syntax
=HOUR(serial_number)
Penjelasan Argument
ArgumentPenjelasan
serial_numberWaktu atau tanggal-waktu sumber
Contoh Data
AB
1KaryawanJam Masuk
2Rudi08:17:45
3Sari07:52:10
Formula
=HOUR(B2)
Hasil

8 dan 7

Penjelasan

Excel mengambil bagian jam saja. Menit dan detik diabaikan.

FORMULA CARD

MINUTE

Fungsi

Mengambil angka menit (0-59) dari sebuah waktu.

Syntax
=MINUTE(serial_number)
Penjelasan Argument
ArgumentPenjelasan
serial_numberWaktu sumber
Contoh Data
AB
1KaryawanJam Masuk
2Rudi08:17:45
3Sari07:52:10
Formula
=MINUTE(B2)
=MAX(0, (B2-TIME(8,0,0))*1440)
Hasil

MINUTE menghasilkan 17 dan 52. Keterlambatan: Rudi 17.75 menit, Sari 0

Penjelasan

MINUTE hanya membaca komponen menit dari jam, jadi 52 untuk Sari bukan berarti terlambat. Untuk keterlambatan, selisihkan jam masuk dengan pukul 08:00 (TIME(8,0,0)), lalu kalikan 1440 (jumlah menit dalam sehari). MAX(0, ...) mengubah hasil negatif (datang lebih awal) menjadi 0.

FORMULA CARD

SECOND

Fungsi

Mengambil angka detik (0-59) dari sebuah waktu.

Syntax
=SECOND(serial_number)
Penjelasan Argument
ArgumentPenjelasan
serial_numberWaktu sumber
Contoh Data
AB
1KaryawanJam Masuk
2Rudi08:17:45
3Sari07:52:10
Formula
=SECOND(B2)
=TIME(HOUR(B2), MINUTE(B2), 0)
Hasil

45 dan 10. Rumus kedua menghasilkan 08:17:00 dan 07:52:00

Penjelasan

SECOND mengambil detik. Rumus kedua menyusun ulang waktu tanpa detik, berguna jika aturan absensi hanya menghitung sampai menit.

REAL WORLD CASE STUDY

Project Aging & SLA Monitoring

Problem

Tim operasional menangani pekerjaan instalasi dengan SLA 25 hari kalender sejak tanggal start. Manajer ingin tahu berapa umur (aging) setiap pekerjaan, mana yang selesai tepat waktu, mana yang terlambat, dan berapa SLA achievement tim. Pekerjaan yang belum selesai harus dihitung aging-nya sampai hari ini.

Raw Data
ABCDEFGHI
1ProjectStartTargetActualAgingStatusTerlambatTgl Acuan15 Jun 2026
2P-01 Instalasi ODP Cibubur04 May 202627 May 2026
3P-02 Instalasi ODP Cawang11 May 202610 Jun 2026
4P-03 Instalasi ODP Kalibata18 May 2026
5P-04 Instalasi ODP Pancoran01 Jun 2026
6P-05 Instalasi ODP Tebet25 May 202612 Jun 2026
Formula

Isi di baris 2, lalu salin ke baris 6. Tanggal acuan di I1 (di file kerja isi dengan =TODAY()).

=B2+25                                                     // C2  Target = Start + SLA 25 hari
=IF(D2="", $I$1-B2, D2-B2)                                 // E2  Aging
=IF(D2<>"", IF(D2<=C2,"MET SLA","MISSED SLA"), IF($I$1>C2,"OVERDUE","OPEN"))   // F2 Status
=MAX(0, IF(D2="", $I$1, D2)-C2)                            // G2  Hari terlambat

Ringkasan:

=AVERAGE(E2:E6)                          // Rata-rata aging
=COUNTIF(F2:F6, "MET SLA")/COUNT(D2:D6)  // SLA achievement pekerjaan yang sudah selesai
=COUNTIF(F2:F6, "OVERDUE")               // Pekerjaan terbuka yang lewat target
Result
ProjectStartTargetActualAgingStatusTerlambat
P-0104 May 202629 May 202627 May 202623MET SLA0
P-0211 May 202605 Jun 202610 Jun 202630MISSED SLA5
P-0318 May 202612 Jun 202628OVERDUE3
P-0401 Jun 202626 Jun 202614OPEN0
P-0525 May 202619 Jun 202612 Jun 202618MET SLA0
RingkasanHasil
Rata-rata Aging22.6 hari
SLA Achievement (selesai)66.7% (2 dari 3)
Pekerjaan Overdue1
Explanation

Aging dihitung berbeda untuk pekerjaan yang sudah dan belum selesai. Jika kolom Actual terisi, aging = Actual - Start. Jika masih kosong, aging dihitung sampai tanggal acuan, sehingga pekerjaan terbuka tetap terlihat umurnya.

Status punya dua cabang. Pekerjaan selesai dibandingkan Actual dengan Target (MET atau MISSED SLA). Pekerjaan terbuka dibandingkan tanggal acuan dengan Target (OPEN atau OVERDUE). P-03 belum selesai dan sudah lewat 3 hari dari target, jadi perlu perhatian lebih dulu daripada P-04.

SLA achievement hanya membagi pekerjaan yang sudah selesai (COUNT(D2:D6) menghitung tanggal Actual yang terisi, yaitu 3). Pekerjaan terbuka tidak dimasukkan ke pembagi karena hasil akhirnya belum diketahui.

Answer
=WORKDAY(B2, 18)                                  // Target baru
=NETWORKDAYS(B2, IF(D2="", $I$1, D2))             // Aging hari kerja

Aging hari kerja: P-01 = 18, P-02 = 23, P-03 = 21, P-04 = 11, P-05 = 15. Target baru untuk P-01 adalah 28 May 2026 (18 hari kerja setelah Senin 4 Mei), sehingga actual 27 Mei tetap MET SLA.

BAB
06

LOOKUP & PENCARIAN DATA

Mengambil harga dari price list, nama karyawan dari NIK, atau stok dari kode material adalah pekerjaan yang dilakukan ratusan kali sehari di kantor. Fungsi lookup mengambil data dari tabel lain secara otomatis, sehingga Anda tidak perlu mencari dan menyalin manual.

Tujuan Pembelajaran
  • Mengambil data dengan VLOOKUP, HLOOKUP, dan LOOKUP
  • Memakai INDEX dan MATCH, sendiri maupun digabung
  • Memakai XLOOKUP dan XMATCH di Excel modern
  • Memahami perbedaan VLOOKUP, XLOOKUP, dan INDEX-MATCH secara objektif
  • Membuat form pencarian material otomatis
Formula Count
9
formula card di BAB ini
Rumus yang Dibahas
VLOOKUPHLOOKUPLOOKUPINDEXMATCHINDEX + MATCHXLOOKUPXMATCHCHOOSE

6.1 Tabel Master yang Dipakai di BAB Ini

Sebagian besar contoh di BAB ini mengambil data dari tabel master material berikut. Nama brand dan harga adalah data contoh.

ABCDEFG
1KodeNama MaterialBrandTypeUnitHargaStok
2MTR-001Kabel FO 24 CoreOptiNetOutdoorMeter12,5008,400
3MTR-002Kabel FO Drop 1 CoreFiberMaxDropMeter2,30015,000
4MTR-003Closure 48 CoreOptiNetInlinePcs850,00036
5MTR-004ODP 16 PortNexComPolePcs1,150,00052
6MTR-005Patch Cord SC-SC 3mLinkProIndoorPcs45,000420
7MTR-006Splitter 1:8NexComPLCPcs175,0000

6.2 Lookup Klasik

FORMULA CARD

VLOOKUP

Fungsi

Mencari nilai di kolom paling kiri sebuah tabel, lalu mengambil data dari kolom lain di baris yang sama.

Syntax
=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
Penjelasan Argument
ArgumentPenjelasan
lookup_valueNilai yang dicari, misalnya kode material
table_arrayTabel sumber. Kolom kunci harus menjadi kolom pertama
col_index_numNomor kolom yang diambil, dihitung dari kolom pertama table_array
[range_lookup]FALSE = cocok persis. TRUE atau kosong = cocok mendekati (data harus urut)
Contoh Data
Tabel master A1:G7. Cell pencarian J2 berisi MTR-004
ABCDEFG
1KodeNama MaterialBrandTypeUnitHargaStok
2MTR-001Kabel FO 24 CoreOptiNetOutdoorMeter12,5008,400
3MTR-002Kabel FO Drop 1 CoreFiberMaxDropMeter2,30015,000
4MTR-003Closure 48 CoreOptiNetInlinePcs850,00036
5MTR-004ODP 16 PortNexComPolePcs1,150,00052
6MTR-005Patch Cord SC-SC 3mLinkProIndoorPcs45,000420
7MTR-006Splitter 1:8NexComPLCPcs175,0000
Formula
=VLOOKUP(J2, $A$2:$G$7, 2, FALSE)
=VLOOKUP(J2, $A$2:$G$7, 6, FALSE)
Hasil

ODP 16 Port, dan harga 1,150,000

Penjelasan

Excel mencari MTR-004 di kolom A (kolom pertama table_array), menemukannya di baris 5, lalu mengambil kolom ke-2 (Nama Material) dan kolom ke-6 (Harga) di baris yang sama.

FORMULA CARD

HLOOKUP

Fungsi

Versi horizontal dari VLOOKUP. Mencari di baris paling atas, lalu mengambil data dari baris lain di kolom yang sama.

Syntax
=HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])
Penjelasan Argument
ArgumentPenjelasan
lookup_valueNilai yang dicari di baris pertama
table_arrayTabel sumber. Kunci harus berada di baris pertama
row_index_numNomor baris yang diambil
[range_lookup]FALSE = cocok persis
Contoh Data
ABCD
1ZonaZona 1Zona 2Zona 3
2Tarif per kg9,00012,00018,000
3Estimasi (hari)235
Formula
=HLOOKUP("Zona 2", $A$1:$D$3, 2, FALSE)
=HLOOKUP("Zona 2", $A$1:$D$3, 3, FALSE)
Hasil

12,000 per kg, estimasi 3 hari

Penjelasan

Excel mencari "Zona 2" di baris 1, menemukannya di kolom C, lalu mengambil baris ke-2 (tarif) dan baris ke-3 (estimasi) di kolom C.

FORMULA CARD

LOOKUP

Fungsi

Mencari nilai dengan pencocokan mendekati di data yang urut naik, lalu mengambil nilai di posisi yang sama dari range hasil. Cocok untuk tabel bertingkat.

Syntax
=LOOKUP(lookup_value, lookup_vector, [result_vector])
Penjelasan Argument
ArgumentPenjelasan
lookup_valueNilai yang dicari
lookup_vectorRange pencarian, wajib urut naik
[result_vector]Range hasil, ukurannya sama dengan lookup_vector
Contoh Data
ABCD
1Batas Bawah PenjualanKomisiPenjualan Sales
200%62,000,000
325,000,0001%
450,000,0002%
5100,000,0003%
Formula
=LOOKUP(D2, A2:A5, B2:B5)
Hasil

2%

Penjelasan

Excel mencari angka terbesar di kolom A yang masih lebih kecil atau sama dengan 62,000,000, yaitu 50,000,000. Komisi di baris yang sama adalah 2%.

6.3 INDEX dan MATCH

FORMULA CARD

INDEX

Fungsi

Mengambil isi cell berdasarkan nomor baris dan nomor kolom di dalam sebuah range.

Syntax
=INDEX(array, row_num, [column_num])
Penjelasan Argument
ArgumentPenjelasan
arrayRange sumber
row_numNomor baris di dalam range
[column_num]Nomor kolom di dalam range. Boleh dikosongkan jika range hanya satu kolom
Contoh Data
Tabel master di A1:G7 (lihat 6.1)
ABC
1KodeNama MaterialBrand
2MTR-001Kabel FO 24 CoreOptiNet
3MTR-002Kabel FO Drop 1 CoreFiberMax
4MTR-003Closure 48 CoreOptiNet
5MTR-004ODP 16 PortNexCom
Formula
=INDEX($A$2:$G$7, 4, 2)
=INDEX($B$2:$B$7, 4)
Hasil

ODP 16 Port (kedua rumus)

Penjelasan

Baris ke-4 dari range A2:G7 adalah baris 5 di sheet (MTR-004). Kolom ke-2 dari range adalah Nama Material. Rumus kedua memakai range satu kolom, jadi cukup nomor baris.

FORMULA CARD

MATCH

Fungsi

Mencari posisi (nomor urut) sebuah nilai di dalam satu baris atau satu kolom.

Syntax
=MATCH(lookup_value, lookup_array, [match_type])
Penjelasan Argument
ArgumentPenjelasan
lookup_valueNilai yang dicari
lookup_arrayRange satu baris atau satu kolom
[match_type]0 = cocok persis. 1 = mendekati, data urut naik. -1 = mendekati, data urut turun
Contoh Data
Tabel master di A1:G7 (lihat 6.1)
ABCDEFG
1KodeNama MaterialBrandTypeUnitHargaStok
2MTR-001Kabel FO 24 CoreOptiNetOutdoorMeter12,5008,400
Formula
=MATCH("MTR-004", $A$2:$A$7, 0)
=MATCH("Harga", $A$1:$G$1, 0)
Hasil

4, dan 6

Penjelasan

MTR-004 berada di urutan ke-4 dari range A2:A7. Judul "Harga" berada di urutan ke-6 dari judul kolom A1:G1. MATCH tidak mengambil isi cell, hanya posisinya.

FORMULA CARD

INDEX + MATCH

Fungsi

Kombinasi dua fungsi untuk lookup yang fleksibel. MATCH mencari posisi, lalu INDEX mengambil data di posisi tersebut. Bisa mencari ke kiri dan ke dua arah.

Syntax
=INDEX(return_range, MATCH(lookup_value, lookup_range, 0))
Penjelasan Argument
ArgumentPenjelasan
return_rangeKolom hasil yang diambil
lookup_valueNilai yang dicari
lookup_rangeKolom tempat mencari, ukurannya sama dengan return_range
Contoh Data
Tabel master di A1:G7 (lihat 6.1). J2 = MTR-004, J3 = Splitter 1:8
ABCDEFG
1KodeNama MaterialBrandTypeUnitHargaStok
2MTR-001Kabel FO 24 CoreOptiNetOutdoorMeter12,5008,400
3MTR-002Kabel FO Drop 1 CoreFiberMaxDropMeter2,30015,000
4MTR-003Closure 48 CoreOptiNetInlinePcs850,00036
5MTR-004ODP 16 PortNexComPolePcs1,150,00052
6MTR-005Patch Cord SC-SC 3mLinkProIndoorPcs45,000420
7MTR-006Splitter 1:8NexComPLCPcs175,0000
Formula
=INDEX($F$2:$F$7, MATCH(J2, $A$2:$A$7, 0))
=INDEX($A$2:$A$7, MATCH(J3, $B$2:$B$7, 0))
=INDEX($A$2:$G$7, MATCH(J2, $A$2:$A$7, 0), MATCH("Stok", $A$1:$G$1, 0))
Hasil

1,150,000, lalu MTR-006, lalu 52

Penjelasan

Rumus pertama mengambil harga MTR-004. Rumus kedua mencari berdasarkan nama di kolom B lalu mengambil kode di kolom A, sesuatu yang tidak bisa dilakukan VLOOKUP karena kolom hasilnya di sebelah kiri. Rumus ketiga memakai dua MATCH: satu untuk baris, satu untuk kolom.

6.4 Lookup Modern

FORMULA CARDExcel 2021+

XLOOKUP

Fungsi

Fungsi lookup modern yang mencari di satu range dan mengambil hasil dari range lain. Bisa mencari ke kiri, punya pesan pengganti bawaan, dan bisa mencari dari bawah.

Syntax
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])
Penjelasan Argument
ArgumentPenjelasan
lookup_valueNilai yang dicari
lookup_arrayRange tempat mencari
return_arrayRange hasil. Boleh lebih dari satu kolom
[if_not_found]Nilai jika tidak ditemukan
[match_mode]0 = persis (default), -1 = persis atau lebih kecil berikutnya, 1 = persis atau lebih besar berikutnya, 2 = wildcard
[search_mode]1 = dari atas (default), -1 = dari bawah
Contoh Data
Tabel master di A1:G7 (lihat 6.1). J2 = MTR-004, J4 = MTR-099
ABCDEFG
1KodeNama MaterialBrandTypeUnitHargaStok
2MTR-001Kabel FO 24 CoreOptiNetOutdoorMeter12,5008,400
3MTR-002Kabel FO Drop 1 CoreFiberMaxDropMeter2,30015,000
4MTR-003Closure 48 CoreOptiNetInlinePcs850,00036
5MTR-004ODP 16 PortNexComPolePcs1,150,00052
6MTR-005Patch Cord SC-SC 3mLinkProIndoorPcs45,000420
7MTR-006Splitter 1:8NexComPLCPcs175,0000
Formula
=XLOOKUP(J2, $A$2:$A$7, $F$2:$F$7)
=XLOOKUP(J4, $A$2:$A$7, $F$2:$F$7, "Tidak ditemukan")
=XLOOKUP(J2, $A$2:$A$7, $B$2:$G$7)
Hasil

1,150,000, lalu "Tidak ditemukan", lalu satu baris berisi: ODP 16 Port | NexCom | Pole | Pcs | 1,150,000 | 52

Penjelasan

Rumus pertama setara INDEX-MATCH tetapi lebih ringkas. Rumus kedua menangani kode yang tidak ada tanpa IFNA. Rumus ketiga mengembalikan enam kolom sekaligus. Hasilnya "tumpah" (spill) ke cell di kanannya.

FORMULA CARDExcel 2021+

XMATCH

Fungsi

Versi modern MATCH. Default-nya sudah cocok persis, dan bisa mencari dari bawah.

Syntax
=XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])
Penjelasan Argument
ArgumentPenjelasan
lookup_valueNilai yang dicari
lookup_arrayRange satu baris atau satu kolom
[match_mode]0 = persis (default), -1, 1, atau 2 (wildcard)
[search_mode]1 = dari atas, -1 = dari bawah
Contoh Data
Kolom Brand di tabel master, C2:C7
ABC
1KodeNama MaterialBrand
2MTR-001Kabel FO 24 CoreOptiNet
3MTR-002Kabel FO Drop 1 CoreFiberMax
4MTR-003Closure 48 CoreOptiNet
5MTR-004ODP 16 PortNexCom
6MTR-005Patch Cord SC-SC 3mLinkPro
7MTR-006Splitter 1:8NexCom
Formula
=XMATCH("OptiNet", $C$2:$C$7)
=XMATCH("OptiNet", $C$2:$C$7, 0, -1)
Hasil

1 (kemunculan pertama) dan 3 (kemunculan terakhir)

Penjelasan

OptiNet muncul di posisi 1 dan 3. Dengan search_mode -1, pencarian dimulai dari bawah sehingga posisi terakhir yang ditemukan lebih dulu.

FORMULA CARD

CHOOSE

Fungsi

Memilih satu nilai dari daftar berdasarkan nomor urut.

Syntax
=CHOOSE(index_num, value1, [value2], ...)
Penjelasan Argument
ArgumentPenjelasan
index_numNomor urut pilihan, mulai dari 1
value1Pilihan pertama
[value2]Pilihan berikutnya, sampai 254 pilihan
Contoh Data
AB
1TiketKode Prioritas
2TK-1011
3TK-1023
4TK-1032
Formula
=CHOOSE(B2, "Tinggi", "Sedang", "Rendah")
Hasil

TK-101 Tinggi, TK-102 Rendah, TK-103 Sedang

Penjelasan

Kode 1 memilih pilihan pertama, kode 3 memilih pilihan ketiga.

6.5 VLOOKUP vs XLOOKUP vs INDEX-MATCH

Ketiganya bisa menyelesaikan kebutuhan lookup harian. Perbedaannya ada di cara penulisan, fleksibilitas, dan versi Excel yang mendukung. Tabel berikut membandingkan fakta, bukan menentukan yang terbaik.

AspekVLOOKUPINDEX-MATCHXLOOKUP
Syntax=VLOOKUP(nilai, tabel, no_kolom, FALSE)=INDEX(hasil, MATCH(nilai, cari, 0))=XLOOKUP(nilai, cari, hasil)
Cara kerjaCari di kolom pertama tabel, ambil kolom ke-nMATCH mencari posisi, INDEX mengambil isiCari di range pencarian, ambil dari range hasil
Arah pencarianHanya ke kanan dari kolom kunciKe segala arahKe segala arah
Default pencocokanMendekati (harus ditulis FALSE)Mendekati (harus ditulis 0)Persis
Sisipan kolomNomor kolom bisa bergeserAmanAman
Tidak ditemukan#N/A, perlu IFNA#N/A, perlu IFNAArgument if_not_found bawaan
Hasil banyak kolomSatu kolom per rumusSatu kolom per rumus (tanpa spill)Bisa banyak kolom sekaligus (spill)
Cari dari bawahTidak bisa langsungPerlu teknik tambahansearch_mode -1
KompatibilitasSemua versiSemua versiExcel 2021, 2024, Microsoft 365, Excel untuk web

Kapan digunakan

REAL WORLD CASE STUDY

Material Database

Problem

Staf gudang sering ditanya detail material oleh tim lapangan: nama, brand, tipe, satuan, harga, dan sisa stok. Mereka ingin form sederhana: cukup ketik kode material di satu cell, lalu semua detail muncul otomatis beserta status stoknya.

Raw Data
Tabel master di A1:G7 (lengkap di 6.1). Form pencarian di kolom I dan J
ABCDEFGHIJ
1KodeNama MaterialBrandTypeUnitHargaStokFieldHasil
2MTR-001Kabel FO 24 CoreOptiNetOutdoorMeter12,5008,400KodeMTR-003
3MTR-002Kabel FO Drop 1 CoreFiberMaxDropMeter2,30015,000Nama Material
4MTR-003Closure 48 CoreOptiNetInlinePcs850,00036Brand
5MTR-004ODP 16 PortNexComPolePcs1,150,00052Type
6MTR-005Patch Cord SC-SC 3mLinkProIndoorPcs45,000420Unit
7MTR-006Splitter 1:8NexComPLCPcs175,0000Harga
8Stok
9Status Stok
Formula

Label di I3:I8 dibuat sama persis dengan judul kolom tabel master. Dengan begitu, satu rumus di J3 bisa disalin sampai J8.

Versi semua Excel (VLOOKUP + MATCH):

=IFERROR(VLOOKUP($J$2, $A$1:$G$7, MATCH(I3, $A$1:$G$1, 0), FALSE), "Kode tidak ada")

Versi INDEX-MATCH:

=IFERROR(INDEX($A$1:$G$7, MATCH($J$2, $A$1:$A$7, 0), MATCH(I3, $A$1:$G$1, 0)), "Kode tidak ada")

Versi Excel 2021+ (XLOOKUP):

=XLOOKUP($J$2, $A$2:$A$7, XLOOKUP(I3, $A$1:$G$1, $A$2:$G$7), "Kode tidak ada")

Status stok di J9:

=IF(J8=0, "HABIS", IF(J8<50, "MENIPIS", "AMAN"))
Result
FieldHasil untuk MTR-003
Nama MaterialClosure 48 Core
BrandOptiNet
TypeInline
UnitPcs
Harga850,000
Stok36
Status StokMENIPIS
Explanation

MATCH(I3, $A$1:$G$1, 0) mencari posisi label "Nama Material" di baris judul (posisi 2) dan memberikannya ke VLOOKUP sebagai nomor kolom. Saat rumus disalin ke J4, label berubah menjadi "Brand" sehingga nomor kolom otomatis menjadi 3. Satu rumus melayani semua field.

Pada versi XLOOKUP, XLOOKUP bagian dalam mengambil satu kolom utuh sesuai label (misalnya seluruh kolom Brand), lalu XLOOKUP bagian luar mengambil baris yang kodenya cocok dari kolom tersebut.

Stok 36 berada di bawah batas 50, sehingga statusnya MENIPIS. Batas 50 bisa dipindah ke cell tersendiri agar mudah diubah.

Answer
  1. Splitter 1:8, NexCom, PLC, Pcs, 175,000, stok 0, status HABIS.
  2. Rumus Nilai Stok:
=IFERROR(J7*J8, 0)

Untuk MTR-003 hasilnya 850,000 × 36 = 30,600,000. Untuk MTR-006 hasilnya 0.

  1. Pilih J2, buka Data > Data Validation, pilih List, lalu isi Source dengan =$A$2:$A$7. Pengguna kini memilih kode dari dropdown sehingga salah ketik tidak mungkin terjadi.
BAB
07

FILTER, SORT & DYNAMIC ARRAY

Excel modern bisa mengembalikan banyak hasil dari satu rumus. Hasilnya "tumpah" (spill) ke cell di sekitarnya dan ikut berubah saat data sumber berubah. Dengan fungsi dynamic array, laporan yang dulu dibuat dengan filter manual bisa diperbarui otomatis.

Tujuan Pembelajaran
  • Memahami konsep spill dan referensi spill (#)
  • Menyaring, mengurutkan, dan mengambil data unik dengan rumus
  • Membentuk ulang data dengan TAKE, DROP, CHOOSECOLS, dan CHOOSEROWS
  • Menggabungkan range dengan VSTACK dan HSTACK
  • Membuat report proyek yang berubah otomatis berdasarkan pilihan filter
Formula Count
14
formula card di BAB ini
Rumus yang Dibahas
FILTERSORTSORTBYUNIQUESEQUENCETRANSPOSETAKEDROPCHOOSECOLSCHOOSEROWSVSTACKHSTACKTOCOLTOROW

7.1 Konsep Dynamic Array

Rumus biasa menghasilkan satu nilai di satu cell. Rumus dynamic array bisa menghasilkan banyak nilai, lalu Excel mengisikan hasilnya ke cell di bawah dan di kanannya. Area hasil ini disebut spill range.

IstilahArti
SpillHasil rumus mengisi beberapa cell sekaligus. Hanya cell pertama yang berisi rumus
Referensi spill #H2# berarti seluruh hasil spill yang dimulai di H2, berapa pun ukurannya
#SPILL!Area spill terhalang cell yang sudah berisi sesuatu

Data yang dipakai di BAB ini

Nilai proyek dalam juta rupiah. Nama provider adalah data contoh.

ABCDEF
1IDProjectProvinsiProviderStatusNilai
2P-01FO Backbone MedanSumatera UtaraNetraComON PROGRESS850
3P-02Tower BekasiJawa BaratNusanetDELAY420
4P-03FTTH BandungJawa BaratNetraComCOMPLETED610
5P-04BTS BogorJawa BaratSelulinkON PROGRESS380
6P-05ODC DepokJawa BaratNusanetCOMPLETED275
7P-06FO Access TangerangBantenSelulinkDELAY530
8P-07Microcell JakartaDKI JakartaNetraComON PROGRESS295
9P-08FTTH MedanSumatera UtaraNusanetDELAY470

7.2 Menyaring, Mengurutkan, dan Data Unik

FORMULA CARDExcel 2021+

FILTER

Fungsi

Menampilkan baris yang memenuhi kriteria. Hasilnya berubah otomatis saat data sumber berubah.

Syntax
=FILTER(array, include, [if_empty])
Penjelasan Argument
ArgumentPenjelasan
arrayRange data yang disaring
includeKondisi TRUE/FALSE per baris, tingginya sama dengan array
[if_empty]Nilai jika tidak ada baris yang cocok
Contoh Data
Data proyek A1:F9 (lihat 7.1)
ABCDEF
1IDProjectProvinsiProviderStatusNilai
2P-01FO Backbone MedanSumatera UtaraNetraComON PROGRESS850
3P-02Tower BekasiJawa BaratNusanetDELAY420
Formula
=FILTER(A2:F9, C2:C9="Jawa Barat")
=FILTER(A2:F9, (C2:C9="Jawa Barat")*(E2:E9="COMPLETED"))
=FILTER(A2:F9, (E2:E9="DELAY")+(F2:F9>=800), "Tidak ada data")
Hasil

Rumus 1: P-02, P-03, P-04, P-05. Rumus 2: P-03, P-05. Rumus 3: P-01, P-02, P-06, P-08.

Penjelasan

Tanda * di antara kondisi berarti AND (kedua kondisi harus benar). Tanda + berarti OR (salah satu cukup). Rumus ketiga mengambil proyek DELAY ditambah proyek bernilai minimal 800 juta, sehingga P-01 yang ON PROGRESS ikut masuk.

FORMULA CARDExcel 2021+

SORT

Fungsi

Mengurutkan range berdasarkan kolom tertentu, tanpa mengubah urutan data asli.

Syntax
=SORT(array, [sort_index], [sort_order], [by_col])
Penjelasan Argument
ArgumentPenjelasan
arrayRange yang diurutkan
[sort_index]Nomor kolom acuan urutan. Default 1
[sort_order]1 = naik (default), -1 = turun
[by_col]FALSE = urut per baris (default), TRUE = urut per kolom
Contoh Data
Data proyek A1:F9 (lihat 7.1)
ABCDEF
1IDProjectProvinsiProviderStatusNilai
2P-01FO Backbone MedanSumatera UtaraNetraComON PROGRESS850
3P-02Tower BekasiJawa BaratNusanetDELAY420
Formula
=SORT(A2:F9, 6, -1)
Hasil
IDNilai
P-01850
P-03610
P-06530
P-08470
P-02420
P-04380
P-07295
P-05275
Penjelasan

Kolom ke-6 (Nilai) dipakai sebagai acuan dan diurutkan dari besar ke kecil. Seluruh kolom lain ikut berpindah sesuai barisnya (tabel hasil di atas hanya menampilkan ID dan Nilai).

FORMULA CARDExcel 2021+

SORTBY

Fungsi

Mengurutkan range berdasarkan range lain, dan bisa memakai beberapa level urutan.

Syntax
=SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2], ...)
Penjelasan Argument
ArgumentPenjelasan
arrayRange yang ditampilkan
by_array1Range acuan urutan pertama
[sort_order1]1 = naik, -1 = turun
[by_array2, sort_order2]Acuan urutan kedua dan seterusnya
Contoh Data
Data proyek A1:F9 (lihat 7.1)
ABCDEF
1IDProjectProvinsiProviderStatusNilai
2P-01FO Backbone MedanSumatera UtaraNetraComON PROGRESS850
Formula
=SORTBY(B2:B9, E2:E9, 1, F2:F9, -1)
Hasil
Project(Status)(Nilai)
FTTH BandungCOMPLETED610
ODC DepokCOMPLETED275
FO Access TangerangDELAY530
FTTH MedanDELAY470
Tower BekasiDELAY420
FO Backbone MedanON PROGRESS850
BTS BogorON PROGRESS380
Microcell JakartaON PROGRESS295
Penjelasan

Hanya kolom Project yang ditampilkan, tetapi urutannya ditentukan oleh Status (A-Z) lalu Nilai (besar ke kecil) di dalam status yang sama. Kolom Status dan Nilai di tabel hasil hanya sebagai keterangan.

FORMULA CARDExcel 2021+

UNIQUE

Fungsi

Mengambil daftar nilai unik (tanpa duplikat) dari sebuah range.

Syntax
=UNIQUE(array, [by_col], [exactly_once])
Penjelasan Argument
ArgumentPenjelasan
arrayRange sumber
[by_col]FALSE = bandingkan per baris (default)
[exactly_once]TRUE = hanya nilai yang muncul tepat satu kali
Contoh Data
Kolom Provider D2:D9 dan Provinsi C2:C9 dari data proyek
ABCD
1IDProjectProvinsiProvider
2P-01FO Backbone MedanSumatera UtaraNetraCom
3P-02Tower BekasiJawa BaratNusanet
4P-03FTTH BandungJawa BaratNetraCom
5P-04BTS BogorJawa BaratSelulink
6P-05ODC DepokJawa BaratNusanet
7P-06FO Access TangerangBantenSelulink
8P-07Microcell JakartaDKI JakartaNetraCom
9P-08FTTH MedanSumatera UtaraNusanet
Formula
=UNIQUE(D2:D9)
=SORT(UNIQUE(C2:C9))
=COUNTA(UNIQUE(C2:C9))
=UNIQUE(C2:C9, FALSE, TRUE)
Hasil

Rumus 1: NetraCom, Nusanet, Selulink. Rumus 2: Banten, DKI Jakarta, Jawa Barat, Sumatera Utara. Rumus 3: 4. Rumus 4: Banten, DKI Jakarta.

Penjelasan

UNIQUE mempertahankan urutan kemunculan pertama. Dibungkus SORT, hasilnya urut abjad. COUNTA menghitung berapa provinsi berbeda. Rumus keempat hanya menampilkan provinsi yang muncul sekali.

FORMULA CARDExcel 2021+

SEQUENCE

Fungsi

Membuat deret angka berurutan dalam jumlah baris dan kolom tertentu.

Syntax
=SEQUENCE(rows, [columns], [start], [step])
Penjelasan Argument
ArgumentPenjelasan
rowsJumlah baris
[columns]Jumlah kolom. Default 1
[start]Angka awal. Default 1
[step]Kenaikan tiap langkah. Default 1
Contoh Data
Data proyek A1:F9 (lihat 7.1), 8 baris data
AB
1IDProject
2P-01FO Backbone Medan
3P-02Tower Bekasi
Formula
=SEQUENCE(COUNTA(A2:A9))
=SEQUENCE(7, 1, DATE(2026,6,15), 1)
=SEQUENCE(1, 4, 100, 50)
Hasil

Rumus 1: angka 1 sampai 8 ke bawah. Rumus 2: tanggal 15 Jun sampai 21 Jun 2026 (format sebagai Date). Rumus 3: 100, 150, 200, 250 ke samping.

Penjelasan

Jumlah baris pada rumus pertama mengikuti jumlah data, sehingga nomor urut bertambah sendiri saat proyek baru ditambahkan. Rumus kedua membuat 7 tanggal berturut-turut mulai 15 Juni.

FORMULA CARD

TRANSPOSE

Fungsi

Memutar orientasi range: baris menjadi kolom dan kolom menjadi baris.

Syntax
=TRANSPOSE(array)
Penjelasan Argument
ArgumentPenjelasan
arrayRange yang diputar
Contoh Data
ABCD
1BulanJanFebMar
2Target100120150
Formula
=TRANSPOSE(A1:D2)
Hasil
BulanTarget
Jan100
Feb120
Mar150
Penjelasan

Range 2 baris × 4 kolom berubah menjadi 4 baris × 2 kolom. Hasil tetap terhubung ke sumber, jadi perubahan target ikut terlihat.

7.3 Membentuk Ulang Data

FORMULA CARDExcel 2024 / 365

TAKE

Fungsi

Mengambil sejumlah baris atau kolom dari awal atau akhir sebuah array.

Syntax
=TAKE(array, rows, [columns])
Penjelasan Argument
ArgumentPenjelasan
arrayRange atau hasil rumus sumber
rowsJumlah baris. Positif dari atas, negatif dari bawah
[columns]Jumlah kolom. Positif dari kiri, negatif dari kanan
Contoh Data
Data proyek A1:F9 (lihat 7.1)
ABCDEF
1IDProjectProvinsiProviderStatusNilai
2P-01FO Backbone MedanSumatera UtaraNetraComON PROGRESS850
Formula
=TAKE(SORT(A2:F9, 6, -1), 3)
=TAKE(A2:F9, -2, 2)
Hasil

Rumus 1: tiga proyek bernilai terbesar (P-01, P-03, P-06) dengan semua kolom. Rumus 2: dua baris terakhir, dua kolom pertama (P-07 Microcell Jakarta, P-08 FTTH Medan).

Penjelasan

SORT mengurutkan nilai dari besar ke kecil, lalu TAKE mengambil 3 baris teratas. Pada rumus kedua, -2 berarti dua baris dari bawah.

FORMULA CARDExcel 2024 / 365

DROP

Fungsi

Membuang sejumlah baris atau kolom dari awal atau akhir array. Kebalikan dari TAKE.

Syntax
=DROP(array, rows, [columns])
Penjelasan Argument
ArgumentPenjelasan
arrayRange atau hasil rumus sumber
rowsJumlah baris yang dibuang. Positif dari atas, negatif dari bawah
[columns]Jumlah kolom yang dibuang
Contoh Data
Data proyek A1:F9 (lihat 7.1)
ABCDEF
1IDProjectProvinsiProviderStatusNilai
2P-01FO Backbone MedanSumatera UtaraNetraComON PROGRESS850
Formula
=DROP(A1:F9, 1)
=DROP(A2:F9, 0, 1)
Hasil

Rumus 1: data tanpa baris judul (8 baris). Rumus 2: data tanpa kolom ID (mulai dari kolom Project).

Penjelasan

Rumus pertama membuang baris judul. Rumus kedua tidak membuang baris (0) tetapi membuang 1 kolom dari kiri.

FORMULA CARDExcel 2024 / 365

CHOOSECOLS

Fungsi

Mengambil kolom tertentu dari array, dengan urutan sesuai keinginan.

Syntax
=CHOOSECOLS(array, col_num1, [col_num2], ...)
Penjelasan Argument
ArgumentPenjelasan
arrayRange atau hasil rumus sumber
col_num1Nomor kolom pertama yang diambil. Negatif dihitung dari kanan
[col_num2]Nomor kolom berikutnya
Contoh Data
Data proyek A1:F9 (lihat 7.1)
ABCDEF
1IDProjectProvinsiProviderStatusNilai
2P-01FO Backbone MedanSumatera UtaraNetraComON PROGRESS850
Formula
=CHOOSECOLS(A2:F9, 2, 5)
=CHOOSECOLS(A2:F9, 5, 2, -1)
Hasil

Rumus 1: kolom Project dan Status. Rumus 2: Status, Project, lalu Nilai (kolom terakhir).

Penjelasan

Nomor kolom dihitung dari kolom pertama array. Urutan argument menentukan urutan kolom hasil, sehingga kolom bisa disusun ulang.

FORMULA CARDExcel 2024 / 365

CHOOSEROWS

Fungsi

Mengambil baris tertentu dari array berdasarkan nomor urut.

Syntax
=CHOOSEROWS(array, row_num1, [row_num2], ...)
Penjelasan Argument
ArgumentPenjelasan
arrayRange atau hasil rumus sumber
row_num1Nomor baris pertama. Negatif dihitung dari bawah
[row_num2]Nomor baris berikutnya
Contoh Data
Data proyek A1:F9 (lihat 7.1)
ABCDEF
1IDProjectProvinsiProviderStatusNilai
2P-01FO Backbone MedanSumatera UtaraNetraComON PROGRESS850
Formula
=CHOOSEROWS(A2:F9, 1, -1)
Hasil

Baris P-01 (pertama) dan P-08 (terakhir)

Penjelasan

Angka 1 mengambil baris pertama data, angka -1 mengambil baris terakhir.

7.4 Menggabungkan Range

FORMULA CARDExcel 2024 / 365

VSTACK

Fungsi

Menumpuk beberapa range secara vertikal (atas ke bawah) menjadi satu array.

Syntax
=VSTACK(array1, [array2], ...)
Penjelasan Argument
ArgumentPenjelasan
array1Range pertama (paling atas)
[array2]Range berikutnya
Contoh Data
ABCDE
1Region JawaNilaiRegion SumateraNilai
2Bekasi420Medan Backbone850
3Bandung610Medan FTTH470
4Bogor380
Formula
=VSTACK(A1:B4, D2:E3)
Hasil
Region JawaNilai
Bekasi420
Bandung610
Bogor380
Medan Backbone850
Medan FTTH470
Penjelasan

Range pertama diambil lengkap dengan judulnya (A1:B4). Range kedua hanya diambil datanya (D2:E3) sehingga tidak ada judul ganda di tengah.

FORMULA CARDExcel 2024 / 365

HSTACK

Fungsi

Menyusun beberapa range secara horizontal (kiri ke kanan) menjadi satu array.

Syntax
=HSTACK(array1, [array2], ...)
Penjelasan Argument
ArgumentPenjelasan
array1Range pertama (paling kiri)
[array2]Range berikutnya
Contoh Data
Data proyek A1:F9 (lihat 7.1)
ABCDEF
1IDProjectProvinsiProviderStatusNilai
2P-01FO Backbone MedanSumatera UtaraNetraComON PROGRESS850
Formula
=HSTACK(UNIQUE(D2:D9), SUMIFS(F2:F9, D2:D9, UNIQUE(D2:D9)))
Hasil
ProviderTotal Nilai
NetraCom1,755
Nusanet1,165
Selulink910
Penjelasan

UNIQUE membuat daftar provider. SUMIFS menerima daftar itu sebagai kriteria dan menghitung total untuk setiap provider sekaligus. HSTACK menempelkan keduanya menjadi tabel dua kolom.

FORMULA CARDExcel 2024 / 365

TOCOL

Fungsi

Mengubah range dua dimensi menjadi satu kolom.

Syntax
=TOCOL(array, [ignore], [scan_by_column])
Penjelasan Argument
ArgumentPenjelasan
arrayRange sumber
[ignore]0 = simpan semua, 1 = abaikan kosong, 2 = abaikan error, 3 = abaikan kosong dan error
[scan_by_column]FALSE = baca per baris (default), TRUE = baca per kolom
Contoh Data
ABCD
1ShiftPetugas 1Petugas 2Petugas 3
2PagiAndiBudi
3MalamCitraDedi
Formula
=TOCOL(B2:D3, 1)
Hasil

Andi, Budi, Citra, Dedi (satu kolom)

Penjelasan

Excel membaca range baris per baris dan membuang cell kosong karena ignore bernilai 1. Hasilnya daftar petugas dalam satu kolom.

FORMULA CARDExcel 2024 / 365

TOROW

Fungsi

Mengubah range menjadi satu baris.

Syntax
=TOROW(array, [ignore], [scan_by_column])
Penjelasan Argument
ArgumentPenjelasan
arrayRange sumber
[ignore]Sama seperti TOCOL
[scan_by_column]FALSE = baca per baris, TRUE = baca per kolom
Contoh Data
Kolom Provinsi C2:C9 dari data proyek
ABC
1IDProjectProvinsi
2P-01FO Backbone MedanSumatera Utara
3P-02Tower BekasiJawa Barat
4P-03FTTH BandungJawa Barat
5P-04BTS BogorJawa Barat
6P-05ODC DepokJawa Barat
7P-06FO Access TangerangBanten
8P-07Microcell JakartaDKI Jakarta
9P-08FTTH MedanSumatera Utara
Formula
=TOROW(UNIQUE(C2:C9))
Hasil

Sumatera Utara | Jawa Barat | Banten | DKI Jakarta (satu baris, empat kolom)

Penjelasan

UNIQUE menghasilkan daftar provinsi ke bawah, lalu TOROW memutarnya menjadi satu baris. Cocok untuk judul kolom tabel rekap.

REAL WORLD CASE STUDY

Dynamic Project Report

Problem

Manajer proyek ingin laporan yang bisa difilter berdasarkan Provinsi, Provider, dan Status lewat dropdown, dengan pilihan "Semua" untuk setiap filter. Hasil harus langsung berubah saat pilihan diganti, diurutkan dari nilai terbesar, dan menampilkan total nilai proyek yang tampil.

Raw Data
Data proyek di A1:F9 (lihat 7.1). Panel filter di H1:I4
ABCDEFGHI
1IDProjectProvinsiProviderStatusNilaiFilterPilihan
2P-01FO Backbone MedanSumatera UtaraNetraComON PROGRESS850ProvinsiSemua
3P-02Tower BekasiJawa BaratNusanetDELAY420ProviderNetraCom
4P-03FTTH BandungJawa BaratNetraComCOMPLETED610StatusSemua
5P-04BTS BogorJawa BaratSelulinkON PROGRESS380
6P-05ODC DepokJawa BaratNusanetCOMPLETED275
7P-06FO Access TangerangBantenSelulinkDELAY530
8P-07Microcell JakartaDKI JakartaNetraComON PROGRESS295
9P-08FTTH MedanSumatera UtaraNusanetDELAY470
Formula

Langkah 1. Sumber dropdown di sheet atau kolom bantu (kolom R, S, dan T, di luar area spill report):

=VSTACK("Semua", SORT(UNIQUE(C2:C9)))   // R2, daftar provinsi
=VSTACK("Semua", SORT(UNIQUE(D2:D9)))   // S2, daftar provider
=VSTACK("Semua", SORT(UNIQUE(E2:E9)))   // T2, daftar status

Pilih I2, buka Data Validation > List, isi Source dengan =$R$2#. Ulangi untuk I3 (=$S$2#) dan I4 (=$T$2#).

Langkah 2. Report di K2:

=SORT(FILTER(A2:F9,
   IF(I2="Semua", TRUE, C2:C9=I2) *
   IF(I3="Semua", TRUE, D2:D9=I3) *
   IF(I4="Semua", TRUE, E2:E9=I4),
   "Tidak ada data"), 6, -1)

Langkah 3. Ringkasan:

=IFERROR(ROWS(FILTER(A2:A9, IF(I2="Semua",TRUE,C2:C9=I2)*IF(I3="Semua",TRUE,D2:D9=I3)*IF(I4="Semua",TRUE,E2:E9=I4))), 0)   // jumlah proyek
=SUM(IFERROR(TAKE(K2#, , -1), 0))                                                                                              // total nilai
Result

Skenario 1: Provinsi = Semua, Provider = NetraCom, Status = Semua

IDProjectProvinsiProviderStatusNilai
P-01FO Backbone MedanSumatera UtaraNetraComON PROGRESS850
P-03FTTH BandungJawa BaratNetraComCOMPLETED610
P-07Microcell JakartaDKI JakartaNetraComON PROGRESS295

Jumlah proyek 3, total nilai 1,755 juta.

Skenario 2: Provinsi = Jawa Barat, Provider = Semua, Status = Semua

IDProjectProvinsiProviderStatusNilai
P-03FTTH BandungJawa BaratNetraComCOMPLETED610
P-02Tower BekasiJawa BaratNusanetDELAY420
P-04BTS BogorJawa BaratSelulinkON PROGRESS380
P-05ODC DepokJawa BaratNusanetCOMPLETED275

Jumlah proyek 4, total nilai 1,685 juta.

Explanation

Setiap filter ditulis sebagai IF(pilihan="Semua", TRUE, kolom=pilihan). Jika pengguna memilih "Semua", kondisinya selalu TRUE sehingga tidak menyaring apa pun. Jika memilih nilai tertentu, hanya baris yang cocok yang bernilai TRUE. Ketiga kondisi dikalikan (logika AND), lalu FILTER menampilkan baris yang lolos semua syarat, dan SORT mengurutkannya berdasarkan kolom 6.

VSTACK("Semua", ...) menambahkan pilihan "Semua" di atas daftar unik, sehingga dropdown selalu punya opsi tanpa filter. Karena dropdown mengambil sumber dari referensi spill ($R$2#), provinsi atau provider baru otomatis muncul di pilihan.

Total nilai mengambil kolom terakhir hasil report dengan TAKE(K2#, , -1). IFERROR di dalamnya memastikan total bernilai 0 saat report menampilkan "Tidak ada data".

Answer
=TAKE(SORT(CHOOSECOLS(FILTER(A2:F9, E2:E9="DELAY"), 2, 6), 2, -1), 3)
=HSTACK(UNIQUE(E2:E9), COUNTIFS(E2:E9, UNIQUE(E2:E9)))

Jawaban 1: FO Access Tangerang 530, FTTH Medan 470, Tower Bekasi 420. Setelah CHOOSECOLS hanya tersisa dua kolom, jadi urutan memakai kolom ke-2 (Nilai).

Jawaban 2: ON PROGRESS 3, DELAY 3, COMPLETED 2.

BAB
08

DATA CLEANING & VALIDATION

Rumus secanggih apa pun akan menghasilkan angka salah jika datanya kotor. BAB ini membahas cara mendeteksi masalah data (cell kosong, duplikat, spasi, typo, tanggal dan angka yang tersimpan sebagai teks), memperbaikinya dengan rumus, lalu mencegahnya muncul lagi dengan Data Validation.

Tujuan Pembelajaran
  • Mengenali tujuh masalah data yang paling sering muncul
  • Memakai fungsi IS untuk memeriksa tipe dan kondisi data
  • Membersihkan spasi, karakter tersembunyi, dan typo
  • Mengubah tanggal dan angka berformat teks menjadi nilai yang benar
  • Menyusun alur RAW DATA → CLEANING → VALIDATED DATA
Formula Count
7
formula card di BAB ini
+ 3 fungsi pembersih lanjutan dari BAB 4
Rumus yang Dibahas
ISBLANKISNUMBERISTEXTISERRORISNAISERRISLOGICAL

8.1 Tujuh Masalah Data yang Paling Sering Muncul

MasalahGejalaCara DeteksiCara Perbaikan
Data kosongTotal atau jumlah data tidak sesuaiISBLANK, COUNTBLANKLengkapi dari sumber, atau tandai
DuplikatCustomer atau transaksi terhitung dua kaliCOUNTIF(...)>1Tandai, lalu Remove Duplicates
Spasi berlebihLookup gagal padahal data terlihat adaLEN(A2)<>LEN(TRIM(A2))TRIM, SUBSTITUTE(CHAR(160))
Typo dan variasi ejaan"Jkt", "Jakrta", "DKI Jakarta" dianggap berbedaUNIQUE lalu periksa daftarTabel pemetaan + lookup
Tanggal berformat teksTanggal rata kiri, tidak bisa dihitungISNUMBER bernilai FALSEDATE + LEFT/MID/RIGHT
Angka berformat teksSUM menghasilkan 0 atau terlalu kecilISTEXT, ISNUMBERVALUE, --, Text to Columns
Input tidak sesuai aturanHP 7 digit, email tanpa @Rumus validasi dengan LEN, FINDData Validation untuk input berikutnya

8.2 Fungsi IS untuk Memeriksa Data

Fungsi IS selalu menghasilkan TRUE atau FALSE. Hasil ini bisa dipakai di IF, di Conditional Formatting, atau dihitung dengan SUMPRODUCT(--ISxxx(range)).

FORMULA CARD

ISBLANK

Fungsi

Menghasilkan TRUE jika cell benar-benar kosong.

Syntax
=ISBLANK(value)
Penjelasan Argument
ArgumentPenjelasan
valueCell yang diperiksa
Contoh Data
AB
1IDEmail
2CST-0012budi.santoso@gmail.com
3CST-0007
4CST-0105andi.w@ptmaju.co.id
Formula
=ISBLANK(B2)
=COUNTBLANK(B2:B4)
Hasil

FALSE, TRUE, FALSE, dan jumlah cell kosong = 1

Penjelasan

Hanya B3 yang kosong. COUNTBLANK meringkas pemeriksaan satu kolom menjadi satu angka.

FORMULA CARD

ISNUMBER

Fungsi

Menghasilkan TRUE jika isi cell adalah angka (termasuk tanggal dan waktu).

Syntax
=ISNUMBER(value)
Penjelasan Argument
ArgumentPenjelasan
valueCell atau rumus yang diperiksa
Contoh Data
Tanda ' di depan berarti nilai tersimpan sebagai teks
AB
1ItemQty
2Kabel FO25
3Closure'25
4ODPdua puluh
Formula
=ISNUMBER(B2)
=SUMPRODUCT(--NOT(ISNUMBER(B2:B4)))
Hasil

TRUE, FALSE, FALSE, dan jumlah qty bukan angka = 2

Penjelasan

Hanya B2 yang benar-benar angka. '25 tampak seperti angka tetapi tersimpan sebagai teks, sehingga tidak ikut dijumlahkan oleh SUM. Rumus kedua menghitung berapa cell yang bermasalah di satu kolom.

FORMULA CARD

ISTEXT

Fungsi

Menghasilkan TRUE jika isi cell adalah teks.

Syntax
=ISTEXT(value)
Penjelasan Argument
ArgumentPenjelasan
valueCell yang diperiksa
Contoh Data
AB
1KaryawanNIK (16 digit)
2Rudi3171234567890001
3Sari'3171234567890002
Formula
=ISTEXT(B2)
Hasil

Rudi FALSE, Sari TRUE

Penjelasan

NIK Rudi diketik sebagai angka. Excel hanya menyimpan 15 digit angka yang presisi, sehingga digit ke-16 berubah menjadi 0 (tersimpan 3171234567890000) dan tampil sebagai 3.17123E+15. NIK Sari diketik sebagai teks, sehingga seluruh 16 digit aman.

FORMULA CARD

ISERROR

Fungsi

Menghasilkan TRUE jika nilai berupa error apa pun: #N/A, #VALUE!, #REF!, #DIV/0!, #NUM!, #NAME?, atau #NULL!.

Syntax
=ISERROR(value)
Penjelasan Argument
ArgumentPenjelasan
valueCell atau rumus yang diperiksa
Contoh Data
A
1Hasil Rumus
20.9
3#DIV/0!
4#N/A
5#VALUE!
Formula
=ISERROR(A2)
=SUMPRODUCT(--ISERROR(A2:A5))
Hasil

FALSE, TRUE, TRUE, TRUE, dan jumlah error = 3

Penjelasan

Semua jenis error menghasilkan TRUE. SUMPRODUCT dengan -- mengubah TRUE menjadi 1 lalu menjumlahkannya.

FORMULA CARD

ISNA

Fungsi

Menghasilkan TRUE hanya untuk error #N/A, yaitu error "data tidak ditemukan".

Syntax
=ISNA(value)
Penjelasan Argument
ArgumentPenjelasan
valueCell atau rumus yang diperiksa
Contoh Data
ABC
1Invoice Sistem AInvoice Sistem B
2INV-01INV-01
3INV-02INV-03
4INV-03
5INV-04
Formula
=ISNA(MATCH(A2, $C$2:$C$3, 0))
Hasil

INV-01 FALSE, INV-02 TRUE, INV-03 FALSE, INV-04 TRUE

Penjelasan

MATCH mencari setiap invoice sistem A di daftar sistem B. INV-02 dan INV-04 tidak ditemukan sehingga MATCH menghasilkan #N/A, dan ISNA mengubahnya menjadi TRUE. Artinya, dua invoice itu belum tercatat di sistem B.

FORMULA CARD

ISERR

Fungsi

Menghasilkan TRUE untuk semua error kecuali #N/A.

Syntax
=ISERR(value)
Penjelasan Argument
ArgumentPenjelasan
valueCell atau rumus yang diperiksa
Contoh Data
A
1Hasil Rumus
20.9
3#DIV/0!
4#N/A
5#VALUE!
Formula
=ISERR(A2)
Hasil

FALSE, TRUE, FALSE, TRUE

Penjelasan

#N/A dikecualikan. Hasil TRUE hanya muncul untuk #DIV/0! dan #VALUE!.

FORMULA CARD

ISLOGICAL

Fungsi

Menghasilkan TRUE jika isi cell adalah nilai logika TRUE atau FALSE (bukan teks "TRUE").

Syntax
=ISLOGICAL(value)
Penjelasan Argument
ArgumentPenjelasan
valueCell yang diperiksa
Contoh Data
Kolom Aktif hasil impor CSV. Tanda ' berarti teks
AB
1CustomerAktif
2CST-0012TRUE
3CST-0007'TRUE
4CST-01051
5CST-0200FALSE
Formula
=ISLOGICAL(B2)
Hasil

TRUE, FALSE, FALSE, TRUE

Penjelasan

Hanya B2 dan B5 yang berisi nilai logika asli. 'TRUE adalah teks, dan angka 1 adalah angka. Keduanya akan berperilaku berbeda di COUNTIF(B2:B5, TRUE) dan di FILTER.

8.3 Fungsi Pembersih (Lanjutan BAB 4)

TRIM + CHAR(160)
=TRIM(SUBSTITUTE(A2, CHAR(160), " "))

TRIM hanya membuang spasi biasa (karakter 32). Data dari halaman web atau email sering membawa non-breaking space (karakter 160) yang tidak ikut terbuang. Ganti dulu karakter 160 menjadi spasi biasa, baru jalankan TRIM. Pembahasan dasar TRIM ada di BAB 4.

CLEAN + TRIM
=TRIM(CLEAN(A2))

Kombinasi standar untuk data hasil impor: CLEAN membuang karakter tak tercetak seperti line break dan tab, lalu TRIM merapikan spasi. Jika line break berada di antara dua kata, gunakan =TRIM(SUBSTITUTE(A2, CHAR(10), " ")) supaya kata tidak menempel.

SUBSTITUTE untuk typo
=SUBSTITUTE(SUBSTITUTE(PROPER(TRIM(A2)), "Jkt", "Jakarta"), "Jakrta", "Jakarta")

Cocok untuk satu atau dua variasi typo. Jika variasinya banyak, buat tabel pemetaan (kolom Variasi dan kolom Baku), lalu gunakan =IFERROR(VLOOKUP(PROPER(TRIM(A2)), Peta, 2, FALSE), PROPER(TRIM(A2))). Tabel lebih mudah dirawat daripada SUBSTITUTE bertumpuk.

8.4 Teknik Perbaikan Data

Duplikat

=COUNTIF($A$2:$A$10001, A2)>1        // TRUE untuk semua baris yang kodenya muncul lebih dari sekali
=COUNTIF($A$2:A2, A2)>1              // TRUE hanya untuk kemunculan kedua dan seterusnya

Rumus kedua memakai range yang "tumbuh" ($A$2:A2, lalu $A$2:A3, dan seterusnya). Kemunculan pertama tetap dianggap data asli, sedangkan kemunculan berikutnya ditandai sebagai duplikat.

Tanggal berformat teks

Data impor sering menyimpan tanggal sebagai teks 15/06/2026 (hari/bulan/tahun). Susun ulang dengan DATE:

=DATE(RIGHT(A2,4), MID(A2,4,2), LEFT(A2,2))
// "15/06/2026" menjadi tanggal asli 15 Jun 2026

Rumus ini hanya benar jika formatnya selalu dua digit hari, dua digit bulan, dan empat digit tahun. Periksa hasilnya dengan ISNUMBER.

Angka berformat teks

=VALUE(TRIM(A2))     // mengubah teks angka menjadi angka
=--TRIM(A2)          // cara singkat, hasil sama

Data Validation berbasis rumus

Buka Data > Data Validation, pilih Custom, lalu isi rumus berikut. Input yang tidak memenuhi aturan akan ditolak.

AturanRumus Custom (untuk cell A2)
HP 10-13 digit angka=AND(ISNUMBER(--A2), LEN(A2)>=10, LEN(A2)<=13)
Email berisi satu @ dan titik setelahnya=AND(LEN(A2)-LEN(SUBSTITUTE(A2,"@",""))=1, ISNUMBER(FIND(".", A2, FIND("@", A2))))
Kode tidak boleh duplikat=COUNTIF($A:$A, A2)=1
Tanggal dalam tahun 2026=AND(A2>=DATE(2026,1,1), A2<=DATE(2026,12,31))
Kode wajib huruf kapital=EXACT(A2, UPPER(A2))
REAL WORLD CASE STUDY

Cleaning Database 10.000 Customer

Problem

Tim CRM menerima file 10.000 customer (baris 2 sampai 10001) gabungan dari beberapa cabang. Data harus dibersihkan dan diperiksa sebelum diimpor ke sistem baru. Hanya baris yang lolos semua pemeriksaan yang boleh diimpor, sedangkan sisanya dikembalikan ke cabang dengan keterangan masalahnya. Contoh di bawah menampilkan 8 baris pertama. Semua rumus ditulis untuk rentang penuh.

Raw Data
RAW DATA. Tanda · = spasi, tanda ' = nilai tersimpan sebagai teks
ABCDEFG
1IDNamaNo HPEmailKotaTgl DaftarBelanja
2CST-0001··andi··pratama0812-1111-2222Andi.P@gmail.comjakarta03/01/2026'1250000
3CST-0002Siti Aminah+62 813 3333 4444siti.aminah@yahooJkt15/02/2026'875000
4CST-0003BUDI HARTONO0857 5555 666budi.h@ptmaju.co.idBandung28/02/2026'2300000
5CST-0001Andi Pratama081211112222andi.p@gmail.comJakarta03/01/2026'1250000
6CST-00040819-7777-8888rina@outlook.comSurabaya10/03/2026'560000
7CST-0005dewi lestari0812 999dewi.lestari@gmail.comsurabaya·31/03/2026'-
8CST-0006Rudi Hartono6285612345678rudi@@gmail.comJakrta05/04/2026'990000
9CST-0007Maya Sari0813-2222-3333maya.sari@gmail.comBandung12/04/2026'1430000
Formula

Tahap 1. CLEANING (kolom I sampai O). Isi di baris 2, salin sampai baris 10001. Tabel pemetaan kota bernama Peta berisi pasangan Jkt → Jakarta dan Jakrta → Jakarta.

KolomIsiRumus
INama=PROPER(TRIM(SUBSTITUTE(B2, CHAR(160), " ")))
JHP (bantu)=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C2,"-","")," ",""),"+","")
KHP=IF(LEFT(J2,2)="62", "0"&MID(J2,3,20), J2)
LEmail=LOWER(TRIM(D2))
MKota=IFERROR(VLOOKUP(PROPER(TRIM(E2)), Peta, 2, FALSE), PROPER(TRIM(E2)))
NTgl Daftar=DATE(RIGHT(F2,4), MID(F2,4,2), LEFT(F2,2))
OBelanja=IFERROR(VALUE(G2), "")

Tahap 2. VALIDATION (kolom P sampai S):

KolomIsiRumus
PDuplikat=IF(COUNTIF($A$2:A2, A2)>1, "DUPLIKAT", "")
QHP Valid=AND(ISNUMBER(--K2), LEN(K2)>=10, LEN(K2)<=13)
REmail Valid=AND(LEN(L2)-LEN(SUBSTITUTE(L2,"@",""))=1, ISNUMBER(FIND(".", L2, FIND("@", L2))))
SStatuslihat rumus di bawah
=IF(P2<>"", "DUPLIKAT",
 IF(I2="", "NAMA KOSONG",
 IF(NOT(Q2), "HP TIDAK VALID",
 IF(NOT(R2), "EMAIL TIDAK VALID",
 IF(O2="", "BELANJA TIDAK VALID", "VALID")))))

Tahap 3. VALIDATED DATA di sheet baru:

=FILTER(Data!I2:O10001, Data!S2:S10001="VALID")
=COUNTIF(Data!S2:S10001, "VALID")/COUNTA(Data!A2:A10001)
Result

Hasil cleaning dan validasi 8 baris contoh:

IDNamaHPEmailKotaStatus
CST-0001Andi Pratama081211112222andi.p@gmail.comJakartaVALID
CST-0002Siti Aminah081333334444siti.aminah@yahooJakartaEMAIL TIDAK VALID
CST-0003Budi Hartono08575555666budi.h@ptmaju.co.idBandungVALID
CST-0001Andi Pratama081211112222andi.p@gmail.comJakartaDUPLIKAT
CST-0004081977778888rina@outlook.comSurabayaNAMA KOSONG
CST-0005Dewi Lestari0812999dewi.lestari@gmail.comSurabayaHP TIDAK VALID
CST-0006Rudi Hartono085612345678rudi@@gmail.comJakartaEMAIL TIDAK VALID
CST-0007Maya Sari081322223333maya.sari@gmail.comBandungVALID

VALIDATED DATA (hasil FILTER, siap impor):

NamaHPEmailKotaTgl DaftarBelanja
Andi Pratama081211112222andi.p@gmail.comJakarta03 Jan 20261,250,000
Budi Hartono08575555666budi.h@ptmaju.co.idBandung28 Feb 20262,300,000
Maya Sari081322223333maya.sari@gmail.comBandung12 Apr 20261,430,000

Pada 8 baris contoh, tingkat data valid adalah 3 dari 8 (37.5%).

Explanation

Alurnya dipisah menjadi tiga tahap supaya setiap langkah bisa diperiksa. Tahap cleaning hanya merapikan format tanpa membuang data. Tahap validasi memberi satu status per baris, dengan urutan pemeriksaan yang jelas: duplikat dulu, lalu kelengkapan nama, HP, email, dan nilai belanja. Satu baris hanya mendapat satu status, yaitu masalah pertama yang ditemukan.

Email siti.aminah@yahoo lolos pemeriksaan @ tetapi tidak punya titik setelah @, sehingga FIND menghasilkan error dan ISNUMBER mengubahnya menjadi FALSE. Email rudi@@gmail.com gagal karena jumlah @ ada dua.

Kota "Jkt" dan "Jakrta" diperbaiki lewat tabel Peta. Kota yang tidak ada di tabel, seperti "Bandung" dan "Surabaya", tetap memakai hasil PROPER(TRIM()) karena IFERROR mengembalikan nilai tersebut saat VLOOKUP tidak menemukan pasangannya.

Tahap terakhir memakai FILTER (Excel 2021+). Di Excel versi lama, aktifkan AutoFilter pada kolom Status, pilih VALID, lalu salin baris yang tampil ke sheet baru.

Answer
=FILTER(HSTACK(A2:A10001, S2:S10001), S2:S10001<>"VALID")
=COUNTIF($S$2:$S$10001, "EMAIL TIDAK VALID")

Untuk 8 baris contoh, daftar pengembalian berisi CST-0002, CST-0001 (baris duplikat), CST-0004, CST-0005, dan CST-0006. Rekap status: VALID 3, EMAIL TIDAK VALID 2, DUPLIKAT 1, NAMA KOSONG 1, HP TIDAK VALID 1. Untuk tabel rekap otomatis, gunakan pola HSTACK(UNIQUE(...), COUNTIFS(...)) dari BAB 7.

BAB
09

DATABASE & REPORTING

Laporan manajemen hampir selalu berupa ringkasan: berapa proyek per status, berapa total per provinsi, berapa achievement per PIC. BAB ini membahas fungsi -IF/-IFS untuk menyusun rekap, teknik kriteria (wildcard, operator, tanggal), dan fungsi database (D-functions) yang memakai range kriteria.

Tujuan Pembelajaran
  • Menulis kriteria dengan operator, wildcard, dan referensi cell
  • Menghitung jumlah data dengan COUNTIF dan COUNTIFS
  • Menyusun tabel rekap dua arah dengan SUMIFS dan mixed reference
  • Memakai fungsi database DSUM sampai DGET dengan range kriteria
  • Membuat laporan manajemen per status, provinsi, dan PIC
Formula Count
13
formula card di BAB ini
Rumus yang Dibahas
SUMIF (Wildcard & Operator)SUMIFS (Tabel Rekap Dua Arah)COUNTIFCOUNTIFSAVERAGEIF (Per PIC)AVERAGEIFS (Multi Kriteria)DSUMDAVERAGEDCOUNTDCOUNTADMAXDMINDGET

9.1 Database Proyek

Semua contoh di BAB ini memakai database berikut. Target dan Actual dalam satuan homepass (HP).

ABCDEFGH
1ProjectProviderProvinsiKab/KotaPICTargetActualStatus
2FTTH-01NetraComJawa BaratBekasiAndi1,2001,200COMPLETED
3FTTH-02NusanetJawa BaratBogorBella800560ON PROGRESS
4FTTH-03NetraComJawa BaratBandungAndi1,500900DELAY
5FTTH-04SelulinkBantenTangerangCandra1,0001,000COMPLETED
6FTTH-05NusanetBantenSerangBella600240ON PROGRESS
7FTTH-06NetraComDKI JakartaJakarta TimurDewi900450DELAY
8FTTH-07SelulinkDKI JakartaJakarta SelatanCandra700700COMPLETED
9FTTH-08NetraComBantenTangerang SelatanDewi1,100770ON PROGRESS
10FTTH-09NusanetJawa BaratDepokAndi500150DELAY
11FTTH-10SelulinkJawa BaratBekasiBella1,3001,040ON PROGRESS

9.2 Cara Menulis Kriteria

Kriteria di SUMIF, COUNTIF, AVERAGEIF, dan versi -IFS ditulis sebagai teks. Tabel ini berlaku untuk semua fungsi tersebut.

KebutuhanPenulisan KriteriaContoh
Sama dengan teks"DELAY"=COUNTIF(H2:H11, "DELAY")
Sama dengan isi cellK2=COUNTIF(H2:H11, K2)
Tidak sama dengan"<>COMPLETED"=COUNTIF(H2:H11, "<>COMPLETED")
Lebih besar / kecil">=1000"=COUNTIF(G2:G11, ">=1000")
Operator + cell">="&K1=COUNTIF(G2:G11, ">="&K1)
Operator + tanggal">="&DATE(2026,6,1)=COUNTIFS(A:A, ">="&DATE(2026,6,1))
Diawali teks"Jakarta*"=COUNTIF(D2:D11, "Jakarta*")
Mengandung teks"*Tangerang*"=COUNTIF(D2:D11, "*Tangerang*")
Tepat n karakter"FTTH-0?"=COUNTIF(A2:A11, "FTTH-0?")
Cell tidak kosong"<>"=COUNTIF(E2:E11, "<>")
Cell kosong""=COUNTIF(E2:E11, "")

9.3 Rekap dengan -IF dan -IFS

FORMULA CARD

SUMIF (Wildcard & Operator)

Fungsi

SUMIF sudah dibahas di BAB 2. Di laporan, kekuatannya ada di kriteria: wildcard untuk kelompok nama yang mirip, dan operator <> untuk mengecualikan kategori.

Syntax
=SUMIF(range, criteria, [sum_range])
Penjelasan Argument
ArgumentPenjelasan
rangeKolom yang diperiksa
criteriaKriteria dengan wildcard atau operator
[sum_range]Kolom yang dijumlahkan
Contoh Data
Kab/Kota (D)Target (F)Actual (G)Status (H)
Jakarta Timur900450DELAY
Jakarta Selatan700700COMPLETED
(8 baris lain, lihat 9.1)
Formula
=SUMIF(D2:D11, "Jakarta*", G2:G11)
=SUMIF(H2:H11, "<>COMPLETED", F2:F11)
Hasil

1,150 dan 6,700

Penjelasan

Rumus pertama menjumlahkan actual semua kota yang namanya diawali "Jakarta": 450 + 700. Rumus kedua menjumlahkan target semua proyek yang statusnya bukan COMPLETED, yaitu target yang masih harus dikejar: 9,600 - 2,900 = 6,700.

FORMULA CARD

SUMIFS (Tabel Rekap Dua Arah)

Fungsi

Dengan mixed reference, satu rumus SUMIFS bisa mengisi seluruh tabel rekap baris × kolom, misalnya Provider × Status.

Syntax
=SUMIFS(sum_range, criteria_range1, criteria1, criteria_range2, criteria2)
Penjelasan Argument
ArgumentPenjelasan
sum_rangeKolom Actual, dikunci penuh
criteria_range1, criteria1Kolom Provider dan label baris (kolom dikunci: $K2)
criteria_range2, criteria2Kolom Status dan label kolom (baris dikunci: L$1)
Contoh Data
Database di A1:H11 (lihat 9.1). Kerangka tabel rekap di K1:N4
KLMN
1ProviderCOMPLETEDON PROGRESSDELAY
2NetraCom
3Nusanet
4Selulink
Formula
=SUMIFS($G$2:$G$11, $B$2:$B$11, $K2, $H$2:$H$11, L$1)   // di L2, salin ke L2:N4
Hasil
ProviderCOMPLETEDON PROGRESSDELAY
NetraCom1,2007701,350
Nusanet0800150
Selulink1,7001,0400
Penjelasan

$K2 mengunci kolom K, sehingga saat disalin ke kanan provider tetap diambil dari kolom K. L$1 mengunci baris 1, sehingga saat disalin ke bawah status tetap diambil dari baris judul. Satu rumus mengisi 9 cell. Total seluruh tabel adalah 7,010, sama dengan total actual database.

FORMULA CARD

COUNTIF

Fungsi

Menghitung jumlah cell yang memenuhi satu kriteria.

Syntax
=COUNTIF(range, criteria)
Penjelasan Argument
ArgumentPenjelasan
rangeRange yang diperiksa
criteriaKriteria yang harus dipenuhi
Contoh Data
Actual (G)Status (H)
1,200COMPLETED
560ON PROGRESS
900DELAY
1,000COMPLETED
240ON PROGRESS
450DELAY
700COMPLETED
770ON PROGRESS
150DELAY
1,040ON PROGRESS
Formula
=COUNTIF(H2:H11, "DELAY")
=COUNTIF(G2:G11, ">=1000")
Hasil

3 proyek DELAY, dan 3 proyek dengan actual minimal 1,000

Penjelasan

Rumus pertama menghitung baris yang statusnya DELAY (FTTH-03, 06, 09). Rumus kedua menghitung actual 1,200, 1,000, dan 1,040.

FORMULA CARD

COUNTIFS

Fungsi

Menghitung jumlah baris yang memenuhi beberapa kriteria sekaligus.

Syntax
=COUNTIFS(criteria_range1, criteria1, [criteria_range2, criteria2], ...)
Penjelasan Argument
ArgumentPenjelasan
criteria_range1, criteria1Pasangan range dan kriteria pertama
[criteria_range2, criteria2]Pasangan berikutnya, sampai 127 pasang
Contoh Data
Provinsi (C)PIC (E)Status (H)
Jawa BaratAndiCOMPLETED
Jawa BaratBellaON PROGRESS
Jawa BaratAndiDELAY
BantenCandraCOMPLETED
BantenBellaON PROGRESS
DKI JakartaDewiDELAY
DKI JakartaCandraCOMPLETED
BantenDewiON PROGRESS
Jawa BaratAndiDELAY
Jawa BaratBellaON PROGRESS
Formula
=COUNTIFS(C2:C11, "Jawa Barat", H2:H11, "DELAY")
=COUNTIFS(E2:E11, "Andi", H2:H11, "<>COMPLETED")
Hasil

2 dan 2

Penjelasan

Proyek DELAY di Jawa Barat adalah FTTH-03 dan FTTH-09. Proyek Andi yang belum selesai juga FTTH-03 dan FTTH-09.

FORMULA CARD

AVERAGEIF (Per PIC)

Fungsi

AVERAGEIF (BAB 2) di laporan sering dipakai untuk rata-rata per orang atau per kelompok, dengan kriteria diambil dari cell label.

Syntax
=AVERAGEIF(range, criteria, [average_range])
Penjelasan Argument
ArgumentPenjelasan
rangeKolom PIC
criteriaNama PIC dari cell label
[average_range]Kolom yang dirata-ratakan
Contoh Data
PIC (E)Actual (G)
Andi1,200
Andi900
Andi150
(7 baris PIC lain, lihat 9.1)
Formula
=AVERAGEIF($E$2:$E$11, "Andi", $G$2:$G$11)
Hasil

750 HP per proyek

Penjelasan

Andi memegang tiga proyek dengan actual 1,200, 900, dan 150. Rata-ratanya 2,250 ÷ 3 = 750.

FORMULA CARD

AVERAGEIFS (Multi Kriteria)

Fungsi

AVERAGEIFS (BAB 2) untuk rata-rata dengan beberapa kriteria, misalnya per provider di provinsi tertentu.

Syntax
=AVERAGEIFS(average_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
Penjelasan Argument
ArgumentPenjelasan
average_rangeKolom yang dirata-ratakan
criteria_range1, criteria1Kriteria pertama
[criteria_range2, criteria2]Kriteria berikutnya
Contoh Data
Provider (B)Provinsi (C)Target (F)
NetraComJawa Barat1,200
NetraComJawa Barat1,500
NetraComDKI Jakarta900
NetraComBanten1,100
(6 baris provider lain)
Formula
=AVERAGEIFS(F2:F11, B2:B11, "NetraCom", C2:C11, "Jawa Barat")
Hasil

1,350

Penjelasan

Proyek NetraCom di Jawa Barat adalah FTTH-01 (1,200) dan FTTH-03 (1,500). Rata-rata target keduanya 1,350.

9.4 Fungsi Database (D-Functions)

Fungsi database memakai tiga argument yang sama: database (seluruh tabel termasuk judul), field (kolom yang dihitung), dan criteria (range kriteria dengan judul kolom yang sama persis dengan database).

Susunan KriteriaArtinya
Beberapa kolom dalam satu barisAND (semua syarat harus terpenuhi)
Beberapa barisOR (salah satu baris terpenuhi)
FORMULA CARD

DSUM

Fungsi

Menjumlahkan satu kolom database untuk baris yang memenuhi range kriteria.

Syntax
=DSUM(database, field, criteria)
Penjelasan Argument
ArgumentPenjelasan
databaseSeluruh tabel termasuk baris judul
fieldJudul kolom yang dijumlahkan (teks) atau nomor kolom
criteriaRange kriteria berisi judul dan syarat
Contoh Data
Database di A1:H11 (lihat 9.1). Kriteria AND di J1:K2, kriteria OR di J4:J6
JK
1ProviderStatus
2NetraComDELAY
3Provinsi
4Banten
5DKI Jakarta
Formula
=DSUM($A$1:$H$11, "Actual", J1:K2)
=DSUM($A$1:$H$11, "Actual", J4:J6)
Hasil

1,350 dan 3,160

Penjelasan

Kriteria pertama berada di satu baris, artinya Provider NetraCom dan Status DELAY: FTTH-03 (900) + FTTH-06 (450). Kriteria kedua berada di dua baris, artinya Provinsi Banten atau DKI Jakarta: 2,010 + 1,150.

FORMULA CARD

DAVERAGE

Fungsi

Menghitung rata-rata satu kolom database untuk baris yang memenuhi kriteria.

Syntax
=DAVERAGE(database, field, criteria)
Penjelasan Argument
ArgumentPenjelasan
databaseSeluruh tabel termasuk judul
fieldKolom yang dirata-ratakan
criteriaRange kriteria
Contoh Data
Database di A1:H11 (lihat 9.1)
J
1Status
2ON PROGRESS
Formula
=DAVERAGE($A$1:$H$11, "Actual", J1:J2)
Hasil

652.5

Penjelasan

Ada empat proyek ON PROGRESS dengan actual 560, 240, 770, dan 1,040. Totalnya 2,610 ÷ 4 = 652.5.

FORMULA CARD

DCOUNT

Fungsi

Menghitung jumlah cell berisi angka di satu kolom database, untuk baris yang memenuhi kriteria.

Syntax
=DCOUNT(database, [field], criteria)
Penjelasan Argument
ArgumentPenjelasan
databaseSeluruh tabel termasuk judul
[field]Kolom angka yang dihitung
criteriaRange kriteria
Contoh Data
Database di A1:H11 (lihat 9.1)
J
1Target
2>=1000
Formula
=DCOUNT($A$1:$H$11, "Target", J1:J2)
Hasil

5

Penjelasan

Proyek dengan target minimal 1,000 adalah FTTH-01, 03, 04, 08, dan 10.

FORMULA CARD

DCOUNTA

Fungsi

Menghitung jumlah cell tidak kosong di satu kolom database, untuk baris yang memenuhi kriteria.

Syntax
=DCOUNTA(database, field, criteria)
Penjelasan Argument
ArgumentPenjelasan
databaseSeluruh tabel termasuk judul
fieldKolom yang dihitung
criteriaRange kriteria
Contoh Data
Database di A1:H11 (lihat 9.1)
J
1PIC
2Bella
Formula
=DCOUNTA($A$1:$H$11, "Project", J1:J2)
Hasil

3

Penjelasan

Bella memegang tiga proyek: FTTH-02, FTTH-05, dan FTTH-10.

FORMULA CARD

DMAX

Fungsi

Mengambil nilai terbesar di satu kolom database untuk baris yang memenuhi kriteria.

Syntax
=DMAX(database, field, criteria)
Penjelasan Argument
ArgumentPenjelasan
databaseSeluruh tabel termasuk judul
fieldKolom yang dicari nilai terbesarnya
criteriaRange kriteria
Contoh Data
Database di A1:H11 (lihat 9.1)
J
1Provinsi
2Jawa Barat
Formula
=DMAX($A$1:$H$11, "Actual", J1:J2)
Hasil

1,200

Penjelasan

Actual proyek di Jawa Barat adalah 1,200, 560, 900, 150, dan 1,040. Nilai terbesarnya 1,200 (FTTH-01).

FORMULA CARD

DMIN

Fungsi

Mengambil nilai terkecil di satu kolom database untuk baris yang memenuhi kriteria.

Syntax
=DMIN(database, field, criteria)
Penjelasan Argument
ArgumentPenjelasan
databaseSeluruh tabel termasuk judul
fieldKolom yang dicari nilai terkecilnya
criteriaRange kriteria
Contoh Data
Database di A1:H11 (lihat 9.1)
J
1Status
2DELAY
Formula
=DMIN($A$1:$H$11, "Target", J1:J2)
Hasil

500

Penjelasan

Target proyek DELAY adalah 1,500, 900, dan 500. Nilai terkecilnya 500 (FTTH-09).

FORMULA CARD

DGET

Fungsi

Mengambil satu nilai dari database untuk satu baris yang memenuhi kriteria. Jika ada lebih dari satu baris yang cocok, hasilnya error.

Syntax
=DGET(database, field, criteria)
Penjelasan Argument
ArgumentPenjelasan
databaseSeluruh tabel termasuk judul
fieldKolom yang diambil
criteriaRange kriteria yang harus menghasilkan tepat satu baris
Contoh Data
Database di A1:H11 (lihat 9.1)
J
1Project
2FTTH-06
Formula
=DGET($A$1:$H$11, "PIC", J1:J2)
Hasil

Dewi

Penjelasan

Hanya satu baris yang Project-nya FTTH-06, sehingga DGET mengambil isi kolom PIC di baris tersebut.

REAL WORLD CASE STUDY

Management Reporting

Problem

Setiap Senin, project controller harus mengirim laporan ringkas ke manajemen: jumlah proyek per status, total target dan actual, achievement keseluruhan, serta rekap per provinsi. Laporan harus diperbarui otomatis setiap kali database diperbarui.

Raw Data
Database di A1:H11 (lengkap di 9.1)
ABCDEFGH
1ProjectProviderProvinsiKab/KotaPICTargetActualStatus
2FTTH-01NetraComJawa BaratBekasiAndi1,2001,200COMPLETED
3FTTH-02NusanetJawa BaratBogorBella800560ON PROGRESS
4FTTH-03NetraComJawa BaratBandungAndi1,500900DELAY
5FTTH-04SelulinkBantenTangerangCandra1,0001,000COMPLETED
6FTTH-05NusanetBantenSerangBella600240ON PROGRESS
7FTTH-06NetraComDKI JakartaJakarta TimurDewi900450DELAY
8FTTH-07SelulinkDKI JakartaJakarta SelatanCandra700700COMPLETED
9FTTH-08NetraComBantenTangerang SelatanDewi1,100770ON PROGRESS
10FTTH-09NusanetJawa BaratDepokAndi500150DELAY
11FTTH-10SelulinkJawa BaratBekasiBella1,3001,040ON PROGRESS
Formula

Bagian 1. Ringkasan utama

OutputFormula
Total Project=COUNTA(A2:A11)
Completed=COUNTIF(H2:H11, "COMPLETED")
On Progress=COUNTIF(H2:H11, "ON PROGRESS")
Delay=COUNTIF(H2:H11, "DELAY")
Total Target=SUM(F2:F11)
Total Actual=SUM(G2:G11)
Achievement %=IFERROR(SUM(G2:G11)/SUM(F2:F11), 0)

Bagian 2. Rekap per provinsi. Label provinsi di K2:K4, lalu isi baris 2 dan salin ke bawah:

=COUNTIF($C$2:$C$11, K2)                    // L: jumlah proyek
=COUNTIFS($C$2:$C$11, K2, $H$2:$H$11, "DELAY")  // M: jumlah delay
=SUMIF($C$2:$C$11, K2, $F$2:$F$11)          // N: target
=SUMIF($C$2:$C$11, K2, $G$2:$G$11)          // O: actual
=IFERROR(O2/N2, 0)                           // P: achievement
Result
RingkasanHasil
Total Project10
Completed3
On Progress4
Delay3
Total Target9,600
Total Actual7,010
Achievement %73.02%
ProvinsiProyekDelayTargetActualAchievement
Jawa Barat525,3003,85072.64%
Banten302,7002,01074.44%
DKI Jakarta211,6001,15071.88%
Total1039,6007,01073.02%
Explanation

Ringkasan utama memakai COUNTIF untuk jumlah per status dan SUM untuk total. Achievement dihitung dari total actual dibagi total target, lalu dibungkus IFERROR agar tidak muncul #DIV/0! saat database masih kosong di awal periode.

Rekap per provinsi memakai label di kolom K sebagai kriteria, sehingga menambah provinsi baru cukup dengan menambah label dan menyalin rumus. Baris Total pada tabel rekap harus sama dengan ringkasan utama. Kesamaan ini menjadi pengecekan cepat bahwa tidak ada provinsi yang terlewat atau salah ketik di database.

Jawa Barat punya proyek terbanyak dan dua proyek DELAY, walaupun achievement-nya hampir sama dengan provinsi lain. Informasi seperti ini lebih cepat terlihat di tabel rekap daripada di database mentah.

Answer
=COUNTIF($E$2:$E$11, K8)                  // L8: jumlah proyek, label PIC di K8:K11
=SUMIF($E$2:$E$11, K8, $F$2:$F$11)        // M8: target
=SUMIF($E$2:$E$11, K8, $G$2:$G$11)        // N8: actual
=IFERROR(N8/M8, 0)                         // O8: achievement
PICProyekTargetActualAchievement
Andi33,2002,25070.31%
Bella32,7001,84068.15%
Candra21,7001,700100.00%
Dewi22,0001,22061.00%

Achievement terendah adalah Dewi (61.00%). Candra menyelesaikan semua targetnya.

BAB
10

ADVANCED FORMULA & FORMULA COMBINATION

Masalah kerja jarang selesai dengan satu fungsi. BAB terakhir ini menggabungkan fungsi dari BAB 1 sampai 9 menjadi rumus yang menjawab pertanyaan bisnis secara langsung, lalu menutupnya dengan dashboard eksekutif mini yang seluruh angkanya dihitung otomatis.

Tujuan Pembelajaran
  • Menggabungkan fungsi logika, lookup, dan dynamic array
  • Menjumlahkan dan menghitung data berdasarkan rentang tanggal
  • Memakai SUMPRODUCT untuk kriteria AND dan OR sekaligus
  • Membuat rumus panjang lebih mudah dibaca dengan LET
  • Membuat fungsi sendiri dengan LAMBDA
  • Menyusun Mini Executive Project Dashboard
Formula Count
10
formula card di BAB ini
Rumus yang Dibahas
IF + ANDIF + ORIFERROR + XLOOKUPFILTER + SORTUNIQUE + SORTSUMIFS + DATECOUNTIFS + DATESUMPRODUCT (Kriteria AND + OR)LETLAMBDA

10.1 Kombinasi Logika

FORMULA CARD

IF + AND

Fungsi

Menjalankan keputusan hanya jika semua syarat terpenuhi. Pola paling umum untuk aturan bonus, kelayakan, dan approval.

Syntax
=IF(AND(syarat1, syarat2), nilai_jika_ya, nilai_jika_tidak)
Penjelasan Argument
ArgumentPenjelasan
syarat1, syarat2Kondisi yang semuanya harus TRUE
nilai_jika_yaHasil jika semua syarat terpenuhi
nilai_jika_tidakHasil jika ada satu saja yang tidak terpenuhi
Contoh Data
ABCDEF
1TeknisiTiket SelesaiRatingMin Tiket40
2Andi454.7Min Rating4.5
3Bella524.3
4Candra384.8
Formula
=IF(AND(B2>=$F$1, C2>=$F$2), "Bonus", "-")
Hasil

Andi Bonus, Bella -, Candra -

Penjelasan

Andi memenuhi kedua batas. Bella menyelesaikan tiket terbanyak tetapi rating-nya di bawah 4.5. Candra punya rating tertinggi tetapi tiketnya kurang dari 40. Batas disimpan di F1 dan F2 sehingga kebijakan bisa diubah tanpa menyentuh rumus.

FORMULA CARD

IF + OR

Fungsi

Menjalankan keputusan jika salah satu syarat terpenuhi. Cocok untuk aturan eskalasi dan pengecualian.

Syntax
=IF(OR(syarat1, syarat2), nilai_jika_ya, nilai_jika_tidak)
Penjelasan Argument
ArgumentPenjelasan
syarat1, syarat2Kondisi, cukup satu yang TRUE
nilai_jika_yaHasil jika minimal satu syarat terpenuhi
nilai_jika_tidakHasil jika semua syarat tidak terpenuhi
Contoh Data
ABC
1InvoiceNominalVendor
2INV-165,000,000Lama
3INV-212,500,000Baru
4INV-38,000,000Lama
Formula
=IF(OR(B2>50000000, C2="Baru"), "Approval Direktur", "Approval Manager")
Hasil

INV-1 Approval Direktur, INV-2 Approval Direktur, INV-3 Approval Manager

Penjelasan

INV-1 masuk karena nominalnya di atas 50 juta. INV-2 masuk karena vendornya baru, walaupun nominalnya kecil. INV-3 tidak memenuhi satu pun syarat.

10.2 Kombinasi Lookup dan Array

FORMULA CARDExcel 2021+

IFERROR + XLOOKUP

Fungsi

XLOOKUP sudah punya argument if_not_found untuk data yang tidak ditemukan. IFERROR di luar menangkap error lain yang muncul dari perhitungan setelah lookup.

Syntax
=IFERROR(XLOOKUP(nilai, range_cari, range_hasil) * pengali, nilai_jika_error)
Penjelasan Argument
ArgumentPenjelasan
XLOOKUP(...)Lookup yang hasilnya dipakai untuk perhitungan
pengaliPerhitungan lanjutan, misalnya qty
nilai_jika_errorNilai pengganti untuk semua jenis error
Contoh Data
ABCDEF
1Kode OrderQtyKodeHarga
2MTR-001100MTR-00112,500
3MTR-0032MTR-0022,300
4MTR-0095MTR-003TBA
Formula
=IFERROR(XLOOKUP(A2, $E$2:$E$4, $F$2:$F$4)*B2, "Cek harga")
Hasil

MTR-001 = 1,250,000. MTR-003 = Cek harga. MTR-009 = Cek harga

Penjelasan

MTR-001 ditemukan dan harganya angka, jadi 12,500 × 100 = 1,250,000. MTR-003 ditemukan, tetapi harganya masih teks "TBA", sehingga perkalian menghasilkan #VALUE!. MTR-009 tidak ditemukan sehingga XLOOKUP menghasilkan #N/A. IFERROR menangkap kedua error tersebut.

FORMULA CARDExcel 2021+

FILTER + SORT

Fungsi

Menyaring data lalu langsung mengurutkannya. Pola dasar untuk daftar prioritas otomatis.

Syntax
=SORT(FILTER(array, include), sort_index, sort_order)
Penjelasan Argument
ArgumentPenjelasan
FILTER(array, include)Data yang sudah disaring
sort_indexNomor kolom acuan urutan
sort_order1 naik, -1 turun
Contoh Data
ABCDEFGH
1InvoiceCustomerJatuh TempoNilaiStatusTgl Acuan15 Jun 2026
2INV-101PT Maju20 May 202645,000,000Belum
3INV-102CV Sentosa05 Jun 202612,000,000Lunas
4INV-103PT Karya30 May 202678,500,000Belum
5INV-104PT Abadi25 Jun 202630,000,000Belum
6INV-105CV Jaya10 Jun 20269,750,000Belum
Formula
=SORT(FILTER(A2:D6, (E2:E6="Belum")*(C2:C6<$H$1)), 4, -1)
=SUM((E2:E6="Belum")*(C2:C6<$H$1)*D2:D6)
Hasil
InvoiceCustomerJatuh TempoNilai
INV-103PT Karya30 May 202678,500,000
INV-101PT Maju20 May 202645,000,000
INV-105CV Jaya10 Jun 20269,750,000

Total piutang lewat jatuh tempo: 133,250,000

Penjelasan

FILTER mengambil invoice yang belum lunas dan jatuh temponya sebelum tanggal acuan. INV-102 sudah lunas dan INV-104 belum jatuh tempo, jadi keduanya tidak tampil. SORT mengurutkan hasilnya dari nilai terbesar agar tim collection menagih yang paling besar lebih dulu.

FORMULA CARDExcel 2021+

UNIQUE + SORT

Fungsi

Membuat daftar unik yang langsung terurut. Dipakai untuk label rekap dan sumber dropdown.

Syntax
=SORT(UNIQUE(array))
Penjelasan Argument
ArgumentPenjelasan
arrayKolom sumber yang berisi duplikat
Contoh Data
AB
1TanggalCustomer
202 Jun 2026PT Maju
303 Jun 2026CV Jaya
405 Jun 2026PT Maju
508 Jun 2026PT Abadi
609 Jun 2026CV Jaya
712 Jun 2026PT Karya
Formula
=SORT(UNIQUE(B2:B7))
=ROWS(UNIQUE(B2:B7))
Hasil

CV Jaya, PT Abadi, PT Karya, PT Maju. Jumlah customer unik: 4

Penjelasan

UNIQUE membuang duplikat (PT Maju dan CV Jaya masing-masing muncul dua kali), lalu SORT mengurutkan abjad.

10.3 Kombinasi dengan Tanggal

Tiga rumus berikut memakai data transaksi yang sama.

FORMULA CARD

SUMIFS + DATE

Fungsi

Menjumlahkan data dalam rentang tanggal tertentu, misalnya satu bulan penuh.

Syntax
=SUMIFS(sum_range, date_range, ">="&tgl_awal, date_range, "<"&tgl_akhir_plus_1)
Penjelasan Argument
ArgumentPenjelasan
sum_rangeKolom nilai
date_rangeKolom tanggal, dipakai dua kali (batas awal dan batas akhir)
tgl_awalTanggal awal periode, disusun dengan DATE
tgl_akhir_plus_1Hari pertama setelah periode berakhir
Contoh Data
ABC
1TanggalRegionNilai
228 May 2026West5,000,000
302 Jun 2026East3,200,000
411 Jun 2026West7,800,000
515 Jun 2026Central4,500,000
630 Jun 2026West6,100,000
701 Jul 2026East2,900,000
Formula
=SUMIFS(C2:C7, A2:A7, ">="&DATE(2026,6,1), A2:A7, "<"&DATE(2026,7,1))
=SUMIFS(C2:C7, A2:A7, ">="&DATE(2026,6,1), A2:A7, "<"&DATE(2026,7,1), B2:B7, "West")
Hasil

Total Juni 21,600,000. Total Juni region West 13,900,000

Penjelasan

Rumus pertama menjumlahkan transaksi mulai 1 Juni sampai sebelum 1 Juli: 3,200,000 + 7,800,000 + 4,500,000 + 6,100,000. Transaksi 28 Mei dan 1 Juli tidak ikut. Rumus kedua menambah kriteria region West: 7,800,000 + 6,100,000.

FORMULA CARD

COUNTIFS + DATE

Fungsi

Menghitung jumlah data dalam rentang tanggal, misalnya tujuh hari terakhir.

Syntax
=COUNTIFS(date_range, ">="&tgl_awal, date_range, "<="&tgl_akhir, [range_lain, kriteria_lain])
Penjelasan Argument
ArgumentPenjelasan
date_rangeKolom tanggal
tgl_awal, tgl_akhirBatas periode
[range_lain, kriteria_lain]Kriteria tambahan
Contoh Data
ABCDE
1Tanggal TiketStatusTgl Acuan15 Jun 2026
208 Jun 2026Closed
309 Jun 2026Open
411 Jun 2026Closed
512 Jun 2026Open
614 Jun 2026Open
715 Jun 2026Open
Formula
=COUNTIFS(A2:A7, ">="&$E$1-6, A2:A7, "<="&$E$1)
=COUNTIFS(A2:A7, ">="&$E$1-6, A2:A7, "<="&$E$1, B2:B7, "Open")
Hasil

5 tiket dalam 7 hari terakhir, 4 di antaranya masih Open

Penjelasan

Tujuh hari terakhir dihitung dari 9 Juni (15 - 6) sampai 15 Juni. Tiket 8 Juni berada di luar periode. Dari lima tiket dalam periode, hanya tiket 11 Juni yang sudah Closed.

FORMULA CARD

SUMPRODUCT (Kriteria AND + OR)

Fungsi

SUMPRODUCT (BAB 2) bisa mengalikan beberapa kondisi TRUE/FALSE dengan kolom nilai. Perkalian kondisi berarti AND, penjumlahan kondisi berarti OR, dan fungsi seperti MONTH bisa dipakai langsung pada range.

Syntax
=SUMPRODUCT((kondisi1)*((kondisi2a)+(kondisi2b))*range_nilai)
Penjelasan Argument
ArgumentPenjelasan
(kondisi1)Kondisi AND, misalnya bulan = 6
((kondisi2a)+(kondisi2b))Kondisi OR, dibungkus kurung sendiri
range_nilaiKolom yang dijumlahkan
Contoh Data
ABC
1TanggalRegionNilai
228 May 2026West5,000,000
302 Jun 2026East3,200,000
411 Jun 2026West7,800,000
515 Jun 2026Central4,500,000
630 Jun 2026West6,100,000
701 Jul 2026East2,900,000
Formula
=SUMPRODUCT((MONTH(A2:A7)=6)*((B2:B7="West")+(B2:B7="East"))*C2:C7)
Hasil

17,100,000

Penjelasan

Kondisi bulan Juni menghasilkan 1 untuk baris 3 sampai 6. Kondisi region West atau East menghasilkan 1 untuk semua baris kecuali baris 5 (Central). Perkalian keduanya hanya bernilai 1 untuk baris 3, 4, dan 6. Nilai di baris tersebut dijumlahkan: 3,200,000 + 7,800,000 + 6,100,000.

10.4 LET dan LAMBDA

FORMULA CARDExcel 2021+

LET

Fungsi

Memberi nama pada hasil perhitungan di dalam rumus. Rumus panjang menjadi lebih mudah dibaca, dan perhitungan yang dipakai berulang hanya dihitung sekali.

Syntax
=LET(name1, value1, [name2, value2, ...], calculation)
Penjelasan Argument
ArgumentPenjelasan
name1Nama variabel, diawali huruf, tanpa spasi
value1Nilai atau perhitungan yang disimpan di nama tersebut
[name2, value2]Pasangan nama berikutnya
calculationPerhitungan akhir yang memakai nama-nama tersebut
Contoh Data
A
1No HP Mentah
2+62 813 1122 3344
30812-3456-7890
Formula
=LET(x, SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"-","")," ",""),"+",""), IF(LEFT(x,2)="62", "0"&MID(x,3,20), x))
Hasil

081311223344 dan 081234567890

Penjelasan

Di BAB 4, pembersihan nomor HP memakai kolom bantu. Dengan LET, hasil SUBSTITUTE disimpan di variabel x, lalu x dipakai tiga kali di perhitungan akhir. Tanpa LET, rangkaian SUBSTITUTE harus ditulis ulang tiga kali.

FORMULA CARDExcel 2024 / 365

LAMBDA

Fungsi

Membuat fungsi sendiri yang bisa dipanggil dengan nama, seperti fungsi bawaan Excel. Didefinisikan sekali lewat Name Manager, lalu dipakai di seluruh workbook.

Syntax
=LAMBDA([parameter1, parameter2, ...], calculation)
Penjelasan Argument
ArgumentPenjelasan
[parameter]Nama input fungsi, sampai 253 parameter
calculationPerhitungan yang memakai parameter tersebut
Contoh Data
ABC
1SalesTargetActual
2Andi50,000,00045,000,000
3Gita012,000,000
Formula
=LAMBDA(actual, target, IF(target=0, 0, actual/target))(45000000, 50000000)   // uji langsung di cell
=ACHIEVE(C2, B2)                                                               // setelah didefinisikan di Name Manager
Hasil

Uji langsung menghasilkan 0.9 (90%). ACHIEVE menghasilkan 90% untuk Andi dan 0% untuk Gita

Penjelasan

Langkah membuat fungsi: buka Formulas > Name Manager > New. Isi Name dengan ACHIEVE, lalu isi Refers to dengan =LAMBDA(actual, target, IF(target=0, 0, actual/target)). Setelah itu =ACHIEVE(C2, B2) bisa dipakai di mana saja dalam workbook. Aturan "target 0 berarti achievement 0" kini tersimpan di satu tempat.

REAL WORLD CASE STUDY

Mini Executive Project Dashboard

Problem

Direktur operasional ingin satu halaman dashboard yang menjawab pertanyaan inti setiap minggu: berapa proyek yang berjalan, berapa yang selesai dan terlambat, seberapa jauh realisasi dibanding target, berapa lama rata-rata proyek berjalan, dan berapa persen proyek selesai tepat waktu. Semua angka harus dihitung dari database tanpa input manual.

Raw Data
Sheet Data, A1:K9. Tanggal acuan di Data!N1 = 15 Jun 2026 (di file kerja: =TODAY())
ABCDEFGHIJK
1ProjectProviderRegionPICPlan StartPlan FinishActual StartActual FinishTargetActualStatus
2PRJ-A01NetraComWestAndi02 Mar 202630 Apr 202604 Mar 202628 Apr 20261,0001,000COMPLETED
3PRJ-A02NusanetWestBella16 Mar 202615 May 202618 Mar 202622 May 2026800800COMPLETED
4PRJ-A03SelulinkCentralCandra06 Apr 202605 Jun 202608 Apr 20261,200780DELAY
5PRJ-A04NetraComCentralDewi04 May 202631 Jul 202606 May 20261,500600ON PROGRESS
6PRJ-A05NusanetEastAndi13 Apr 202612 Jun 202613 Apr 202610 Jun 2026600600COMPLETED
7PRJ-A06SelulinkEastBella18 May 202617 Aug 202620 May 2026900270ON PROGRESS
8PRJ-A07NetraComWestAndi01 Apr 202629 May 202603 Apr 2026700420DELAY
9PRJ-A08NusanetCentralDewi01 Jun 202630 Sep 202603 Jun 20261,100110ON PROGRESS
Formula

Definisi yang dipakai dashboard:

KPIDefinisi
AgingActual Finish - Actual Start untuk proyek selesai, Tanggal Acuan - Actual Start untuk proyek berjalan
SLA %Proyek COMPLETED dengan Actual Finish ≤ Plan Finish, dibagi jumlah proyek COMPLETED

Rumus KPI (di sheet Dashboard, merujuk sheet Data):

KPIFormula
TOTAL PROJECT=COUNTA(Data!A2:A9)
COMPLETED=COUNTIF(Data!K2:K9, "COMPLETED")
ON PROGRESS=COUNTIF(Data!K2:K9, "ON PROGRESS")
DELAY=COUNTIF(Data!K2:K9, "DELAY")
TOTAL TARGET=SUM(Data!I2:I9)
TOTAL ACTUAL=SUM(Data!J2:J9)
ACHIEVEMENT %=IFERROR(SUM(Data!J2:J9)/SUM(Data!I2:I9), 0)
AVERAGE AGING=SUMPRODUCT((Data!H2:H9="")*Data!N1+Data!H2:H9-Data!G2:G9)/COUNT(Data!G2:G9)
SLA %=IFERROR(SUMPRODUCT((Data!K2:K9="COMPLETED")*(Data!H2:H9<=Data!F2:F9))/COUNTIF(Data!K2:K9,"COMPLETED"), 0)

Versi LET untuk SLA % (Excel 2021+), lebih mudah diaudit:

=LET(
  selesai, Data!K2:K9="COMPLETED",
  tepat,   Data!H2:H9<=Data!F2:F9,
  jumlah,  SUM(--selesai),
  IF(jumlah=0, 0, SUM(selesai*tepat)/jumlah))

Rekap per region (Excel 2024/365):

=LET(r, SORT(UNIQUE(Data!C2:C9)),
     t, SUMIFS(Data!I2:I9, Data!C2:C9, r),
     a, SUMIFS(Data!J2:J9, Data!C2:C9, r),
     HSTACK(r, COUNTIF(Data!C2:C9, r), t, a, a/t))

Daftar proyek DELAY diurutkan dari keterlambatan terbesar:

=LET(f, FILTER(Data!A2:F9, Data!K2:K9="DELAY"),
     SORT(HSTACK(CHOOSECOLS(f, 1, 4, 6), Data!N1-CHOOSECOLS(f, 6)), 4, -1))
Result
MINI EXECUTIVE PROJECT DASHBOARD
Status per 15 Jun 2026
Sumber: sheet Data, 8 proyek
TOTAL PROJECT8
COMPLETED3
ON PROGRESS3
DELAY2
TOTAL TARGET7,800
TOTAL ACTUAL4,580
ACHIEVEMENT %58.72%
AVERAGE AGING49.6 hari
SLA %66.67%
ACHIEVEMENT PER REGION
West
88.80%
East
58.00%
Central
39.21%
PROYEK DELAY
ProjectPICPlan FinishTerlambat
PRJ-A07Andi29 May 202617 hari
PRJ-A03Candra05 Jun 202610 hari

Rekap per region:

RegionProyekTargetActualAchievement
Central33,8001,49039.21%
East21,50087058.00%
West32,5002,22088.80%
Explanation

Kartu KPI dasar memakai fungsi dari BAB 1, 2, dan 9. Dua KPI yang lebih rumit memakai SUMPRODUCT.

Average aging. Untuk setiap proyek, (Data!H2:H9="")*Data!N1 bernilai tanggal acuan jika Actual Finish kosong, dan 0 jika sudah terisi. Ditambah Actual Finish (cell kosong dihitung 0), hasilnya adalah "tanggal akhir" yang tepat untuk setiap proyek. Dikurangi Actual Start, didapat aging per proyek: 55, 65, 68, 40, 58, 26, 73, dan 12 hari. Totalnya 397 hari, dibagi 8 proyek = 49.6 hari.

SLA %. Hanya proyek COMPLETED yang dinilai. PRJ-A01 (selesai 28 Apr, rencana 30 Apr) dan PRJ-A05 (10 Jun, rencana 12 Jun) tepat waktu. PRJ-A02 selesai 22 Mei, lewat 7 hari dari rencana 15 Mei. Hasilnya 2 dari 3 = 66.67%.

Rekap region menunjukkan hal yang tidak terlihat dari achievement total 58.72%: region Central baru mencapai 39.21%, karena dua proyeknya (A04 dan A08) masih di tahap awal dan satu proyek (A03) DELAY. Daftar DELAY mengurutkan PRJ-A07 di atas karena keterlambatannya 17 hari dihitung dari Plan Finish ke tanggal acuan.

Untuk file yang dipakai di Excel 2019 atau lebih lama, semua kartu KPI tetap berfungsi. Rekap region bisa diganti dengan label manual + SUMIFS, dan daftar DELAY diganti AutoFilter.

Answer
=COUNTIF(Data!K2:K9,"DELAY")/COUNTIF(Data!K2:K9,"<>COMPLETED")        // 2/5 = 40%
=SUMIF(Data!D2:D9,"Andi",Data!J2:J9)/SUMIF(Data!D2:D9,"Andi",Data!I2:I9)  // 2,020/2,300 = 87.83%
=SUMPRODUCT((Data!K2:K9="ON PROGRESS")*(Data!F2:F9-Data!N1<=60)*(Data!J2:J9/Data!I2:I9<0.5))   // 1

Jawaban 1: 5 proyek belum selesai (3 ON PROGRESS dan 2 DELAY), 2 di antaranya DELAY, jadi 40%.

Jawaban 2: Andi memegang PRJ-A01, A05, dan A07 dengan target 1,000 + 600 + 700 = 2,300 dan actual 1,000 + 600 + 420 = 2,020.

Jawaban 3: Hanya PRJ-A04 yang memenuhi. Plan Finish 31 Jul berjarak 46 hari dari 15 Jun, dan achievement-nya 600/1,500 = 40%. PRJ-A06 (sisa 63 hari) dan PRJ-A08 (sisa 107 hari) masih di luar batas 60 hari.

Excel Formula Cheat Sheet

Referensi cepat fungsi Excel yang dibahas di buku ini, ditambah beberapa fungsi pendukung yang sering dipakai di kantor. Kolom Versi kosong berarti fungsi tersedia di Excel 2010 ke atas.

Matematika & Pembulatan

FormulaFungsiContohVersi
SUMMenjumlahkan angka=SUM(A2:A10)
SUMIFMenjumlahkan dengan 1 kriteria=SUMIF(A2:A10,"Jakarta",C2:C10)
SUMIFSMenjumlahkan dengan banyak kriteria=SUMIFS(C2:C10,A2:A10,"Jakarta",B2:B10,"Hardware")
SUMPRODUCTMengalikan array lalu menjumlahkan=SUMPRODUCT(B2:B10,C2:C10)
PRODUCTMengalikan semua angka=PRODUCT(B2:D2)
ABSNilai mutlak=ABS(C2-B2)
MODSisa pembagian=MOD(B2,24)
POWERPangkat=POWER(1.08,3)
SQRTAkar kuadrat=SQRT(900000)
INTBulatkan ke bawah ke bilangan bulat=INT(B2/C2)
TRUNCPotong desimal=TRUNC(A2,2)
ROUNDBulatkan ke terdekat=ROUND(A2*11%,0)
ROUNDUPBulatkan selalu ke atas=ROUNDUP(47/12,0)
ROUNDDOWNBulatkan selalu ke bawah=ROUNDDOWN(A2/10000,0)
MROUNDBulatkan ke kelipatan terdekat=MROUND(A2,500)
CEILINGNaik ke kelipatan=CEILING(A2,1)
CEILING.MATHNaik ke kelipatan (versi baru)=CEILING.MATH(A2)2013+
FLOORTurun ke kelipatan=FLOOR(A2,0.5)
FLOOR.MATHTurun ke kelipatan (versi baru)=FLOOR.MATH(A2)2013+
RANDAngka acak 0 sampai 1=RAND()
RANDBETWEENAngka acak bulat dalam rentang=RANDBETWEEN(1,100)
SUBTOTALTotal yang mengabaikan baris terfilter=SUBTOTAL(9,C2:C100)
AGGREGATETotal yang bisa mengabaikan error=AGGREGATE(9,6,C2:C100)

Statistik & Hitung Data

FormulaFungsiContohVersi
AVERAGERata-rata=AVERAGE(B2:B10)
AVERAGEIFRata-rata dengan 1 kriteria=AVERAGEIF(B2:B10,"Sales",D2:D10)
AVERAGEIFSRata-rata dengan banyak kriteria=AVERAGEIFS(D2:D10,B2:B10,"Sales",C2:C10,"Tetap")
MEDIANNilai tengah=MEDIAN(B2:B10)
MODENilai paling sering muncul=MODE(B2:B10)
MODE.SNGLModus (nama baru MODE)=MODE.SNGL(B2:B10)
MAXNilai terbesar=MAX(B2:B10)
MINNilai terkecil=MIN(B2:B10)
MAXIFSNilai terbesar dengan kriteria=MAXIFS(G2:G11,C2:C11,"Banten")2019+
MINIFSNilai terkecil dengan kriteria=MINIFS(F2:F11,H2:H11,"DELAY")2019+
LARGENilai terbesar ke-k=LARGE(B2:B10,2)
SMALLNilai terkecil ke-k=SMALL(B2:B10,2)
RANKPeringkat=RANK(B2,$B$2:$B$10,0)
RANK.EQPeringkat (nama baru RANK)=RANK.EQ(B2,$B$2:$B$10,0)
COUNTHitung cell berisi angka=COUNT(B2:B10)
COUNTAHitung cell tidak kosong=COUNTA(A2:A10)
COUNTBLANKHitung cell kosong=COUNTBLANK(B2:B10)
COUNTIFHitung dengan 1 kriteria=COUNTIF(H2:H10,"DELAY")
COUNTIFSHitung dengan banyak kriteria=COUNTIFS(C2:C10,"Banten",H2:H10,"DELAY")
STDEV.SStandar deviasi sampel=STDEV.S(B2:B30)
VAR.SVarians sampel=VAR.S(B2:B30)
PERCENTILE.INCNilai persentil=PERCENTILE.INC(B2:B30,0.9)
QUARTILE.INCNilai kuartil=QUARTILE.INC(B2:B30,1)
CORRELKoefisien korelasi dua data=CORREL(B2:B13,C2:C13)
FORECAST.LINEARProyeksi tren linear=FORECAST.LINEAR(13,C2:C13,B2:B13)2016+

Logika

FormulaFungsiContohVersi
IFKeputusan dua cabang=IF(B2>=75,"LULUS","REMEDIAL")
IFSKeputusan banyak kondisi=IFS(B2>=90,"A",B2>=80,"B",TRUE,"C")2019+
ANDSemua kondisi benar=AND(B2>=100%,C2>=95%)
ORMinimal satu kondisi benar=OR(B2>=1000000000,C2="Key Account")
NOTMembalik logika=NOT(B2="Closed")
XORTepat satu (jumlah ganjil) kondisi benar=XOR(B2="Ya",C2="Ya")2013+
SWITCHPencocokan dari daftar=SWITCH(A2,"JKT","Jakarta","BDG","Bandung","Lainnya")2019+
IFERRORPengganti untuk semua error=IFERROR(C2/B2,0)
IFNAPengganti khusus #N/A=IFNA(VLOOKUP(E2,A2:B10,2,FALSE),"-")2013+

Teks

FormulaFungsiContohVersi
LEFTAmbil karakter dari kiri=LEFT(A2,3)
RIGHTAmbil karakter dari kanan=RIGHT(A2,4)
MIDAmbil karakter dari tengah=MID(A2,5,4)
LENPanjang teks=LEN(A2)
LOWERHuruf kecil semua=LOWER(A2)
UPPERHuruf kapital semua=UPPER(A2)
PROPERHuruf awal kata kapital=PROPER(A2)
TRIMBuang spasi berlebih=TRIM(A2)
CLEANBuang karakter tak tercetak=CLEAN(A2)
SUBSTITUTEGanti teks berdasarkan isi=SUBSTITUTE(A2,"-","")
REPLACEGanti teks berdasarkan posisi=REPLACE(A2,5,4,"****")
FINDPosisi teks (case-sensitive)=FIND("@",A2)
SEARCHPosisi teks (tidak case-sensitive, wildcard)=SEARCH("fo",A2)
EXACTBandingkan teks persis=EXACT(A2,B2)
CONCATENATEGabung teks (versi lama)=CONCATENATE(A2," ",B2)
CONCATGabung teks dan range=CONCAT(A2,"-",B2)2019+
TEXTJOINGabung dengan pemisah=TEXTJOIN(", ",TRUE,A2:E2)2019+
VALUETeks angka menjadi angka=VALUE(A2)
NUMBERVALUETeks angka dengan pemisah tertentu=NUMBERVALUE("1.250,5",",",".")2013+
TEXTAngka atau tanggal menjadi teks berformat=TEXT(B2,"#,##0")
REPTUlangi teks=REPT("*",5)
CHARKarakter dari kode=CHAR(10)
CODEKode dari karakter pertama=CODE(A2)
TEXTBEFORETeks sebelum pemisah=TEXTBEFORE(A2,"@")2024 / 365
TEXTAFTERTeks setelah pemisah=TEXTAFTER(A2,"@")2024 / 365
TEXTSPLITPecah teks ke beberapa cell=TEXTSPLIT(A2,",")2024 / 365

Tanggal & Waktu

FormulaFungsiContohVersi
TODAYTanggal hari ini=TODAY()
NOWTanggal dan jam saat ini=NOW()
DATESusun tanggal=DATE(2026,6,15)
TIMESusun waktu=TIME(8,30,0)
DAYAmbil tanggal=DAY(A2)
MONTHAmbil bulan=MONTH(A2)
YEARAmbil tahun=YEAR(A2)
HOURAmbil jam=HOUR(A2)
MINUTEAmbil menit=MINUTE(A2)
SECONDAmbil detik=SECOND(A2)
DATEVALUETeks tanggal menjadi tanggal=DATEVALUE("2026-06-15")
TIMEVALUETeks waktu menjadi waktu=TIMEVALUE("08:30")
DAYSSelisih hari=DAYS(C2,B2)2013+
DATEDIFSelisih tahun, bulan, hari=DATEDIF(B2,C2,"Y")
EDATETambah bulan=EDATE(B2,6)
EOMONTHAkhir bulan=EOMONTH(B2,0)
YEARFRACSelisih dalam pecahan tahun=YEARFRAC(B2,C2,1)
WEEKDAYUrutan hari dalam minggu=WEEKDAY(A2,2)
WEEKNUMNomor minggu=WEEKNUM(A2)
ISOWEEKNUMNomor minggu ISO=ISOWEEKNUM(A2)2013+
WORKDAYTanggal setelah n hari kerja=WORKDAY(B2,10,Libur)
WORKDAY.INTLWORKDAY dengan pola libur kustom=WORKDAY.INTL(B2,10,11)
NETWORKDAYSJumlah hari kerja=NETWORKDAYS(B2,C2,Libur)
NETWORKDAYS.INTLNETWORKDAYS dengan pola libur kustom=NETWORKDAYS.INTL(B2,C2,"0000001")

Lookup & Referensi

FormulaFungsiContohVersi
VLOOKUPCari vertikal=VLOOKUP(J2,$A$2:$G$7,2,FALSE)
HLOOKUPCari horizontal=HLOOKUP("Zona 2",$A$1:$D$3,2,FALSE)
LOOKUPCari mendekati di data urut=LOOKUP(D2,A2:A5,B2:B5)
INDEXAmbil isi berdasarkan posisi=INDEX(A2:G7,4,2)
MATCHCari posisi=MATCH("MTR-004",A2:A7,0)
XLOOKUPLookup modern=XLOOKUP(J2,A2:A7,F2:F7,"Tidak ada")2021+
XMATCHMATCH modern=XMATCH("OptiNet",C2:C7,0,-1)2021+
CHOOSEPilih dari daftar=CHOOSE(B2,"Tinggi","Sedang","Rendah")
OFFSETReferensi bergeser dari titik awal=SUM(OFFSET(B1,1,0,3,1))
INDIRECTReferensi dari teks=INDIRECT("Jan!B2")
ROWNomor baris=ROW()
ROWSJumlah baris range=ROWS(A2:A10)
COLUMNNomor kolom=COLUMN(C1)
COLUMNSJumlah kolom range=COLUMNS(A1:F1)
HYPERLINKMembuat tautan=HYPERLINK("#Data!A1","Ke Data")

Dynamic Array, LET & LAMBDA

FormulaFungsiContohVersi
FILTERSaring baris=FILTER(A2:F9,E2:E9="DELAY")2021+
SORTUrutkan=SORT(A2:F9,6,-1)2021+
SORTBYUrutkan berdasarkan range lain=SORTBY(B2:B9,E2:E9,1,F2:F9,-1)2021+
UNIQUEDaftar unik=UNIQUE(D2:D9)2021+
SEQUENCEDeret angka=SEQUENCE(10)2021+
TRANSPOSEPutar baris dan kolom=TRANSPOSE(A1:D2)
LETBeri nama perhitungan=LET(t,SUM(B2:B9),a,SUM(C2:C9),a/t)2021+
LAMBDAMembuat fungsi sendiri=LAMBDA(a,t,IF(t=0,0,a/t))(45,50)2024 / 365
TAKEAmbil n baris atau kolom=TAKE(SORT(A2:F9,6,-1),3)2024 / 365
DROPBuang n baris atau kolom=DROP(A1:F9,1)2024 / 365
CHOOSECOLSPilih kolom=CHOOSECOLS(A2:F9,2,5)2024 / 365
CHOOSEROWSPilih baris=CHOOSEROWS(A2:F9,1,-1)2024 / 365
VSTACKTumpuk vertikal=VSTACK(A1:B4,D2:E3)2024 / 365
HSTACKSusun horizontal=HSTACK(A2:A9,E2:E9)2024 / 365
TOCOLJadikan satu kolom=TOCOL(B2:D3,1)2024 / 365
TOROWJadikan satu baris=TOROW(UNIQUE(C2:C9))2024 / 365

Informasi & Pengecekan

FormulaFungsiContohVersi
ISBLANKCek cell kosong=ISBLANK(B2)
ISNUMBERCek angka=ISNUMBER(B2)
ISTEXTCek teks=ISTEXT(B2)
ISERRORCek semua error=ISERROR(A2)
ISNACek #N/A=ISNA(MATCH(A2,C2:C10,0))
ISERRCek error selain #N/A=ISERR(A2)
ISLOGICALCek nilai TRUE/FALSE=ISLOGICAL(B2)
ISFORMULACek cell berisi rumus=ISFORMULA(C2)2013+
NAMenghasilkan #N/A dengan sengaja=IF(B2="",NA(),B2)

Database

FormulaFungsiContohVersi
DSUMJumlah dengan range kriteria=DSUM($A$1:$H$11,"Actual",J1:K2)
DAVERAGERata-rata dengan range kriteria=DAVERAGE($A$1:$H$11,"Actual",J1:J2)
DCOUNTHitung angka dengan range kriteria=DCOUNT($A$1:$H$11,"Target",J1:J2)
DCOUNTAHitung isian dengan range kriteria=DCOUNTA($A$1:$H$11,"Project",J1:J2)
DMAXNilai terbesar dengan range kriteria=DMAX($A$1:$H$11,"Actual",J1:J2)
DMINNilai terkecil dengan range kriteria=DMIN($A$1:$H$11,"Target",J1:J2)
DGETAmbil satu nilai dengan range kriteria=DGET($A$1:$H$11,"PIC",J1:J2)

Keuangan Dasar

FormulaFungsiContohVersi
PMTCicilan per periode=PMT(10%/12,36,-100000000)
FVNilai masa depan=FV(6%/12,24,-1000000)
PVNilai sekarang=PV(8%,5,-10000000)
NPVNet present value=NPV(10%,C3:C7)+C2
IRRInternal rate of return=IRR(C2:C7)
RATESuku bunga per periode=RATE(36,-3500000,100000000)
NPERJumlah periode=NPER(1%,-2000000,50000000)
SLNPenyusutan garis lurus per periode=SLN(60000000,6000000,5)

150 Practice Questions

Setiap BAB punya 15 soal dalam tiga level. Soal memakai data studi kasus atau contoh di BAB yang bersangkutan, jadi buka kembali tabelnya dan ketik ulang di workbook latihan dengan posisi cell yang sama. Kunci jawaban ada di bagian Answer Key.

LevelIsiTarget
🟢 LEVEL 1 · BASICSatu fungsi, satu langkahHafal syntax
🟡 LEVEL 2 · INTERMEDIATEKriteria, referensi, atau dua fungsiPaham cara kerja
🔴 LEVEL 3 · ADVANCEDKombinasi fungsi untuk masalah nyataBisa merancang rumus sendiri

BAB 1 · Fundamental Excel & Logika Rumus

Data: tabel Studi Kasus Laporan Penjualan Sederhana (A1:D6, kolom D sudah terisi Total).

🟢 LEVEL 1 · BASIC

  1. Hitung total qty seluruh produk.
  2. Hitung rata-rata harga satuan.
  3. Tampilkan harga satuan tertinggi.
  4. Tampilkan qty terkecil.
  5. Hitung jumlah produk berdasarkan kolom nama produk.

🟡 LEVEL 2 · INTERMEDIATE

  1. Hitung total omzet tanpa memakai kolom D.
  2. Diskon 10% disimpan di G1. Tulis rumus harga setelah diskon di E2 yang bisa disalin sampai E6.
  3. Buat teks "Laptop - 5 unit" dari kolom A dan B.
  4. Berapa hasil =10+5*2^2? Jelaskan urutannya.
  5. Hitung selisih omzet tertinggi dan terendah.

🔴 LEVEL 3 · ADVANCED

  1. Hitung kontribusi setiap produk terhadap total omzet dengan satu rumus di E2 yang bisa disalin ke bawah. Berapa kontribusi Monitor?
  2. Buat tabel perkalian 5×5: angka 1-5 di B1:F1 dan A2:A6. Tulis satu rumus di B2 yang bisa disalin ke seluruh B2:F6.
  3. Mengapa =-3^2 menghasilkan 9? Tulis rumus yang menghasilkan -9.
  4. Hitung harga rata-rata per unit tertimbang (total omzet dibagi total qty).
  5. Kolom E (PPN) baru terisi di E2 dan E3. Hitung berapa cell PPN yang belum diisi di E2:E6.

BAB 2 · Rumus Matematika & Statistik

Data: tabel Studi Kasus Analisis Penjualan Bulanan (A1:C7: Sales, Target, Actual).

🟢 LEVEL 1 · BASIC

  1. Hitung total target.
  2. Hitung rata-rata target.
  3. Hitung median actual.
  4. Tampilkan actual terbesar kedua.
  5. Tampilkan target terkecil.

🟡 LEVEL 2 · INTERMEDIATE

  1. Hitung total actual untuk sales yang targetnya tepat 50,000,000.
  2. Hitung rata-rata actual untuk sales yang targetnya minimal 40,000,000.
  3. Hitung selisih absolut actual dan target Dewi.
  4. Bulatkan actual Candra ke bawah dalam satuan juta.
  5. Tentukan peringkat Eko berdasarkan actual (terbesar = 1).

🔴 LEVEL 3 · ADVANCED

  1. Hitung total kelebihan actual di atas target, hanya untuk sales yang melebihi target, dalam satu rumus.
  2. Bonus 2% dari actual diberikan kepada sales dengan achievement minimal 100%. Hitung total bonus dalam satu rumus.
  3. Bulatkan rata-rata actual ke kelipatan 500,000 terdekat.
  4. Proyeksikan total actual tim jika tumbuh 5% per bulan selama 3 bulan.
  5. Tampilkan achievement Bella dibulatkan ke satu desimal persen.

BAB 3 · Rumus Logika

Data: tabel Studi Kasus Project Status Monitoring (A1:G8, tanggal acuan di I1).

🟢 LEVEL 1 · BASIC

  1. Tampilkan "SELESAI" jika progress 100%, selain itu "BELUM".
  2. Tampilkan TRUE jika BAST belum ada.
  3. Tampilkan "LEWAT" jika tanggal acuan sudah melewati Plan Finish, selain itu "-".
  4. Tampilkan TRUE jika progress di atas 0% dan di bawah 100%.
  5. Ubah kode "OP", "DL", "CP" di cell K2 menjadi "ON PROGRESS", "DELAY", "COMPLETED", dengan default "-".

🟡 LEVEL 2 · INTERMEDIATE

  1. Buat kategori progress dengan IFS: minimal 80% "Tinggi", minimal 40% "Sedang", selain itu "Rendah".
  2. Buat kategori yang sama dengan Nested IF.
  3. Tampilkan "PERHATIAN" jika status DELAY atau progress di bawah 30%.
  4. Hitung jumlah proyek DELAY.
  5. Hitung rasio progress terhadap Plan % tanpa error untuk proyek yang Plan %-nya 0.

🔴 LEVEL 3 · ADVANCED

  1. Tampilkan TRUE jika tepat satu dari dua kondisi terpenuhi: progress 100% atau BAST ada.
  2. Buat singkatan status dengan SWITCH: ON TRACK → OT, ON PROGRESS → OP, DELAY → DL, lainnya "-".
  3. K1 berisi kode "PRJ-04". Ambil status proyek tersebut dari tabel (kolom A berisi kode dan nama). Tampilkan "Tidak ada" jika kodenya tidak ditemukan.
  4. Hitung jumlah proyek ON TRACK atau ON PROGRESS dalam satu rumus.
  5. Buat kolom Health: DELAY = MERAH, ON PROGRESS = KUNING, NOT STARTED = ABU, status lain = HIJAU.

BAB 4 · Rumus Text & Data Processing

Data: contoh di BAB 4 dan hasil Studi Kasus Membersihkan Database Customer. Teks yang diuji ditulis di A2.

🟢 LEVEL 1 · BASIC

  1. Ambil kode region dari "JKT-2026-0147".
  2. Hitung jumlah karakter "Budi Santoso".
  3. Ubah "siti nurhaliza" menjadi "Siti Nurhaliza".
  4. Ubah "SITI.N@YAHOO.CO.ID" menjadi huruf kecil.
  5. Buang spasi berlebih dari "··andi··pratama" (· = spasi).

🟡 LEVEL 2 · INTERMEDIATE

  1. Ambil domain dari "budi.santoso@gmail.com".
  2. Ambil nama depan dari "Siti Nurhaliza".
  3. A2 berisi angka 45. Buat kode "CST-0045".
  4. Hapus semua tanda strip dari "0819-7777-8888".
  5. A2 berisi "Bandung" dan B2 berisi 40115. Buat teks "Bandung, 40115".

🔴 LEVEL 3 · ADVANCED

  1. Samarkan email "budi.santoso@gmail.com" menjadi "bud***@gmail.com".
  2. Hitung jumlah kata dalam "Jl. Merdeka No. 5".
  3. Ambil kata terakhir (nama belakang) dari "Budi Santoso", dengan rumus yang juga bekerja untuk nama tiga kata.
  4. Periksa apakah kode "cst-12" sudah ditulis kapital semua.
  5. Ubah teks "Rp1.250.000" menjadi angka 1250000.

BAB 5 · Rumus Tanggal & Waktu

Data: tabel Studi Kasus Project Aging & SLA Monitoring (tanggal acuan 15 Jun 2026).

🟢 LEVEL 1 · BASIC

  1. Tampilkan tanggal hari ini.
  2. Ambil tahun dari Start P-01.
  3. Tampilkan nama bulan Start P-01 dalam bahasa Indonesia.
  4. Hitung selisih hari Actual dan Start P-02.
  5. Susun tanggal 31 Desember 2026 dari angka.

🟡 LEVEL 2 · INTERMEDIATE

  1. Tampilkan tanggal akhir bulan dari Start P-04.
  2. Tampilkan tanggal 3 bulan setelah Start P-01.
  3. Tampilkan nama hari Target P-03 dalam bahasa Indonesia.
  4. Hitung jumlah hari kerja (Senin-Jumat) dari 1 sampai 15 Juni 2026.
  5. Tampilkan nomor minggu dari 15 Juni 2026.

🔴 LEVEL 3 · ADVANCED

  1. Tampilkan masa kerja karyawan yang masuk 10 Aug 2019 per 15 Jun 2026 dalam format "6 thn 10 bln".
  2. Pekerjaan 15 hari kerja dimulai 15 Jun 2026, dengan libur 17 dan 22 Jun 2026 di H2:H3. Kapan selesainya?
  3. Hitung jumlah hari Sabtu dan Minggu di bulan Juni 2026 dengan rumus.
  4. Hitung umur (tahun penuh) orang yang lahir 20 Aug 1990 per 15 Jun 2026.
  5. A2 berisi jam masuk 08:15 dan B2 jam pulang 17:45. Hitung jam kerja desimal setelah dikurangi istirahat 1 jam.

BAB 6 · Lookup & Pencarian Data

Data: tabel master material (A1:G7) di BAB 6.

🟢 LEVEL 1 · BASIC

  1. Ambil nama material MTR-005 dengan VLOOKUP.
  2. Ambil harga MTR-002.
  3. Tentukan posisi MTR-006 di kolom kode.
  4. Ambil isi baris ke-3, kolom ke-3 dari range A2:G7.
  5. Tampilkan "Malam" dari daftar "Pagi", "Siang", "Malam" dengan CHOOSE.

🟡 LEVEL 2 · INTERMEDIATE

  1. Ambil kode material dari nama "ODP 16 Port".
  2. Ambil stok MTR-010 dengan XLOOKUP, tampilkan "Tidak ada" jika tidak ditemukan.
  3. Ambil estimasi hari untuk Zona 3 dari tabel HLOOKUP.
  4. Dengan tabel komisi di contoh LOOKUP, berapa komisi untuk penjualan 25,000,000?
  5. Hitung nilai stok MTR-004 (harga × stok) dengan lookup.

🔴 LEVEL 3 · ADVANCED

  1. Ambil nama material terakhir yang brand-nya NexCom.
  2. Ambil stok MTR-001 dengan INDEX dan dua MATCH.
  3. Tampilkan nama material dengan harga tertinggi.
  4. Cari kode material yang namanya mengandung kata "Drop".
  5. Ambil Brand dan Harga MTR-003 sekaligus dalam satu rumus.

BAB 7 · Filter, Sort & Dynamic Array

Data: data proyek (A1:F9) di BAB 7.

🟢 LEVEL 1 · BASIC

  1. Tampilkan semua proyek berstatus COMPLETED.
  2. Urutkan seluruh data berdasarkan nama proyek A-Z. Proyek apa yang muncul pertama?
  3. Tampilkan daftar status unik.
  4. Buat angka 1 sampai 10 ke bawah.
  5. Hitung jumlah provider unik.

🟡 LEVEL 2 · INTERMEDIATE

  1. Tampilkan proyek Nusanet yang nilainya di atas 400.
  2. Tampilkan nama proyek diurutkan dari nilai terkecil.
  3. Tampilkan 2 proyek dengan nilai terkecil (semua kolom).
  4. Tampilkan proyek di Banten atau DKI Jakarta.
  5. Hitung total nilai proyek ON PROGRESS dengan FILTER.

🔴 LEVEL 3 · ADVANCED

  1. Buat tabel rekap total nilai per provinsi (urut abjad) dalam satu rumus.
  2. Tampilkan nama semua proyek DELAY dalam satu cell, dipisah koma.
  3. Tampilkan nama proyek yang nilainya di atas rata-rata.
  4. Tampilkan ID dan Project milik NetraCom lengkap dengan baris judul, dalam satu rumus.
  5. Buat daftar 12 tanggal akhir bulan sepanjang tahun 2026 dalam satu rumus.

BAB 8 · Data Cleaning & Validation

Data: RAW DATA dan hasil tahap cleaning/validasi di Studi Kasus BAB 8 (baris 2 sampai 9).

🟢 LEVEL 1 · BASIC

  1. Hitung jumlah nama yang kosong di B2:B9.
  2. Periksa apakah G2 ('1250000) berisi angka.
  3. Periksa apakah G2 berisi teks.
  4. Periksa apakah B6 kosong.
  5. Bersihkan spasi di "surabaya·".

🟡 LEVEL 2 · INTERMEDIATE

  1. Tandai ID yang merupakan kemunculan kedua atau seterusnya.
  2. Ubah teks tanggal "03/01/2026" (F2) menjadi tanggal asli.
  3. Hitung total belanja semua baris yang nilainya bisa dikonversi menjadi angka, dalam satu rumus.
  4. Hitung jumlah email tidak valid dari kolom R.
  5. Periksa apakah nomor HP "0812999" memenuhi aturan 10-13 digit angka.

🔴 LEVEL 3 · ADVANCED

  1. Uji rumus validasi email pada "siti.aminah@yahoo". Apa hasilnya dan mengapa?
  2. Hitung persentase baris VALID dari seluruh baris.
  3. Tulis rumus Data Validation Custom agar tanggal daftar tidak boleh melewati hari ini.
  4. Hitung jumlah ID unik di A2:A9 dengan rumus yang bekerja di semua versi Excel.
  5. Hitung jumlah nama di B2:B9 yang mengandung spasi berlebih.

BAB 9 · Database & Reporting

Data: database proyek FTTH (A1:H11) di BAB 9.

🟢 LEVEL 1 · BASIC

  1. Hitung jumlah proyek COMPLETED.
  2. Hitung total target NetraCom.
  3. Hitung jumlah proyek di Banten.
  4. Hitung rata-rata actual seluruh proyek.
  5. Hitung jumlah proyek yang Kab/Kota-nya mengandung "Tangerang".

🟡 LEVEL 2 · INTERMEDIATE

  1. Hitung total actual Selulink yang COMPLETED.
  2. Hitung jumlah proyek Bella yang belum COMPLETED.
  3. Hitung rata-rata target proyek di Jawa Barat.
  4. Hitung achievement Nusanet.
  5. Tampilkan actual terbesar di Banten tanpa D-function.

🔴 LEVEL 3 · ADVANCED

  1. Dengan DSUM, hitung total target Selulink di Jawa Barat.
  2. Dengan DCOUNTA, hitung proyek yang berstatus DELAY atau dipegang Candra.
  3. Dengan DGET, ambil Kab/Kota proyek yang actual-nya 240.
  4. Hitung sisa target (target - actual) seluruh proyek ON PROGRESS.
  5. Hitung jumlah proyek dengan achievement di bawah 50%.

BAB 10 · Advanced Formula & Formula Combination

Data: contoh di BAB 10 dan database dashboard (sheet Data, A1:K9, tanggal acuan di N1).

🟢 LEVEL 1 · BASIC

  1. Dengan data contoh IF + AND, apakah Andi mendapat bonus?
  2. Dengan data transaksi di contoh SUMIFS + DATE, hitung total transaksi bulan Mei 2026.
  3. Dengan data tiket di contoh COUNTIFS + DATE, hitung seluruh tiket Open.
  4. Hitung achievement dashboard dengan LET (variabel total target dan total actual).
  5. Tampilkan daftar region unik yang terurut dari database dashboard.

🟡 LEVEL 2 · INTERMEDIATE

  1. Hitung total transaksi region East di bulan Juni 2026.
  2. Hitung jumlah proyek COMPLETED yang selesai melewati Plan Finish.
  3. Tampilkan proyek ON PROGRESS diurutkan dari target terbesar (kolom Project dan Target saja).
  4. Dengan data contoh IFERROR + XLOOKUP, berapa nilai order MTR-002 sebanyak 50?
  5. Hitung aging PRJ-A03.

🔴 LEVEL 3 · ADVANCED

  1. Buat fungsi SISA dengan LAMBDA yang menghitung sisa target (tidak boleh negatif). Berapa hasilnya untuk PRJ-A03?
  2. Buat tabel achievement per PIC dalam satu rumus.
  3. Hitung rata-rata aging khusus proyek yang belum selesai.
  4. Hitung jumlah proyek yang Actual Start-nya lebih dari 1 hari setelah Plan Start.
  5. Buat tabel total transaksi Juni 2026 per region dalam satu rumus.

Answer Key

Jawaban ditulis untuk baris pertama data (baris 2) kecuali disebutkan lain. Jika rumus Anda berbeda tetapi hasilnya sama, jawaban Anda tetap benar. Excel hampir selalu punya lebih dari satu cara.

BAB 1 · Fundamental Excel & Logika Rumus

NoFormulaHasil
1=SUM(B2:B6)100
2=AVERAGE(C2:C6)2,404,000
3=MAX(C2:C6)7,500,000
4=MIN(B2:B6)5
5=COUNTA(A2:A6)5
6=B2*C2+B3*C3+B4*C4+B5*C5+B6*C6 (atau =SUMPRODUCT(B2:B6,C2:C6) dari BAB 2)91,000,000
7=C2*(1-$G$1)Laptop 6,750,000
8=A2&" - "&B2&" unit"Laptop - 5 unit
9Pangkat dulu: 2^2 = 4, lalu 5×4 = 20, lalu 10+2030
10=MAX(D2:D6)-MIN(D2:D6)32,100,000
11=D2/SUM($D$2:$D$6)Monitor 24.40%
12=$A2*B$1F6 = 25
13Tanda negatif diproses sebelum pangkat. Tulis =-(3^2) atau =0-3^2-9
14=SUM(D2:D6)/SUM(B2:B6)910,000
15=COUNTBLANK(E2:E6)3

BAB 2 · Rumus Matematika & Statistik

NoFormulaHasil
16=SUM(B2:B7)245,000,000
17=AVERAGE(B2:B7)40,833,333
18=MEDIAN(C2:C7)39,400,000
19=LARGE(C2:C7,2)45,000,000
20=MIN(B2:B7)30,000,000
21=SUMIF(B2:B7,50000000,C2:C7)96,200,000
22=AVERAGEIF(B2:B7,">=40000000",C2:C7)43,750,000
23=ABS(C5-B5)1,300,000
24=ROUNDDOWN(C4,-6)51,000,000
25=RANK(C6,$C$2:$C$7,0)6
26=SUMPRODUCT((C2:C7>B2:B7)*(C2:C7-B2:B7))3,800,000
27=SUMPRODUCT((C2:C7>=B2:B7)*C2:C7)*2%2,476,000
28=MROUND(AVERAGE(C2:C7),500000)39,000,000
29=SUM(C2:C7)*POWER(1.05,3)271,810,350
30=ROUND(C3/B3,3) (format Percentage 1 desimal)108.3%

BAB 3 · Rumus Logika

NoFormulaHasil
31=IF(D2=1,"SELESAI","BELUM")SELESAI untuk PRJ-05 dan PRJ-06
32=NOT(E2="Ya") atau =E2<>"Ya"TRUE untuk semua kecuali PRJ-05
33=IF($I$1>C2,"LEWAT","-")LEWAT untuk PRJ-02, PRJ-05, PRJ-06
34=AND(D2>0,D2<1)TRUE untuk PRJ-01, 02, 04, 07
35=SWITCH(K2,"OP","ON PROGRESS","DL","DELAY","CP","COMPLETED","-")Sesuai kode
36=IFS(D2>=0.8,"Tinggi",D2>=0.4,"Sedang",TRUE,"Rendah")01, 02, 05, 06 Tinggi. 04 Sedang. 03, 07 Rendah
37=IF(D2>=0.8,"Tinggi",IF(D2>=0.4,"Sedang","Rendah"))Sama dengan no. 36
38=IF(OR(G2="DELAY",D2<0.3),"PERHATIAN","-")PRJ-02, PRJ-03, PRJ-07
39=COUNTIF(G2:G8,"DELAY")2
40=IFERROR(D2/F2,"-")1.02, 0.90, -, 0.81, 1.00, 1.00, 0.39
41=XOR(D2=1,E2="Ya")TRUE hanya untuk PRJ-06
42=SWITCH(G2,"ON TRACK","OT","ON PROGRESS","OP","DELAY","DL","-")OT, DL, -, OP, -, -, DL
43=IFNA(VLOOKUP(K1&"*",A2:G8,7,FALSE),"Tidak ada")ON PROGRESS
44=SUM(COUNTIF(G2:G8,{"ON TRACK","ON PROGRESS"}))2
45=SWITCH(G2,"DELAY","MERAH","ON PROGRESS","KUNING","NOT STARTED","ABU","HIJAU")PRJ-01 HIJAU, PRJ-02 MERAH, dst.

BAB 4 · Rumus Text & Data Processing

NoFormulaHasil
46=LEFT(A2,3)JKT
47=LEN(A2)12
48=PROPER(A2)Siti Nurhaliza
49=LOWER(A2)siti.n@yahoo.co.id
50=TRIM(A2)andi pratama
51=MID(A2,FIND("@",A2)+1,100)gmail.com
52=LEFT(A2,FIND(" ",A2)-1)Siti
53="CST-"&TEXT(A2,"0000")CST-0045
54=SUBSTITUTE(A2,"-","")081977778888
55=A2&", "&B2 atau =TEXTJOIN(", ",TRUE,A2:B2)Bandung, 40115
56=LEFT(A2,3)&"***"&MID(A2,FIND("@",A2),100)bud***@gmail.com
57=LEN(TRIM(A2))-LEN(SUBSTITUTE(TRIM(A2)," ",""))+14
58=TRIM(RIGHT(SUBSTITUTE(A2," ",REPT(" ",100)),100))Santoso
59=EXACT(A2,UPPER(A2))FALSE
60=VALUE(SUBSTITUTE(SUBSTITUTE(A2,"Rp",""),".",""))1250000

Penjelasan no. 58: setiap spasi diganti 100 spasi, sehingga kata terakhir pasti berada di 100 karakter paling kanan. TRIM lalu membuang spasi yang ikut terambil.

BAB 5 · Rumus Tanggal & Waktu

NoFormulaHasil
61=TODAY()15 Jun 2026 (tanggal acuan)
62=YEAR(B2)2026
63=TEXT(B2,"[$-421]mmmm")Mei
64=D3-B330
65=DATE(2026,12,31)31 Dec 2026
66=EOMONTH(B5,0)30 Jun 2026
67=EDATE(B2,3)04 Aug 2026
68=TEXT(C4,"[$-421]dddd")Jumat
69=NETWORKDAYS(DATE(2026,6,1),DATE(2026,6,15))11
70=WEEKNUM(DATE(2026,6,15))25
71=DATEDIF(A2,B2,"Y")&" thn "&DATEDIF(A2,B2,"YM")&" bln"6 thn 10 bln
72=WORKDAY(DATE(2026,6,15),15,H2:H3)08 Jul 2026
73=DAY(EOMONTH(DATE(2026,6,1),0))-NETWORKDAYS(DATE(2026,6,1),EOMONTH(DATE(2026,6,1),0))8
74=DATEDIF(DATE(1990,8,20),DATE(2026,6,15),"Y")35
75=(B2-A2)*24-18.5

BAB 6 · Lookup & Pencarian Data

NoFormulaHasil
76=VLOOKUP("MTR-005",$A$2:$G$7,2,FALSE)Patch Cord SC-SC 3m
77=VLOOKUP("MTR-002",$A$2:$G$7,6,FALSE)2,300
78=MATCH("MTR-006",A2:A7,0)6
79=INDEX(A2:G7,3,3)OptiNet
80=CHOOSE(3,"Pagi","Siang","Malam")Malam
81=INDEX(A2:A7,MATCH("ODP 16 Port",B2:B7,0))MTR-004
82=XLOOKUP("MTR-010",A2:A7,G2:G7,"Tidak ada")Tidak ada
83=HLOOKUP("Zona 3",$A$1:$D$3,3,FALSE)5
84=LOOKUP(25000000,A2:A5,B2:B5)1%
85=XLOOKUP("MTR-004",A2:A7,F2:F7)*XLOOKUP("MTR-004",A2:A7,G2:G7)59,800,000
86=INDEX(B2:B7,XMATCH("NexCom",C2:C7,0,-1))Splitter 1:8
87=INDEX(A2:G7,MATCH("MTR-001",A2:A7,0),MATCH("Stok",A1:G1,0))8,400
88=INDEX(B2:B7,MATCH(MAX(F2:F7),F2:F7,0))ODP 16 Port
89=INDEX(A2:A7,MATCH("*Drop*",B2:B7,0)) atau =XLOOKUP("*Drop*",B2:B7,A2:A7,"-",2)MTR-002
90=XLOOKUP("MTR-003",A2:A7,CHOOSECOLS(B2:G7,2,5))OptiNet, 850,000

BAB 7 · Filter, Sort & Dynamic Array

NoFormulaHasil
91=FILTER(A2:F9,E2:E9="COMPLETED")P-03, P-05
92=SORT(A2:F9,2,1)BTS Bogor (P-04)
93=UNIQUE(E2:E9)ON PROGRESS, DELAY, COMPLETED
94=SEQUENCE(10)1 sampai 10
95=COUNTA(UNIQUE(D2:D9))3
96=FILTER(A2:F9,(D2:D9="Nusanet")*(F2:F9>400))P-02, P-08
97=SORTBY(B2:B9,F2:F9,1)ODC Depok, Microcell Jakarta, BTS Bogor, Tower Bekasi, FTTH Medan, FO Access Tangerang, FTTH Bandung, FO Backbone Medan
98=TAKE(SORT(A2:F9,6,1),2)P-05, P-07
99=FILTER(A2:F9,(C2:C9="Banten")+(C2:C9="DKI Jakarta"))P-06, P-07
100=SUM(FILTER(F2:F9,E2:E9="ON PROGRESS"))1,525
101=LET(p,SORT(UNIQUE(C2:C9)),HSTACK(p,SUMIFS(F2:F9,C2:C9,p)))Banten 530, DKI Jakarta 295, Jawa Barat 1,685, Sumatera Utara 1,320
102=TEXTJOIN(", ",TRUE,FILTER(B2:B9,E2:E9="DELAY"))Tower Bekasi, FO Access Tangerang, FTTH Medan
103=FILTER(B2:B9,F2:F9>AVERAGE(F2:F9))FO Backbone Medan, FTTH Bandung, FO Access Tangerang
104=VSTACK({"ID","Project"},CHOOSECOLS(FILTER(A2:F9,D2:D9="NetraCom"),1,2))Judul + P-01, P-03, P-07
105=DATE(2026,SEQUENCE(12)+1,0)31 Jan 2026 sampai 31 Dec 2026

Penjelasan no. 103: rata-rata nilai adalah 3,830 ÷ 8 = 478.75, sehingga FTTH Medan (470) tidak ikut. Penjelasan no. 105: hari ke-0 sebuah bulan adalah hari terakhir bulan sebelumnya (lihat DATE di BAB 5).

BAB 8 · Data Cleaning & Validation

NoFormulaHasil
106=COUNTBLANK(B2:B9)1
107=ISNUMBER(G2)FALSE
108=ISTEXT(G2)TRUE
109=ISBLANK(B6)TRUE
110=TRIM(A2)surabaya
111=COUNTIF($A$2:A2,A2)>1TRUE hanya di baris 5
112=DATE(RIGHT(F2,4),MID(F2,4,2),LEFT(F2,2))03 Jan 2026
113=SUM(IFERROR(VALUE(G2:G9),0))8,655,000
114=COUNTIF(R2:R9,FALSE)2
115=AND(ISNUMBER(--A2),LEN(A2)>=10,LEN(A2)<=13)FALSE
116Rumus email di Studi Kasus BAB 8FALSE, karena tidak ada titik setelah @
117=COUNTIF(S2:S9,"VALID")/COUNTA(A2:A9)37.5%
118Data Validation Custom: =N2<=TODAY()Tanggal masa depan ditolak
119=SUMPRODUCT(1/COUNTIF(A2:A9,A2:A9))7
120=SUMPRODUCT(--(LEN(B2:B9)<>LEN(TRIM(B2:B9))))1

Catatan no. 113: di Excel 2019 ke bawah, akhiri dengan Ctrl+Shift+Enter karena rumus memproses array.

BAB 9 · Database & Reporting

NoFormulaHasil
121=COUNTIF(H2:H11,"COMPLETED")3
122=SUMIF(B2:B11,"NetraCom",F2:F11)4,700
123=COUNTIF(C2:C11,"Banten")3
124=AVERAGE(G2:G11)701
125=COUNTIF(D2:D11,"*Tangerang*")2
126=SUMIFS(G2:G11,B2:B11,"Selulink",H2:H11,"COMPLETED")1,700
127=COUNTIFS(E2:E11,"Bella",H2:H11,"<>COMPLETED")3
128=AVERAGEIF(C2:C11,"Jawa Barat",F2:F11)1,060
129=SUMIF(B2:B11,"Nusanet",G2:G11)/SUMIF(B2:B11,"Nusanet",F2:F11)50.00%
130=MAXIFS(G2:G11,C2:C11,"Banten")1,000
131Kriteria J1:K2 = Provider/Selulink, Provinsi/Jawa Barat. =DSUM($A$1:$H$11,"Target",J1:K2)1,300
132Kriteria J1:K3: judul Status dan PIC, baris 2 "DELAY" di J2, baris 3 "Candra" di K3. =DCOUNTA($A$1:$H$11,"Project",J1:K3)5
133Kriteria J1:J2 = Actual/240. =DGET($A$1:$H$11,"Kab/Kota",J1:J2)Serang
134=SUMIF(H2:H11,"ON PROGRESS",F2:F11)-SUMIF(H2:H11,"ON PROGRESS",G2:G11)1,190
135=SUMPRODUCT(--(G2:G11/F2:F11<0.5))2

BAB 10 · Advanced Formula & Formula Combination

NoFormulaHasil
136=IF(AND(B2>=$F$1,C2>=$F$2),"Bonus","-")Bonus
137=SUMIFS(C2:C7,A2:A7,">="&DATE(2026,5,1),A2:A7,"<"&DATE(2026,6,1))5,000,000
138=COUNTIF(B2:B7,"Open")4
139=LET(t,SUM(Data!I2:I9),a,SUM(Data!J2:J9),a/t)58.72%
140=SORT(UNIQUE(Data!C2:C9))Central, East, West
141=SUMIFS(C2:C7,A2:A7,">="&DATE(2026,6,1),A2:A7,"<"&DATE(2026,7,1),B2:B7,"East")3,200,000
142=SUMPRODUCT((Data!K2:K9="COMPLETED")*(Data!H2:H9>Data!F2:F9))1 (PRJ-A02)
143=SORT(FILTER(CHOOSECOLS(Data!A2:K9,1,9),Data!K2:K9="ON PROGRESS"),2,-1)PRJ-A04 1,500, PRJ-A08 1,100, PRJ-A06 900
144=IFERROR(XLOOKUP("MTR-002",$E$2:$E$4,$F$2:$F$4)*50,"Cek harga")115,000
145=Data!N1-Data!G468
146Name Manager: SISA = =LAMBDA(target,actual,MAX(0,target-actual)). Pakai =SISA(Data!I4,Data!J4)420
147=LET(p,SORT(UNIQUE(Data!D2:D9)),t,SUMIFS(Data!I2:I9,Data!D2:D9,p),a,SUMIFS(Data!J2:J9,Data!D2:D9,p),HSTACK(p,a/t))Andi 87.83%, Bella 62.94%, Candra 65.00%, Dewi 27.31%
148=AVERAGE(FILTER(Data!N1-Data!G2:G9,Data!H2:H9=""))43.8 hari
149=SUMPRODUCT(--(Data!G2:G9-Data!E2:E9>1))7
150=LET(r,SORT(UNIQUE(B2:B7)),HSTACK(r,SUMIFS(C2:C7,A2:A7,">="&DATE(2026,6,1),A2:A7,"<"&DATE(2026,7,1),B2:B7,r)))Central 4,500,000, East 3,200,000, West 13,900,000

Glossary

IstilahArti
Absolute ReferenceReferensi cell yang dikunci dengan $ sehingga tidak bergeser saat rumus disalin, misalnya $A$2
ArgumentNilai atau referensi yang dimasukkan ke dalam fungsi, dipisahkan koma (atau titik koma di regional Indonesia)
ArrayKumpulan nilai dalam bentuk baris, kolom, atau tabel. Bisa berupa range atau hasil rumus
Array KonstanArray yang diketik langsung di rumus dengan kurung kurawal, misalnya {"DELAY","ON PROGRESS"}
BASTBerita Acara Serah Terima, dokumen penanda pekerjaan sudah diserahterimakan (dipakai di studi kasus)
Case-sensitiveMembedakan huruf besar dan kecil. FIND dan EXACT bersifat case-sensitive, SEARCH tidak
CellPertemuan satu kolom dan satu baris, misalnya D2
CriteriaSyarat yang harus dipenuhi data agar dihitung, misalnya "DELAY" atau ">=1000"
Criteria RangeRange berisi judul kolom dan syarat, dipakai oleh fungsi database seperti DSUM
Ctrl+Shift+Enter (CSE)Cara memasukkan array formula di Excel 2019 ke bawah
Data ValidationFitur untuk membatasi isian cell, misalnya dropdown atau aturan rumus
Database (Excel)Range berbentuk tabel dengan baris judul dan satu record per baris
DelimiterKarakter pemisah, misalnya koma pada TEXTJOIN(", ", ...)
Dynamic ArrayKemampuan Excel modern mengembalikan banyak nilai dari satu rumus
Excel TableRange yang diubah dengan Ctrl+T. Otomatis meluas saat data bertambah dan memakai structured reference
FormulaInstruksi perhitungan yang diawali tanda =
Formula BarKotak di atas sheet yang menampilkan isi asli cell aktif
FunctionRumus siap pakai buatan Excel, misalnya SUM atau XLOOKUP
Helper ColumnKolom bantu untuk memecah perhitungan panjang menjadi beberapa langkah
LookupProses mencari nilai di satu tabel lalu mengambil data terkait
Mixed ReferenceReferensi yang hanya mengunci kolom atau baris, misalnya $A2 atau A$2
Name BoxKotak di kiri formula bar yang menampilkan alamat cell aktif atau nama range
Name ManagerMenu untuk membuat dan mengelola nama range serta fungsi LAMBDA
Named RangeRange yang diberi nama, misalnya Libur untuk daftar hari libur
Nested FunctionFungsi di dalam fungsi, misalnya ROUND(AVERAGE(...), 0)
OperatorSimbol perhitungan atau perbandingan: + - * / ^ & = <> > < >= <=
Paste Special > ValuesMenempel hasil rumus sebagai nilai tetap, tanpa rumusnya
RangeKumpulan cell yang berdekatan, misalnya A2:D6
Relative ReferenceReferensi yang bergeser mengikuti posisi rumus saat disalin, misalnya A2
Serial NumberAngka yang dipakai Excel untuk menyimpan tanggal. 15 Juni 2026 = 46188
SLAService Level Agreement, batas waktu penyelesaian yang disepakati
SpillHasil rumus dynamic array yang mengisi beberapa cell sekaligus
Spill ReferenceReferensi ke seluruh hasil spill dengan tanda #, misalnya K2#
Structured ReferenceReferensi berbasis nama Table dan kolom, misalnya TabelPenjualan[Total]
SyntaxAturan penulisan fungsi: nama, tanda kurung, dan urutan argument
Text NumberAngka yang tersimpan sebagai teks sehingga tidak ikut dihitung
WildcardKarakter pengganti di kriteria: * untuk banyak karakter dan ? untuk satu karakter
WorkbookFile Excel secara keseluruhan
WorksheetSatu lembar kerja di dalam workbook
#CALC!Error perhitungan array, misalnya hasil kosong pada fungsi tertentu
#DIV/0!Error pembagian dengan nol
#N/AError data tidak ditemukan
#NAME?Nama fungsi tidak dikenal, salah ketik, atau tidak ada di versi Excel tersebut
#REF!Referensi tidak valid, biasanya karena baris atau kolom sumber dihapus
#SPILL!Area spill terhalang data lain
#VALUE!Tipe data tidak sesuai, misalnya teks ikut dihitung

Penutup

Anda sudah melewati sepuluh BAB: dari mengenal cell dan referensi, rumus matematika dan logika, pengolahan teks dan tanggal, lookup, dynamic array, pembersihan data, laporan manajemen, sampai dashboard eksekutif.

Rumus di buku ini sengaja dibangun dari data yang mirip pekerjaan sehari-hari. Jadi saat menghadapi file kerja yang sesungguhnya, coba cari kemiripannya. Laporan penjualan cabang Anda mungkin hanya versi lain dari studi kasus BAB 2. Monitoring vendor di kantor mungkin punya pola yang sama dengan Project Status Monitoring di BAB 3.

Beberapa kebiasaan yang membuat file Excel tetap rapi dan bisa dipercaya:

  1. Pisahkan data mentah, perhitungan, dan laporan di sheet yang berbeda.
  2. Simpan angka kebijakan (tarif, batas, tanggal acuan) di cell tersendiri, jangan ditulis di dalam rumus.
  3. Bersihkan data sebelum menghitung.
  4. Cocokkan grand total laporan dengan total database setiap kali laporan selesai dibuat.
  5. Tulis rumus yang bisa dibaca orang lain, termasuk Anda sendiri tiga bulan lagi.

Simpan buku ini di tempat yang mudah dijangkau. Saat lupa urutan argument SUMIFS, ragu memilih VLOOKUP atau XLOOKUP, atau perlu contoh cepat menghitung hari kerja, buka Cheat Sheet atau BAB terkait.

"Jangan hanya belajar rumus Excel. Belajarlah memahami masalah, kemudian gunakan Excel untuk menyelesaikannya."
Pictor Roito Tumanggor
MASTER RUMUS EXCEL
Panduan Lengkap 300+ Rumus Excel dari Basic hingga Advanced
Administrasi • Finance • HR • Project • Data Analysis • Dashboard