สารบัญ
บทช่วยสอนจะพิจารณาถึงการใช้งานจริงของฟังก์ชัน Excel ISERROR และแสดงวิธีทดสอบสูตรต่างๆ เพื่อหาข้อผิดพลาด
เมื่อคุณเขียนสูตรที่ Excel ไม่เข้าใจหรือคำนวณไม่ได้ ระบบจะดึงความสนใจของคุณไปที่ปัญหาโดยแสดงข้อความแสดงข้อผิดพลาด ฟังก์ชัน ISERROR สามารถช่วยคุณตรวจจับข้อผิดพลาดและจัดเตรียมทางเลือกอื่นเมื่อพบข้อผิดพลาด
ฟังก์ชัน ISERROR ใน Excel
ฟังก์ชัน ISERROR ของ Excel จะตรวจจับข้อผิดพลาดทุกประเภท รวมถึง #CALC!, #DIV/0!, #N/A, #NAME?, #NUM!, #NULL!, #REF!, #VALUE! และ #SPILL! ผลลัพธ์คือค่าบูลีน: TRUE หากตรวจพบข้อผิดพลาด หากตรวจพบข้อผิดพลาด จะเป็น FALSE
ฟังก์ชันนี้พร้อมใช้งานใน Excel 2000 ถึง 2021 และ Excel 365 ทุกรุ่น
ไวยากรณ์ของ ISERROR ฟังก์ชันง่ายๆ ดังนี้:
ISERROR(value)โดยที่ value คือค่าของเซลล์หรือสูตรที่จะตรวจสอบหาข้อผิดพลาด
สูตร Excel ISERROR
ในการสร้างสูตร ISERROR ในรูปแบบที่ง่ายที่สุด ให้ระบุข้อมูลอ้างอิงไปยังเซลล์ที่คุณต้องการทดสอบข้อผิดพลาด ตัวอย่างเช่น:
=ISERROR(A2)
ในกรณีที่พบข้อผิดพลาด คุณจะได้รับ TRUE หากไม่มีข้อผิดพลาดในเซลล์ที่ทดสอบ คุณจะได้รับ FALSE:
สูตร ISERROR ใน Excel
หากต้องการส่งคืนข้อความที่กำหนดเองหรือดำเนินการ การคำนวณที่แตกต่างกันเมื่อเกิดข้อผิดพลาด ให้ใช้ ISERROR ร่วมกับฟังก์ชัน IF สูตรทั่วไปมีลักษณะดังนี้:
IF(ISERROR( formula(…), text_or_calculation_if_error, formula())แปลเป็นภาษามนุษย์ มันบอกว่า: ถ้าผลลัพธ์ของสูตรหลัก หากเกิดข้อผิดพลาด ให้แสดงข้อความที่ระบุหรือเรียกใช้การคำนวณอื่น มิฉะนั้นจะส่งคืนผลลัพธ์ปกติของสูตร
ในภาพด้านล่าง การหารผลรวมด้วยปริมาณทำให้เกิดข้อผิดพลาดสองสามครั้งใน ราคา คอลัมน์:
หากต้องการแทนที่รหัสข้อผิดพลาดต่างๆ ทั้งหมดด้วยข้อความที่กำหนดเอง คุณสามารถใช้สูตร IF ISERROR ต่อไปนี้:
=IF(ISERROR(A2/B2), "Unknown", A2/B2)
ใน Excel 2007 และเวอร์ชันที่ใหม่กว่า ผลลัพธ์เดียวกันสามารถทำได้โดยใช้ฟังก์ชัน IFERROR ในตัว:
=IFERROR(A2/B2, "Unknown")
ควรเป็น โปรดทราบว่าสูตร IFERROR ทำงานเร็วกว่าเล็กน้อยเนื่องจากทำการคำนวณ A2/B2 เพียงครั้งเดียว ในขณะที่ IF ISERROR คำนวณสองครั้ง - อันดับแรกเพื่อดูว่าเกิดข้อผิดพลาดหรือไม่และจากนั้นอีกครั้งหากการทดสอบเป็นเท็จ
สูตร IF ISERROR VLOOKUP
การใช้ ISERROR กับ VLOOKUP เป็นกรณีเฉพาะของ IF IS สูตรข้อผิดพลาดที่กล่าวถึงข้างต้น เมื่อฟังก์ชัน VLOOKUP ไม่พบค่าการค้นหาหรือล้มเหลวด้วยเหตุผลอื่นใด คุณจะแสดงข้อความแบบกำหนดเองโดยใช้ไวยากรณ์นี้:
IF(ISERROR(VLOOKUP(…)), " custom_text", VLOOKUP(…))สำหรับตัวอย่างนี้ ลองดึงเวลาจากตารางค้นหา (D3:E10) ไปยังตารางหลัก (A3:B15) หากไม่มีค่าการค้นหา (ชื่อผู้เข้าร่วม) ในตารางการค้นหา เราจะส่งคืน "ไม่ผ่านการรับรอง"
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$10, 2, FALSE)), "Not qualified", VLOOKUP(A3, $D$3:$E$10, 2, FALSE))
เคล็ดลับ หากคุณต้องการแสดงข้อความที่กำหนดเองเฉพาะเมื่อ ไม่พบค่าการค้นหา (ข้อผิดพลาด #N/A) โดยไม่สนใจข้อผิดพลาดอื่นๆ ให้ใช้สูตร IFNA VLOOKUP ใน Excel 2013 และใหม่กว่า หรือ IF ISNA VLOOKUP ในเวอร์ชันเก่ากว่า รุ่น
สูตร ISERROR INDEX MATCH
เมื่อทำการค้นหาด้วยความช่วยเหลือของชุดค่าผสม INDEX MATCH (หรือสูตร INDEX XMATCH ใน Excel 365) คุณสามารถดักจับและจัดการข้อผิดพลาดใดๆ ที่เป็นไปได้โดยใช้เทคนิคเดียวกัน - ฟังก์ชัน ISERROR จะตรวจสอบข้อผิดพลาดและ IF จะแสดงข้อความที่ระบุเมื่อมีข้อผิดพลาดเกิดขึ้น
IF(ISERROR(INDEX ( return_column , MATCH ( lookup_value , lookup_column , 0)))), " custom_text ", INDEX ( return_column , MATCH ( lookup_value , lookup_column , 0)))สมมติว่าตารางการค้นหามีเวลาในคอลัมน์แรก เนื่องจาก VLOOKUP ไม่สามารถมองไปทางซ้ายได้ เราจึงใช้สูตร INDEX MATCH เพื่อดึงเวลาจากคอลัมน์ D:
=INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0))
จากนั้นจึงซ้อนไว้ในสูตรทั่วไปที่กล่าวถึงข้างต้น เพื่อแทนที่ข้อผิดพลาดที่ตรวจพบด้วยข้อความที่คุณต้องการ:
=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)))
หมายเหตุ เช่นเดียวกับสูตร IF ISERROR VLOOKUP จะดีกว่าที่จะดักจับเฉพาะข้อผิดพลาด #N/A และไม่ปกปิดปัญหาที่อาจเกิดขึ้นด้วยตัวสูตรเอง ในการทำเช่นนี้ ให้รวมสูตร INDEX MATH ของคุณใน IFNA ใน Excel 2013 และสูงกว่าหรือ IF ISNA ในเวอร์ชันก่อนหน้า
หากISERROR ใช่/ไม่ใช่ สูตร
ในตัวอย่างก่อนหน้านี้ IF ISERROR ส่งคืนผลลัพธ์ของสูตรหลัก หากไม่ใช่ข้อผิดพลาด อย่างไรก็ตาม ยังสามารถทำงานได้ในลักษณะอื่น - ส่งคืนบางอย่างหากมีข้อผิดพลาด และอย่างอื่นหากไม่มีข้อผิดพลาด
IF(ISERROR( formula (…)), " text_if_error " , " text_if_no_error ")ในชุดข้อมูลตัวอย่างของเรา สมมติว่าคุณไม่สนใจเวลาที่แน่นอน คุณแค่ต้องการทราบว่าผู้เข้าร่วมกลุ่ม A คนไหนมีคุณสมบัติและกลุ่มใดไม่ผ่านเกณฑ์ ในการดำเนินการนี้ ให้ใช้ฟังก์ชัน MATCH เพื่อเปรียบเทียบชื่อในคอลัมน์ A กับรายชื่อผู้เข้าร่วมที่มีคุณสมบัติในคอลัมน์ D แล้วส่งผลลัพธ์ไปยัง ISERROR หากไม่มีชื่อในคอลัมน์ D (MATCH ส่งกลับข้อผิดพลาด) รับฟังก์ชัน IF เพื่อแสดง "ไม่" หรือ "ไม่ผ่านเกณฑ์" ถ้าชื่อปรากฏในคอลัมน์ D (ไม่มีข้อผิดพลาด) ให้ส่งคืน "ใช่" หรือ "ผ่านเกณฑ์"
=IF(ISERROR(MATCH(A3, $D$3:$D$10, 0)), "No", "Yes" )
วิธีนับจำนวนข้อผิดพลาด
หากต้องการทราบจำนวนข้อผิดพลาดในคอลัมน์ใดคอลัมน์หนึ่ง คุณต้องตรวจสอบช่วง ไม่ใช่แค่เซลล์เดียว สำหรับสิ่งนี้ ให้ "ป้อน" ช่วงเป้าหมายไปยัง ISERROR และบังคับให้ค่าบูลีนที่ส่งคืนเป็น 1 และ 0 โดยใช้ตัวดำเนินการเอกฐานคู่ (--) ฟังก์ชัน SUM หรือ SUMPRODUCT สามารถเพิ่มตัวเลขและส่งผลลัพธ์สุดท้ายได้
ตัวอย่างเช่น:
=SUM(--ISERROR(C2:C10))
โปรดทราบว่าวิธีนี้ใช้ได้เป็นสูตรปกติใน Excel เท่านั้น 365 และ Excel 2021 ซึ่งรองรับอาร์เรย์แบบไดนามิก ใน Excel 2019 และรุ่นก่อนหน้า คุณต้องกด Ctrl + Shift + Enter เพื่อสร้างสูตรอาร์เรย์ (อย่าพิมพ์วงเล็บปีกกาเอง มันจะไม่ทำงาน!):
{=SUM(--ISERROR(C2:C10))}
หรืออีกวิธีหนึ่ง คุณสามารถใช้ SUMPRODUCT ฟังก์ชันที่จัดการอาร์เรย์แบบเนทีฟ ดังนั้นสูตรจึงสมบูรณ์ได้ด้วยปุ่ม Enter ตามปกติในทุกรุ่น:
=SUMPRODUCT(--ISERROR(C2:C10))
ความแตกต่างระหว่าง ISERROR และ IFERROR ใน Excel
ทั้งฟังก์ชัน ISERROR และ IFERROR ใช้เพื่อดักจับและจัดการกับข้อผิดพลาดใน Excel ความแตกต่างมีดังนี้:
- ในรูปแบบบริสุทธิ์ ISERROR จะทดสอบว่าค่าดังกล่าวมีข้อผิดพลาดหรือไม่ ซึ่งพร้อมใช้งานใน Excel ทุกรุ่น
- ฟังก์ชัน IFERROR ออกแบบมาเพื่อระงับหรือซ่อนข้อผิดพลาด - เมื่อพบข้อผิดพลาด ฟังก์ชันจะส่งกลับค่าอื่นที่คุณระบุ มีให้ใช้งานใน Excel 2007 และสูงกว่า
ตั้งแต่แรกเห็น IFERROR ดูเหมือนเป็นอีกทางเลือกหนึ่งของสูตร IF ISERROR อย่างไรก็ตาม เมื่อพิจารณาอย่างใกล้ชิด คุณจะสังเกตเห็นความแตกต่างได้:
- IFERROR อนุญาตให้คุณระบุเฉพาะ value_if_error หากไม่มีข้อผิดพลาด ระบบจะส่งคืนผลลัพธ์ของค่า/สูตรที่ทดสอบเสมอ
- IF ISERROR ให้ความยืดหยุ่นมากขึ้นและให้คุณจัดการกับทั้งสองสถานการณ์ - จะเกิดอะไรขึ้นหากเกิดข้อผิดพลาดและจะเกิดอะไรขึ้นหากไม่มีข้อผิดพลาด<18
เพื่อให้เข้าใจประเด็นได้ดีขึ้น ให้พิจารณาสูตรเหล่านี้:
=IFERROR(A1, "Calculation error")
=IF(ISERROR(A1), "Calculation error", A1)
สูตรทั้งสองนี้เทียบเท่ากัน - ทั้งสองสูตรตรวจสอบค่าที่มาจากสูตร ใน A1 และกลับมา"ข้อผิดพลาดในการคำนวณ" หากเป็นข้อผิดพลาด มิฉะนั้น ให้ส่งคืนค่า
แต่ถ้าคุณต้องการทำการคำนวณบางอย่าง หากค่าใน A1 ไม่ใช่ข้อผิดพลาด ฟังก์ชัน IFERROR ไม่สามารถทำเช่นนั้นได้ ในกรณีของ IF ISERROR เพียงพิมพ์การคำนวณที่ต้องการในอาร์กิวเมนต์สุดท้าย ตัวอย่างเช่น:
=IF(ISERROR(A1), "Calculation error", A1*2)
อย่างที่คุณเห็น รูปแบบที่ยาวกว่านี้ของสูตร IFERROR ซึ่งมักถือว่าล้าสมัย ยังคงมีประโยชน์ :)
ดาวน์โหลดได้
ตัวอย่างสูตร ISERROR (ไฟล์ .xlsx)