สารบัญ
ในบทช่วยสอนนี้ เราจะดูวิธีใช้ฟังก์ชัน 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