IF bertingkat (nested IF) adalah IF di dalam IF lain, dipakai ketika ada lebih dari dua kemungkinan hasil. =IF(B2>=90,"A",IF(B2>=80,"B",IF(B2>=70,"C","F"))) memberi A untuk nilai 90 ke atas, B untuk 80 sampai 89, C untuk 70 sampai 79, dan F di bawah 70.
| A | B | C | |
|---|---|---|---|
| 1 | Student | Score | Grade |
| 2 | Ana | 94 | A |
| 3 | Ben | 81 | B |
| 4 | Chloe | 70 | C |
| 5 | Dan | 65 | F |
| 6 | Eve | 88 | B |
| 7 | Finn | 90 | A |
Klik C2 lalu lihat formula bar: ada tiga fungsi IF, dan tiga kurung tutup di akhir. Ubah skor Dan di B5 menjadi 75, maka nilainya berubah dari F menjadi C.
Cara membaca IF bertingkat
Excel membaca rumus dari awal dan berhenti di pengujian pertama yang bernilai TRUE:
=IF(B2>=90, "A",
IF(B2>=80, "B",
IF(B2>=70, "C",
"F")))
- Apakah skornya 90 atau lebih? Kalau ya, A, dan tidak ada lagi yang diperiksa.
- Kalau tidak, apakah 80 atau lebih? Kalau ya, B. Pengujian ini tidak perlu menyebut "dan di bawah 90", karena skor 90 atau lebih tidak pernah sampai ke sini.
- Kalau tidak, apakah 70 atau lebih? Kalau ya, C.
- Kalau tidak, F, yaitu value_if_false dari IF terakhir.
Setiap IF di dalam menempati posisi value_if_false dari IF sebelumnya. Excel mengizinkan hingga 64 tingkat, tapi rumus dengan lebih dari empat atau lima tingkat sulit diperiksa dengan mata. Excel menerima baris baru di dalam rumus, jadi kamu bisa menata rumus panjang seperti ini di formula bar: tekan Alt+Enter (Windows) atau Control+Option+Return (Mac) sebelum setiap IF.
Kenapa urutan kondisi penting
Karena Excel berhenti di pengujian pertama yang TRUE, ambang batasnya harus diurutkan dari tertinggi ke terendah kalau kamu memakai >=. Kolom D berisi tiga pengujian yang sama dengan urutan terbalik:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Student | Score | Right order | Wrong order |
| 2 | Ana | 94 | A | C |
| 3 | Ben | 81 | B | C |
| 4 | Chloe | 70 | C | C |
| 5 | Dan | 65 | F | F |
| 6 | Eve | 88 | B | C |
Di kolom D, semua yang skornya 70 atau lebih mendapat C: skor 94 lolos pengujian pertama, B2>=70, dan pengujian B dan A tidak pernah tercapai. Kalau kamu lebih suka mulai dari rentang terendah, balik operatornya: =IF(B2<70,"F",IF(B2<80,"C",IF(B2<90,"B","A"))) memberi nilai yang sama dengan kolom C.
IF bertingkat dengan teks
Pengujiannya juga bisa membandingkan teks. Di sini ongkos kirim tergantung wilayahnya, dan setiap wilayah yang tidak disebut mendapat nilai terakhir:
| A | B | C | |
|---|---|---|---|
| 1 | Order | Region | Fee |
| 2 | 1001 | North | $5.00 |
| 3 | 1002 | South | $7.00 |
| 4 | 1003 | West | $9.00 |
| 5 | 1004 | East | $6.00 |
| 6 | 1005 | Islands | $9.00 |
West dan Islands tidak cocok dengan ketiga pengujian, jadi mendapat nilai terakhir, $9.00. Kalau setiap pengujian membandingkan sel yang sama dengan nilai tetap, seperti di sini, SWITCH menulis aturan yang sama dengan menyebut setiap wilayah sekali: =SWITCH(B2,"North",5,"South",7,"East",6,9). Lihat halaman SWITCH.
IF bertingkat dengan AND
IF bertingkat bisa menggabungkan tingkatannya dengan AND atau OR ketika satu rentang bergantung pada dua sel. Sales dengan penjualan 2.000 atau lebih dan masa kerja minimal 3 tahun mendapat 10%, sales lain dengan penjualan di atas 2.000 mendapat 5%, dan sisanya tidak mendapat apa-apa:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Rep | Sales | Years | Rate |
| 2 | Ana | 2400 | 4 | 10% |
| 3 | Ben | 2100 | 1 | 5% |
| 4 | Chloe | 1500 | 6 | 0% |
| 5 | Dan | 3000 | 3 | 10% |
| 6 | Eve | 900 | 2 | 0% |
Ana dan Dan memenuhi syarat 10%, Ben punya penjualannya tapi belum cukup tahun sehingga mendapat 5%, sedangkan Chloe dan Eve mendapat 0%. Urutannya juga penting di sini: pengujian yang lebih ketat ditulis lebih dulu.
IFS: hal yang sama tanpa bertingkat
Di Excel 2019, Excel 2021 dan Microsoft 365, IFS menerima pengujian dan hasil secara berpasangan, tanpa IF di dalam dan dengan satu kurung tutup saja. TRUE sebagai pengujian terakhir berarti "selain itu":
=IFS(B2>=90,"A",B2>=80,"B",B2>=70,"C",TRUE,"F")
IFS membaca kondisinya dengan urutan yang sama dan berhenti di kondisi pertama yang TRUE, jadi aturan urutan di atas tetap berlaku. Halaman IFS membahasnya, termasuk #N/A yang dihasilkannya ketika tidak ada pengujian yang cocok. Di Excel 2016 dan versi lebih lama, IFS tidak tersedia, dan file yang memakainya menampilkan #NAME? di sana.
Latihan: komisi tiga rentang
| A | B | C | |
|---|---|---|---|
| 1 | Rep | Sales | Commission |
| 2 | Ana | $6,200 | |
| 3 | Ben | $2,400 | |
| 4 | Chloe | $600 |
Giliranmu: Di C2, berikan 10% dari penjualan di B2 kalau nilainya 5000 atau lebih, 5% kalau 1000 atau lebih, dan 0 untuk selain itu. Rumusnya disalin ke bawah sampai C4.
Tabel lookup sebagai pengganti banyak IF
Kalau rentangnya berupa angka dan jumlahnya lebih dari tiga atau empat, simpan ambang batasnya di sebuah tabel kecil lalu cari dengan lookup. Tabelnya diurutkan dari ambang batas terendah, dan pencocokan perkiraan (TRUE sebagai argumen terakhir) mengembalikan baris dengan ambang batas terbesar yang tidak melebihi skornya:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Student | Score | Grade | Min score | Grade | |
| 2 | Ana | 94 | A | 0 | F | |
| 3 | Ben | 81 | B | 70 | C | |
| 4 | Chloe | 70 | C | 80 | B | |
| 5 | Dan | 65 | F | 90 | A | |
| 6 | Eve | 88 | B |
Hasilnya sama dengan IF bertingkat di bagian atas halaman. Untuk menggeser rentang B ke 85, ubah E4 menjadi 85: tidak ada rumus yang berubah, dan setiap nilai ikut diperbarui. Dengan XLOOKUP, lookup yang sama ditulis =XLOOKUP(B2,$E$2:$E$5,$F$2:$F$5,,-1), dengan -1 berarti "sama persis atau nilai berikutnya yang lebih kecil"; tabelnya tidak perlu diurutkan.
Coba sendiri: tabel rentangnya sudah siap, tulis lookup-nya.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Student | Score | Grade | Min score | Grade | |
| 2 | Ana | 86 | 0 | F | ||
| 3 | 70 | C | ||||
| 4 | 80 | B | ||||
| 5 | 90 | A |
Giliranmu: Di C2, kembalikan nilai huruf untuk skor di B2 dari tabel rentang di E2:F5.
Pertanyaan yang sering diajukan
Bagaimana cara menulis rumus IF bertingkat di Excel?
Taruh IF berikutnya di argumen value_if_false dari IF sebelumnya: =IF(B2>=90,"A",IF(B2>=80,"B",IF(B2>=70,"C","F"))). Excel menguji kondisinya dari yang pertama sampai yang terakhir dan berhenti di kondisi pertama yang bernilai TRUE.
Berapa banyak fungsi IF yang bisa ditumpuk di Excel?
Hingga 64 tingkat di Excel 2007 dan versi sesudahnya. Jauh sebelum batas itu, rumusnya sudah sulit dibaca dan diperiksa; kalau ada lebih dari tiga atau empat rentang, tabel lookup dengan VLOOKUP atau XLOOKUP pencocokan perkiraan lebih mudah dirawat.
Kenapa rumus IF bertingkat saya memberi hasil yang salah?
Biasanya karena urutan kondisinya salah. Dengan pengujian >=, mulailah dari ambang batas tertinggi: kalau B2>=70 ditulis lebih dulu, nilai 95 berhenti di sana dan mendapat hasil untuk rentang 70.
Apa yang bisa dipakai sebagai pengganti IF bertingkat di Excel?
IFS di Excel 2019 dan versi sesudahnya (=IFS(B2>=90,"A",B2>=80,"B",TRUE,"F")), SWITCH ketika kamu membandingkan satu nilai dengan nilai-nilai tetap, dan tabel lookup dengan =VLOOKUP(B2,$E$2:$F$5,2,TRUE) untuk rentang angka.