Excel IFERROR & VLOOKUP - ดัก #N/A และข้อผิดพลาดอื่นๆ

  • แบ่งปันสิ่งนี้
Michael Brown

ในบทช่วยสอนนี้ เราจะดูวิธีใช้ฟังก์ชัน IFERROR และ VLOOKUP ร่วมกันเพื่อดักจับและจัดการกับข้อผิดพลาดต่างๆ นอกจากนี้ คุณจะได้เรียนรู้วิธีการทำ Vlookups ตามลำดับใน Excel โดยการซ้อนฟังก์ชัน IFERROR หลายฟังก์ชันเข้าด้วยกัน

Excel VLOOKUP และ IFERROR - ฟังก์ชันทั้งสองนี้อาจเข้าใจแยกกันได้ยาก ไม่ต้องพูดถึงเมื่อรวมเข้าด้วยกัน ในบทความนี้ คุณจะพบตัวอย่างที่ทำตามได้ง่ายสองสามตัวอย่างซึ่งกล่าวถึงการใช้งานทั่วไปและแสดงตรรกะของสูตรอย่างชัดเจน

หากคุณไม่มีประสบการณ์มากนักเกี่ยวกับฟังก์ชัน IFERROR และ VLOOKUP อาจเป็นได้ เป็นความคิดที่ดีที่จะแก้ไขพื้นฐานก่อนโดยไปที่ลิงก์ด้านบน

    สูตร IFERROR VLOOKUP เพื่อจัดการกับ #N/A และข้อผิดพลาดอื่นๆ

    เมื่อค้นหา Excel Vlookup ไม่พบ ค่าการค้นหาจะส่งข้อผิดพลาด #N/A เช่นนี้:

    ขึ้นอยู่กับความต้องการทางธุรกิจของคุณ คุณอาจต้องการซ่อนข้อผิดพลาดด้วยข้อความของคุณเอง ศูนย์ หรือเซลล์ว่าง

    ตัวอย่างที่ 1. IFERROR ด้วยสูตร VLOOKUP เพื่อแทนที่ข้อผิดพลาดด้วยข้อความของคุณเอง

    หากคุณต้องการแทนที่ข้อผิดพลาดมาตรฐานด้วยข้อความที่คุณกำหนดเอง ให้รวม สูตร VLOOKUP ใน IFERROR แล้วพิมพ์ข้อความที่คุณต้องการในอาร์กิวเมนต์ที่ 2 ( value_if_error ) เช่น "ไม่พบ":

    IFERROR(VLOOKUP(),"Not พบ")

    ด้วยค่าการค้นหาใน B2 ในตารางหลัก และช่วงการค้นหา A2:B4 ในการค้นหาตาราง สูตรจะใช้รูปแบบต่อไปนี้:

    =IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), "Not found")

    ภาพหน้าจอด้านล่างแสดงการทำงานของสูตร Excel IFERROR VLOOKUP ของเรา:

    The ผลลัพธ์จะดูเข้าใจได้มากกว่าและน่ากลัวน้อยกว่ามากใช่ไหม

    ในลักษณะที่คล้ายกัน คุณสามารถใช้ INDEX MATCH ร่วมกับ IFERROR:

    =IFERROR(INDEX('Lookup table'!$B$2:$B$5,MATCH(B2,'Lookup table'!$A$2:$A$5,0)), "Not found")

    The IFERROR สูตร INDEX MATCH มีประโยชน์อย่างยิ่งเมื่อคุณต้องการดึงค่าจากคอลัมน์ที่อยู่ทางด้านซ้ายของคอลัมน์ค้นหา (การค้นหาด้านซ้าย) และส่งคืนข้อความของคุณเองเมื่อไม่พบอะไรเลย

    ตัวอย่างที่ 2. IFERROR ที่มี VLOOKUP เพื่อส่งคืนค่าว่างหรือ 0 หากไม่พบสิ่งใดเลย

    หากคุณไม่ต้องการแสดงสิ่งใดเมื่อไม่พบค่าการค้นหา ให้ IFERROR แสดง สตริงว่าง (""):

    IFERROR(VLOOKUP(),"")

    ในตัวอย่างของเรา สูตรจะเป็นดังนี้:

    =IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), "")

    อย่างที่คุณเห็น จะไม่ส่งคืนสิ่งใดเมื่อค่าการค้นหาไม่อยู่ในรายการค้นหา

    หากคุณต้องการแทนที่ข้อผิดพลาดด้วย ค่าศูนย์ ให้ใส่ 0 ในช่วงสุดท้าย rgument:

    =IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), 0)

    คำเตือน! ฟังก์ชัน IFERROR ของ Excel จับข้อผิดพลาดทุกประเภท ไม่ใช่แค่ #N/A เท่านั้น มันดีหรือไม่ดี? ทั้งหมดขึ้นอยู่กับเป้าหมายของคุณ หากคุณต้องการปกปิดข้อผิดพลาดที่เป็นไปได้ทั้งหมด IFERROR Vlookup คือหนทางที่จะไป แต่อาจเป็นเทคนิคที่ไม่ฉลาดในหลาย ๆ สถานการณ์

    ตัวอย่างเช่น หากคุณสร้างช่วงที่มีชื่อสำหรับข้อมูลตารางของคุณ และสะกดชื่อนั้นผิดในสูตร Vlookup, IFERROR จะจับ #NAME? ข้อผิดพลาดและแทนที่ด้วย "ไม่พบ" หรือข้อความอื่น ๆ ที่คุณระบุ ด้วยเหตุนี้ คุณจึงไม่อาจทราบได้เลยว่าสูตรของคุณให้ผลลัพธ์ที่ไม่ถูกต้อง เว้นแต่คุณจะตรวจพบการพิมพ์ผิดด้วยตัวคุณเอง ในกรณีเช่นนี้ วิธีการที่สมเหตุสมผลกว่าจะเป็นการดักจับข้อผิดพลาด #N/A เท่านั้น สำหรับสิ่งนี้ ให้ใช้สูตร IFNA Vlookup ใน Excel 2013 และสูงกว่า IF ISNA VLOOKUP ใน Excel ทุกรุ่น

    สิ่งสำคัญที่สุดคือ: โปรดใช้ความระมัดระวังอย่างมากเมื่อเลือกคู่หูสำหรับสูตร VLOOKUP ของคุณ :)

    ซ้อน IFERROR ภายใน VLOOKUP เพื่อค้นหาบางสิ่งเสมอ

    ลองนึกภาพสถานการณ์ต่อไปนี้: คุณค้นหาค่าที่ระบุในรายการและไม่พบค่านั้น คุณมีทางเลือกอะไรบ้าง? ได้รับข้อผิดพลาด N/A หรือแสดงข้อความของคุณเอง จริงๆ แล้วมีตัวเลือกที่สาม - หาก vlookup หลักของคุณสะดุด ให้ค้นหาสิ่งอื่นที่มีอยู่อย่างแน่นอน!

    จากตัวอย่างของเราต่อไป ลองสร้างแดชบอร์ดสำหรับผู้ใช้ของเราที่จะแสดงส่วนขยาย จำนวนสำนักงานเฉพาะ อะไรประมาณนี้:

    คุณจะดึงส่วนขยายจากคอลัมน์ B ตามหมายเลขสำนักงานใน D2 ได้อย่างไร ด้วยสูตรปกติของ Vlookup:

    =VLOOKUP($D$2,$A$2:$B$7,2,FALSE)

    และจะใช้ได้ดีตราบใดที่ผู้ใช้ของคุณป้อนตัวเลขที่ถูกต้องใน D2 แต่ถ้าผู้ใช้ป้อนตัวเลขที่ไม่มีอยู่จริงล่ะ ในกรณีนี้ให้โทรไปที่สำนักงานกลาง! สำหรับสิ่งนี้ คุณฝังสูตรข้างต้นในอาร์กิวเมนต์ value ของ IFERROR และใส่ Vlookup อื่นในอาร์กิวเมนต์ value_if_error

    สูตรที่สมบูรณ์อาจยาวหน่อย แต่ทำงานได้อย่างสมบูรณ์:

    =IFERROR(VLOOKUP("office "&$D$2,$A$2:$B$7,2,FALSE),VLOOKUP("central office",$A$2:$B$7,2,FALSE))

    หากพบหมายเลขสำนักงาน ผู้ใช้จะได้รับหมายเลขต่อที่สอดคล้องกัน:

    หากไม่พบหมายเลขสำนักงาน แสดงว่าเป็นส่วนขยายของสำนักงานส่วนกลาง ปรากฏขึ้น:

    หากต้องการทำให้สูตรกระชับขึ้นอีกเล็กน้อย คุณสามารถใช้วิธีอื่นได้:

    ก่อนอื่น ให้ตรวจสอบว่ามีตัวเลขใน D2 หรือไม่ ในคอลัมน์การค้นหา (โปรดสังเกตว่าเราตั้งค่า col_index_num เป็น 1 เพื่อให้สูตรค้นหาและส่งคืนค่าจากคอลัมน์ A): VLOOKUP(D2,$A$2:$B$7,1,FALSE)

    หากไม่พบหมายเลขสำนักงานที่ระบุ เราจะค้นหาสตริง "สำนักงานกลาง" ซึ่งอยู่ในรายการค้นหาอย่างแน่นอน สำหรับสิ่งนี้ คุณรวม VLOOKUP แรกไว้ใน IFERROR และซ้อนชุดค่าผสมทั้งหมดนี้ไว้ในฟังก์ชัน VLOOKUP อื่น:

    =VLOOKUP(IFERROR(VLOOKUP(D2,$A$2:$B$7,1,FALSE),"central office"),$A$2:$B$7,2)

    เป็นสูตรที่แตกต่างกันเล็กน้อย ผลลัพธ์เหมือนกัน:

    แต่ทำไมต้องค้นหา "สำนักงานกลาง" คุณอาจถามฉัน ทำไมไม่ระบุหมายเลขต่อโดยตรงใน IFERROR เนื่องจากส่วนขยายอาจมีการเปลี่ยนแปลงในบางจุดในอนาคต หากสิ่งนี้เกิดขึ้น คุณจะต้องอัปเดตข้อมูลของคุณเพียงครั้งเดียวในตารางต้นฉบับ โดยไม่ต้องกังวลเกี่ยวกับการอัปเดตสูตร VLOOKUP แต่ละสูตร

    วิธีทำ VLOOKUP ตามลำดับใน Excel

    ในสถานการณ์ที่ คุณต้องดำเนินการสิ่งที่เรียกว่า ลำดับ หรือ เชื่อมโยง Vlookups ใน Excel ขึ้นอยู่กับว่าการค้นหาก่อนหน้านี้สำเร็จหรือล้มเหลว ซ้อนฟังก์ชัน IFERROR สองฟังก์ชันขึ้นไปเพื่อเรียกใช้ Vlookups ทีละฟังก์ชัน:

    IFERROR(VLOOKUP(), IFERROR(VLOOKUP(), IFERROR(VLOOKUP(),"ไม่พบ")))

    สูตรทำงานร่วมกับตรรกะต่อไปนี้:

    หาก VLOOKUP แรกไม่พบสิ่งใด IFERROR แรกจะดักจับข้อผิดพลาดและเรียกใช้ VLOOKUP อื่น หาก VLOOKUP ที่สองล้มเหลว IFERROR ที่สองจะตรวจจับข้อผิดพลาดและเรียกใช้ VLOOKUP ที่สาม เช่นนี้ไปเรื่อยๆ หาก Vlookups ทั้งหมดสะดุด IFERROR สุดท้ายจะส่งคืนข้อความของคุณ

    สูตร IFERROR ที่ซ้อนกันนี้มีประโยชน์อย่างยิ่งเมื่อคุณต้อง Vlookup ใน หลายแผ่นงาน ตามที่แสดงในตัวอย่างด้านล่าง

    สมมติว่าคุณมีข้อมูลที่เป็นเนื้อเดียวกันสามรายการในเวิร์กชีตที่แตกต่างกันสามแผ่น (หมายเลขสำนักงานในตัวอย่างนี้) และคุณต้องการขยายสำหรับตัวเลขจำนวนหนึ่ง

    สมมติว่าค่าการค้นหาอยู่ในเซลล์ A2 ในแผ่นงานปัจจุบัน และช่วงการค้นหาคือ A2:B5 ในแผ่นงาน 3 แผ่นที่แตกต่างกัน (เหนือ ใต้ และตะวันตก) สูตรต่อไปนี้ใช้ได้ผลดี:

    =IFERROR(VLOOKUP(A2,North!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,South!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,West!$A$2:$B$5,2,FALSE),"Not found")))

    ดังนั้น "ล่ามโซ่ สูตร Vlookups" จะค้นหาในแผ่นงานที่แตกต่างกันสามแผ่นตามลำดับที่เราซ้อนไว้ในสูตร และนำค่าแรกที่ตรงกันที่พบ:

    นี่คือวิธีที่คุณใช้ IFERROR กับ VLOOKUP ใน เอ็กเซล ฉันขอขอบคุณสำหรับการอ่านและหวังว่าจะได้พบคุณในบล็อกของเราในสัปดาห์หน้า!

    ดาวน์โหลดได้

    ตัวอย่างสูตร Excel IFERROR VLOOKUP

    Michael Brown เป็นผู้ที่ชื่นชอบเทคโนโลยีโดยเฉพาะและมีความหลงใหลในการทำให้กระบวนการที่ซับซ้อนง่ายขึ้นโดยใช้เครื่องมือซอฟต์แวร์ ด้วยประสบการณ์กว่าทศวรรษในอุตสาหกรรมเทคโนโลยี เขาได้ฝึกฝนทักษะของเขาใน Microsoft Excel และ Outlook รวมถึง Google ชีตและเอกสาร บล็อกของ Michael ทุ่มเทให้กับการแบ่งปันความรู้และความเชี่ยวชาญของเขากับผู้อื่น โดยให้คำแนะนำและแบบฝึกหัดที่ทำตามได้ง่ายเพื่อปรับปรุงผลิตภาพและประสิทธิภาพ ไม่ว่าคุณจะเป็นมืออาชีพที่ช่ำชองหรือมือใหม่ บล็อกของ Michael นำเสนอข้อมูลเชิงลึกอันมีค่าและคำแนะนำที่เป็นประโยชน์สำหรับการใช้ประโยชน์สูงสุดจากเครื่องมือซอฟต์แวร์ที่จำเป็นเหล่านี้