Cara Gunakan IFS Untuk Kondisi Multi Level
Kita bahas tuntas fungsi IFS di spreadsheet — dari yang paling dasar sampai trik pinter yang dipakai di dunia nyata.
Artikel ini cocok buat kamu yang pengin ngurus logika multi-level tanpa ribet nested IF yang njelimet.
Gaya santai, cocok buat anak remaja, pakai banyak contoh, tabel, rumus siap-copas, dan latihan buat ngecek pemahaman.
Oke, siap? Langsung gaskeun.
Kenalan singkat: kenapa IFS itu penting?
Kalau kamu pernah nulis nested IF yang panjangnya kayak naskah — misalnya:
=IF(A1>=85,"A",IF(A1>=70,"B",IF(A1>=55,"C","D")))
— itu masih ok. Tapi saat kondisi jadi puluhan dan ada kombinasi AND/OR di dalamnya, nested IF bakal susah dibaca dan rawan salah.
IFS dibuat supaya kita bisa menulis banyak kondisi lebih rapi:
=IFS(cond1, result1, cond2, result2, cond3, result3, TRUE, default)
Kelebihan:
Lebih mudah dibaca.
Tidak perlu banyak `)` di akhir.
Bisa pakai `TRUE` sebagai default (mirip else).
Kata kunci SEO di sini: rumus IFS, IFS Excel, IFS Google Sheets, kondisi multi level>.
Sintaks dasar IFS
=IFS(test1, value_if_test1_true, test2, value_if_test2_true, ... [TRUE, value_if_all_false]) // optional default
`test1, test2, ...` adalah ekspresi logika yang menghasilkan TRUE/FALSE.
IFS mengevaluasi test berurutan; begitu menemukan `TRUE`, IFS langsung mengembalikan nilai yang terkait dan berhenti (short-circuit).
Jika semua test FALSE dan tidak ada `TRUE` sebagai default, IFS mengembalikan error (`#N/A` di Excel atau `#N/A`/`#VALUE!` tergantung versi).
Contoh paling sederhana: grade nilai
Tabel contoh (A1:B5):
Nama | Nilai |
---|---|
Andi | 92 |
Siti | 78 |
Budi | 61 |
Rina | 48 |
Rumus IFS (di C2, copy ke bawah):
=IFS(B2>=85, "A", B2>=70, "B", B2>=55, "C", B2>=40, "D", TRUE, "E")
Penjelasan:
Evaluasi dari atas ke bawah. Jika `B2` 92 → kondisi pertama `B2>=85` TRUE → hasil "A".
Jika semua kondisi gagal, `TRUE, "E"` jadi default.
Kenapa pakai IFS bukan nested IF?
Perbandingan:
Nested IF:
=IF(B2>=85,"A",IF(B2>=70,"B",IF(B2>=55,"C","D")))
IFS:
=IFS(B2>=85,"A", B2>=70,"B", B2>=55,"C", TRUE,"D")
Keuntungan IFS:
Lebih ringkas secara struktur.
Lebih mudah diread oleh orang lain (maintenance gampang).
Error lebih jelas kalau lupa default (kamu tahu kalau ada kondisi luput).
Catatan: di Excel lama (sebelum 2016) IFS tidak tersedia. Solusinya: nested IF atau buat lookup table.
Praktik 1 — Kategori Umur (multi-level dengan rentang)
Skenario: Klasifikasi usia:
0–11 → Anak
12–17 → Remaja
18–59 → Dewasa
> =60 → Lansia
Rumus:
=IFS(A2<=11, "Anak", A2<=17, "Remaja", A2<=59, "Dewasa", TRUE, "Lansia")
Kenapa pakai `A2<=11`, lalu `A2<=17` (bukan `AND`)? Karena kondisi diuji berurutan. Sekali `A2<=11` FALSE, kita lanjut ke `A2<=17`. Simpel!
Praktik 2 — Diskon Bertingkat (angka & rentang)
Aturan:
Total < 500.000 → no discount
500.000 ≤ total < 2.000.000 → diskon 5%
2.000.000 ≤ total < 5.000.000 → diskon 10%
≥ 5.000.000 → diskon 15%
Rumus (kolom B = total):
=IFS(B2<500000, 0, B2<2000000, B2*0.05, B2<5000000, B2*0.10, TRUE, B2*0.15)
Saran: kalau mau output persentase saja, ubah value-nya jadi `0%`, `5%`, dll.
Menggabungkan IFS dengan AND / OR
IFS bisa berisi kondisi kompleks pakai `AND`, `OR`.
Contoh: bonus untuk penjual:
Kalau region = "Jakarta" dan total ≥ 20 juta → bonus 5%
Kalau region = "Jawa" dan total ≥ 15 juta → bonus 3%
Kalau total ≥ 10 juta → bonus 1%
Else 0
Rumus:
=IFS(AND(C2="Jakarta", B2>=20000000), B2*0.05, AND(C2="Jawa", B2>=15000000), B2*0.03, B2>=10000000, B2*0.01, TRUE, 0)
Catatan: Gunakan `TRIM` dan `UPPER/LOWER` kalau teks sumber kemungkinan ada spasi atau huruf kapital berbeda.
Menggunakan IFS untuk kondisi tekstual / match kata
IFS cocok untuk mapping kategori teks.
Contoh: ubah kode produk jadi kategori:
"A1" atau "A2" → "Pakaian"
"B1" → "Aksesoris"
else → "Lainnya"
Rumus:
=IFS(OR(A2="A1", A2="A2"), "Pakaian", A2="B1", "Aksesoris", TRUE, "Lainnya")
Lebih scalable? Buat table lookup dan pakai `VLOOKUP/XLOOKUP` (lihat bagian alternatif).
IFS vs SWITCH vs VLOOKUP/XLOOKUP
IFS: bagus untuk kondisi kompleks/bertingkat yang mengevaluasi ekspresi.
SWITCH: efisien kalau membandingkan 1 nilai terhadap banyak kemungkinan (exact match).
VLOOKUP/XLOOKUP: ideal untuk mapping berbasis table, terutama kalau sering berubah.
Contoh SWITCH (Excel/Sheets modern):
=SWITCH(A2, "Jan",1, "Feb",2, "Mar",3, "Unknown")
IFS yang setara akan lebih panjang kalau pakai banyak `A2="..."` kondisi.
Gunakan IFS saat kondisi melibatkan rentang/ekspresi (mis. `B2>=85`), SWITCH saat cocok untuk exact text matches.
Validasi input dan error handling
IFS tanpa default bisa menghasilkan error ketika semua kondisi FALSE. Jadi biasakan tambahkan default:
..., TRUE, "Check Input")
Tambahkan `IFERROR` untuk tampilan rapi:
=IFERROR( IFS(...), "Input tidak valid" )
Contoh:
=IFERROR( IFS(B2>=85,"A",B2>=70,"B",TRUE,"C"), "Periksa Nilai" )
IFS dengan teks sensitif/spasi: preprocessing data
Sebelum pakai IFS pada teks, bersihkan data:
`TRIM()` → hapus spasi awal/akhir & spasi ganda.
`UPPER()`/`LOWER()` → standar huruf.
`CLEAN()` → hapus karakter tak terlihat.
Contoh:
=IFS(TRIM(LOWER(A2))="vip", "Diskon 20%", TRIM(LOWER(A2))="member","Diskon 10%", TRUE, "No Discount")
IFS untuk tanggal & waktu
Contoh: kategorikan pesanan berdasarkan tanggal:
Pesanan lebih dari 30 hari lalu → "Terlambat"
7–30 hari → "Normal"
Kurang dari 7 hari → "Baru"
Rumus:
=IFS(A2 < TODAY()-30, "Terlambat", A2 <= TODAY()-7, "Normal", TRUE, "Baru")
Pastikan `A2` bertipe Date. Gunakan `ISNUMBER(A2)` untuk cek.
IFS dengan fungsi matematika & logika numerik
Contoh: skor gabungan (teori + praktek) dan grade:
Hitung weighted score: `=0.6nilai_teori + 0.4nilai_praktek`
Lalu kategorikan:
=IFS(score>=85, "A", score>=70, "B", score>=55, "C", TRUE, "D")
Di Excel 365 gunakan LET untuk readability:
=LET(score, 0.6*B2 + 0.4*C2, IFS(score>=85,"A", score>=70,"B", TRUE,"C"))
IFS untuk multiple outputs (bukan hanya teks)
IFS bisa mengembalikan angka, teks, tanggal, atau bahkan rumus lain.
Contoh: return tanggal jatuh tempo berdasarkan kategori:
=IFS(A2="Express", TODAY()+3, A2="Reguler", TODAY()+7, TRUE, TODAY()+14)
Contoh: return formula perhitungan:
=IFS(A2="Type1", B2*0.1, A2="Type2", B2*0.15, TRUE, B2*0.05)
Menggunakan IFS di Conditional Formatting
Kamu bisa pakai logika IFS (atau gabungan kondisi) dalam rule conditional formatting untuk menandai baris tertentu.
Contoh (Google Sheets / Excel conditional formatting dengan formula):
Formula: `=B2>=85` → format hijau.
Lebih rumit: `=IFS(B2>=85,TRUE,B2>=70,TRUE)` tapi umumnya buat format gunakan `AND/OR` lebih sederhana.
IFS + ARRAYFORMULA / SPILL (Google Sheets / Excel 365)
Di Google Sheets, bisa pakai `ARRAYFORMULA` agar satu rumus IFS diaplikasikan ke seluruh kolom:
=ARRAYFORMULA(IFS(B2:B>=85,"A", B2:B>=70,"B", TRUE,"C"))
Di Excel 365, IFS bisa mengoperasikan dynamic arrays:
=IFS(A2:A100>=85,"A", A2:A100>=70,"B", TRUE,"C")
Hati-hati performa untuk range besar.
Performance & skalabilitas: kapan pindah ke lookup/table?
IFS bagus sampai jumlah kondisi masih terbaca. Kalau kondisi:
Lebih dari ~10–15 kondisi, atau
Kondisi sering berubah, atau
Banyak user yang perlu maintenance,
maka pertimbangkan:
Lookup table + `VLOOKUP`/`XLOOKUP`/`LOOKUP`.
Power Query (Excel) untuk transform rutin.
Apps Script/VBA untuk validasi otomatis.
Contoh lookup gradation menggunakan LOOKUP:
=LOOKUP(B2, {0,55,70,85}, {"E","C","B","A"})
Ini sangat rapi untuk threshold-based mapping.
Debugging IFS: masalah umum & solusi
1. Missing default → semua kondisi false → error `#N/A`.
Solusi: tambahkan `TRUE, "default"` di akhir.
2. Urutan kondisi salah → kondisi umum ditempatkan sebelum kondisi spesifik.
Solusi: urutkan dari yang paling “ketat” ke yang paling “longgar”.
3. Tipe data tidak cocok (teks vs angka) → kondisi selalu FALSE.
Solusi: pakai `VALUE()`, `TRIM()`, `UPPER()`, atau cek `ISNUMBER`.
4. Spasi tak terlihat → hasil mismatch pada teks.
Solusi: `TRIM()` dan `SUBSTITUTE(A2,CHAR(160)," ")`.
5. Kondisi overlapping → misal `>=70` dan `>=85` urutnya salah → hasil salah.
Solusi: desain kondisi tanpa overlap atau urutkan dengan benar.
Model pattern & best practices
Pattern A (range thresholds):tulis kondisi seperti `value<=x` naik secara berurutan.
Pattern B (multiple fields):gunakan `AND`/`OR` di test.
Pattern C (text match):`TRIM(LOWER())` untuk normalisasi.
Pattern D (date ranges): pakai `TODAY()` dan cek `<=`/`>=`.
Pattern E (fallback): selalu tambahkan default `TRUE, "..."`.
Gunakan `LET` (Excel 365) untuk menyimpan nilai perhitungan sementara supaya rumus IFS lebih bersih.
Studi Kasus Lengkap 1 — Sistem Penilaian Sekolah (step-by-step)
Skenario:
Ada kolom nilai teori, praktek, kehadiran. Aturan:
Grade A jika (score_total >= 85) dan kehadiran >= 90%
B jika (score_total >= 70) dan kehadiran >= 80%
C jika score_total >= 55
D kalau lainnya
Jika data kosong → "Periksa Data"
Langkah:
1. Hitung `score_total` di helper column:
=0.6*B2 + 0.4*C2
2. IFERROR + IFS final:
=IF(OR(ISBLANK(B2), ISBLANK(C2), ISBLANK(D2)), "Periksa Data", IFS( AND(E2>=85, D2>=0.9), "A", AND(E2>=70, D2>=0.8), "B", E2>=55, "C", TRUE, "D" ) )
Penjelasan detail di kolom bantu bikin debugging gampang.
Studi Kasus Lengkap 2 — Perhitungan Komisi Multi-Rule
Skenario:
Komisi per produk berbeda dan ada bonus jika target tercapai.
Kolom: `ProductType`, `SalesAmount`, `AchievedTarget`(Yes/No)
Aturan:
Product A: komisi 5%
Product B: komisi 3%
Product C: komisi 2%
Jika target tercapai → tambahan 1% untuk semua
Rumus:
=LET(base, IFS(A2="A", B2*0.05, A2="B", B2*0.03, A2="C", B2*0.02, TRUE, 0), bonus, IF(C2="Yes", B2*0.01, 0), base + bonus)
Jika Excel tanpa LET, tulis:
=IFS(A2="A", B2*0.05, A2="B", B2*0.03, A2="C", B2*0.02, TRUE, 0) + IF(C2="Yes", B2*0.01, 0)
Latihan Interaktif (soal + jawaban)
Latihan 1 — Grade Ujian
Buat rumus IFS untuk:
≥90 → A+
80–89 → A
70–79 → B
60–69 → C
<60 → F
Jawaban:
=IFS(B2>=90,"A+", B2>=80,"A", B2>=70,"B", B2>=60,"C", TRUE,"F")
Latihan 2 — Level Keanggotaan
Kolom points:
<100 → Bronze
100–499 → Silver
500–999 → Gold
≥1000 → Platinum
Jawaban:
=IFS(A2<100,"Bronze", A2<500,"Silver", A2<1000,"Gold", TRUE,"Platinum")
Latihan 3 — Gabungan AND/OR
Aturan:
Jika (usia < 18 AND parentalConsent = "Yes") OR usia >= 18 → boleh daftar.
Rumus:
=IF(OR(AND(B2<18, C2="Yes"), B2>=18), "Boleh", "Tidak")
Bisa juga IFS:
=IFS(OR(AND(B2<18, C2="Yes"), B2>=18), "Boleh", TRUE, "Tidak")
Alternatif jika IFS tidak tersedia
Nested IF: solusi universal.
LOOKUP/CHOOSE: untuk mapping berbasis index.
VLOOKUP/XLOOKUP: untuk mapping terstruktur.
Power Query: buat transform yang hasilnya permanent/refreshable.
Script (Apps Script/VBA): untuk logic kompleks pada banyak data.
Contoh LOOKUP threshold:
=LOOKUP(B2, {0,60,70,80,90}, {"F","D","C","B","A"})
Cheat Sheet IFS (Formula-ready)
Basic:
=IFS(cond1, res1, cond2, res2, TRUE, resDefault)
With AND:
=IFS(AND(A2>=10, B2<5), "Case1", TRUE, "Other")
With OR:
=IFS(OR(A2="X", A2="Y"), "Group1", TRUE, "Other")
With date:
=IFS(A2
With text normalize:
=IFS(LOWER(TRIM(A2))="vip","VIP", TRUE,"Regular")
Penutup — ringkas & motivasi praktek
IFS itu alat yang sangat powerful buat kondisi multi-level. Intinya:
Susun kondisi dari yang paling spesifik/ketat ke yang paling umum.
Tambahkan default `TRUE` supaya aman.
Gunakan `AND/OR` untuk logika gabungan.
Pakai helper columns dan `LET` (Excel 365) untuk rumus bersih.
Untuk banyak kondisi atau mapping yang sering berubah, pertimbangkan lookup table atau Power Query.
Latihan secara rutin: ambil dataset nilai, transaksi, atau daftar pelangganmu, lalu desain aturan dan implementasikan pake IFS. Setelah beberapa kali, nulis IFS bakal terasa gampang dan bikin kerjaanmu otomatis serta rapi.
Selamat praktek — dan jangan lupa cek edge-case (data kosong, tipe data salah) agar rumusmu kuat di dunia nyata.
Gabung dalam percakapan