Isi kandungan
Tutorial melihat penggunaan praktikal fungsi Excel ISERROR dan menunjukkan cara menguji formula yang berbeza untuk ralat.
Apabila anda menulis formula yang Excel tidak faham atau tidak boleh mengira, ia menarik perhatian anda kepada masalah dengan menunjukkan mesej ralat. Fungsi ISERROR boleh membantu anda menangkap ralat dan menyediakan alternatif apabila ralat ditemui.
Fungsi ISERROR dalam Excel
Fungsi Excel ISERROR menangkap semua jenis ralat, termasuk #CALC!, #DIV/0!, #N/A, #NAME?, #NUM!, #NULL!, #REF!, #VALUE!, dan #SPILL!. Hasilnya ialah nilai Boolean: TRUE jika ralat dikesan, FALSE sebaliknya.
Fungsi ini tersedia dalam semua versi Excel 2000 hingga 2021 dan Excel 365.
Sintaks ISERROR fungsi adalah semudah ini:
ISERROR(value)Di mana value ialah nilai sel atau formula yang akan disemak untuk ralat.
Formula Excel ISERROR
Untuk mencipta formula ISERROR dalam bentuk yang paling mudah, berikan rujukan kepada sel yang ingin anda uji untuk ralat. Contohnya:
=ISERROR(A2)
Sekiranya sebarang ralat ditemui, anda akan mendapat BENAR. Jika tiada ralat dalam sel yang diuji, anda akan mendapat FALSE:
IF ISERROR formula dalam Excel
Untuk mengembalikan mesej tersuai atau melaksanakan pengiraan yang berbeza apabila ralat berlaku, gunakan ISERROR bersama-sama dengan fungsi IF. Formula generik kelihatan seperti berikut:
IF(ISERROR( formula(…), text_or_calculation_if_error, formula())Diterjemahkan ke dalam bahasa manusia, ia berkata: jika formula utama terhasil dalam ralat, paparkan teks yang ditentukan atau jalankan pengiraan lain, jika tidak, kembalikan hasil normal formula.
Dalam imej di bawah, membahagikan jumlah dengan kuantiti menghasilkan beberapa ralat dalam Harga lajur:
Untuk menggantikan semua kod ralat yang berbeza dengan teks tersuai, anda boleh menggunakan formula IF ISERROR berikut:
=IF(ISERROR(A2/B2), "Unknown", A2/B2)
Dalam Excel 2007 dan versi yang lebih baru, hasil yang sama boleh dicapai dengan bantuan fungsi IFERROR terbina:
=IFERROR(A2/B2, "Unknown")
Ia sepatutnya menyatakan bahawa formula IFERROR berjalan lebih pantas sedikit kerana ia melakukan pengiraan A2/B2 sekali sahaja. Manakala JIKA ISERROR mengiranya dua kali - pertama untuk melihat sama ada ia menghasilkan ralat dan kemudian sekali lagi jika ujian itu SALAH.
IF ISERROR VLOOKUP formula
Menggunakan ISERROR dengan VLOOKUP sebenarnya, kes tertentu IF IS Formula RALAT yang dibincangkan di atas. Apabila fungsi VLOOKUP tidak dapat mencari nilai carian atau gagal untuk sebarang sebab lain, anda memaparkan mesej teks tersuai dengan menggunakan sintaks ini:
IF(ISERROR(VLOOKUP(…)), " custom_text", VLOOKUP(…))Untuk contoh ini, mari kita tarik masa daripada jadual carian (D3:E10) ke jadual utama (A3:B15). Jika nilai carian (nama peserta) tidak wujud dalamjadual carian, kami akan mengembalikan "Tidak layak".
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$10, 2, FALSE)), "Not qualified", VLOOKUP(A3, $D$3:$E$10, 2, FALSE))
Petua. Jika anda mahu memaparkan teks tersuai hanya apabila nilai carian tidak ditemui (#N/A ralat) mengabaikan ralat lain, kemudian gunakan formula IFNA VLOOKUP dalam Excel 2013 dan lebih baru atau IF ISNA VLOOKUP dalam lebih lama versi.
JIKA formula ISERROR INDEX MATCH
Apabila melakukan carian dengan bantuan gabungan INDEX MATCH (atau formula INDEX XMATCH dalam Excel 365), anda boleh memerangkap dan mengendalikan sebarang kemungkinan ralat dengan menggunakan teknik yang sama - fungsi ISERROR menyemak ralat dan IF memaparkan teks yang ditentukan apabila sebarang ralat berlaku.
IF(ISERROR(INDEX ( return_column , MATCH ( lookup_value , lookup_column , 0)))), " teks_khusus ", INDEX ( lajur_pulangan , PADANAN ( nilai_carian , lajur_carian , 0)))Andaikan jadual carian mempunyai masa dalam lajur pertama. Oleh kerana VLOOKUP tidak dapat melihat ke kirinya, kami menggunakan formula INDEX MATCH untuk menarik masa dari lajur D:
=INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0))
Dan kemudian, anda menyarangkannya dalam formula generik yang disebutkan di atas untuk menggantikan ralat yang ditangkap dengan mana-mana teks yang anda mahu:
=IF(ISERROR(INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0))), "Not qualified", INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0)))
Nota. Seperti formula IF ISERROR VLOOKUP, lebih masuk akal untuk memerangkap ralat #N/A sahaja dan tidak menyamarkan masalah yang berpotensi dengan formula itu sendiri. Untuk ini, bungkus formula INDEX MATH anda dalam IFNA dalam Excel 2013 dan lebih tinggi atau IF ISNA dalam versi terdahulu.
JIKAFormula ISERROR Ya/Tidak
Dalam semua contoh sebelumnya, JIKA ISERROR mengembalikan hasil formula utama jika ia bukan ralat. Walau bagaimanapun, ia juga boleh berfungsi dengan cara yang berbeza - kembalikan sesuatu jika ralat dan sesuatu yang lain jika tiada ralat.
IF(ISERROR( formula (…)), " text_if_error " , " text_if_no_error ")Dalam set data sampel kami, katakan anda tidak berminat dengan masa yang tepat, anda hanya ingin mengetahui peserta daripada kumpulan A yang layak dan yang tidak. Untuk melakukan ini, gunakan fungsi MATCH untuk membandingkan nama dalam lajur A dengan senarai peserta yang layak dalam lajur D, dan kemudian menyampaikan keputusan kepada ISERROR. Jika nama tidak tersedia dalam lajur D (MATCH mengembalikan ralat), dapatkan fungsi IF untuk memaparkan "Tidak" atau "Tidak layak". Jika nama muncul dalam lajur D (tiada ralat), kembalikan "Ya" atau "Layak".
=IF(ISERROR(MATCH(A3, $D$3:$D$10, 0)), "No", "Yes" )
Cara mengira bilangan ralat
Untuk mendapatkan bilangan ralat dalam lajur tertentu, anda perlu menyemak julat, bukan hanya satu sel. Untuk ini, "suapkan" julat sasaran kepada ISERROR dan paksa nilai Boolean yang dikembalikan ke dalam 1 dan 0 menggunakan pengendali unari berganda (--). Fungsi SUM atau SUMPRODUCT boleh menambah nombor dan menyampaikan hasil akhir.
Contohnya:
=SUM(--ISERROR(C2:C10))
Sila ambil perhatian, ini berfungsi sebagai formula biasa hanya dalam Excel 365 dan Excel 2021, yang menyokong tatasusunan dinamik. Dalam Excel 2019 dan lebih awal, andaperlu menekan Ctrl + Shift + Enter untuk mencipta formula tatasusunan (jangan taip kurungan kerinting secara manual, itu tidak akan berfungsi!):
{=SUM(--ISERROR(C2:C10))}
Sebagai alternatif, anda boleh menggunakan SUMPRODUCT fungsi yang mengendalikan tatasusunan secara asli, jadi formula boleh dilengkapkan dengan kekunci Enter biasa dalam semua versi:
=SUMPRODUCT(--ISERROR(C2:C10))
Perbezaan antara ISERROR dan IFERROR dalam Excel
Kedua-dua fungsi ISERROR dan IFERROR digunakan untuk memerangkap dan mengendalikan ralat dalam Excel. Perbezaannya adalah seperti berikut:
- Dalam bentuk tulennya, ISERROR hanya menguji sama ada nilai itu ralat atau tidak. Ia tersedia dalam semua versi Excel.
- Fungsi IFERROR direka untuk menyekat atau menyamarkan ralat - apabila ralat ditemui, ia mengembalikan nilai lain yang anda tentukan. Ia tersedia dalam Excel 2007 dan lebih tinggi.
Pada pandangan pertama, IFERROR kelihatan seperti alternatif ringkas kepada formula IF ISERROR. Walau bagaimanapun, apabila dilihat lebih dekat, anda boleh melihat perbezaannya:
- IFERROR membenarkan anda untuk menentukan hanya value_if_error . Jika tiada ralat, ia sentiasa mengembalikan hasil nilai/formula yang diuji.
- JIKA ISERROR memberikan lebih fleksibiliti dan membolehkan anda mengendalikan kedua-dua situasi - apakah yang harus berlaku jika ralat dan bagaimana jika tiada ralat.
Untuk menggambarkan perkara ini dengan lebih baik, pertimbangkan formula ini:
=IFERROR(A1, "Calculation error")
=IF(ISERROR(A1), "Calculation error", A1)
Kedua-dua formula ini adalah setara - kedua-duanya menyemak nilai terdorong formula dalam A1 dan kembali"Ralat pengiraan" jika ia ralat, jika tidak - pulangkan nilainya.
Tetapi bagaimana jika anda ingin melakukan beberapa pengiraan jika nilai dalam A1 bukan ralat? Fungsi IFERROR tidak dapat melakukannya. Dalam kes IF ISERROR, taip sahaja pengiraan yang dikehendaki dalam hujah terakhir. Contohnya:
=IF(ISERROR(A1), "Calculation error", A1*2)
Seperti yang anda lihat, variasi formula IFERROR yang lebih panjang ini, yang sering dianggap ketinggalan zaman, masih boleh berguna :)
Muat turun yang tersedia
Contoh formula ISERROR (fail.xlsx)