สารบัญ
บทช่วยสอนจะแนะนำ XLOOKUP ซึ่งเป็นฟังก์ชันใหม่สำหรับการค้นหาแนวตั้งและแนวนอนใน Excel การค้นหาด้านซ้าย การจับคู่ล่าสุด Vlookup ที่มีหลายเกณฑ์และอีกมากมายที่เคยต้องใช้วุฒิวิทยาศาสตร์จรวดจึงจะสำเร็จ ตอนนี้กลายเป็นเรื่องง่ายเหมือน ABC
เมื่อใดก็ตามที่คุณต้องการค้นหาใน Excel คุณจะใช้ฟังก์ชันใด VLOOKUP เป็นรากฐานที่สำคัญหรือเป็น HLOOKUP พี่น้องในแนวนอนหรือไม่ ในกรณีที่ซับซ้อนกว่านั้น คุณจะใช้ชุดค่าผสม INDEX MATCH แบบบัญญัติหรือมอบหมายงานให้กับ Power Query หรือไม่ ข่าวดีก็คือคุณไม่ต้องเลือกอีกต่อไป วิธีการทั้งหมดเหล่านี้กำลังสร้างทางเลือกให้กับฟังก์ชัน XLOOKUP ที่ทรงพลังและหลากหลายมากขึ้น
XLOOKUP ดีกว่าอย่างไร ในหลาย ๆ ด้าน! มันสามารถดูในแนวตั้งและแนวนอน ทางซ้ายและด้านบน ค้นหาด้วยหลายเกณฑ์ และแม้กระทั่งส่งคืนข้อมูลทั้งคอลัมน์หรือแถว ไม่ใช่เพียงค่าเดียว Microsoft ใช้เวลากว่า 3 ทศวรรษ แต่ในที่สุดก็สามารถออกแบบฟังก์ชันที่มีประสิทธิภาพซึ่งเอาชนะข้อผิดพลาดและจุดอ่อนที่น่าหงุดหงิดมากมายของ VLOOKUP
มีปัญหาอะไร อนิจจามีอยู่อย่างหนึ่ง ฟังก์ชัน XLOOKUP พร้อมใช้งานใน Excel สำหรับ Microsoft 365, Excel 2021 และ Excel สำหรับเว็บเท่านั้น
ฟังก์ชัน XLOOKUP ของ Excel - ไวยากรณ์และการใช้งาน
ฟังก์ชัน XLOOKUP ใน Excel ค้นหาช่วงหรืออาร์เรย์สำหรับค่าที่ระบุและส่งคืนค่าที่เกี่ยวข้องจากคอลัมน์อื่น มันสามารถมองขึ้นทั้งสองดึงรายละเอียดทั้งหมดที่เกี่ยวข้องกับพนักงานขายที่สนใจ (F2) สิ่งที่คุณต้องทำคือระบุช่วง ไม่ใช่คอลัมน์หรือแถวเดียว สำหรับอาร์กิวเมนต์ return_array :
=XLOOKUP(F2, A2:A7, B2:D7)
คุณป้อนสูตรที่ด้านซ้ายบน เซลล์ของช่วงผลลัพธ์ และ Excel จะกระจายผลลัพธ์ไปยังเซลล์ว่างที่อยู่ติดกันโดยอัตโนมัติ ในกรณีของเรา อาร์เรย์ส่งคืน (B2:D7) มี 3 คอลัมน์ ( วันที่ , รายการ และ จำนวน ) และค่าทั้งสามค่าจะถูกส่งกลับในช่วง G2:I2
หากคุณต้องการจัดเรียงผลลัพธ์ในแนวตั้งในคอลัมน์ ให้ซ้อน XLOOKUP ไว้ในฟังก์ชัน TRANSPOSE เพื่อพลิกอาร์เรย์ที่ส่งคืน:
=TRANSPOSE(XLOOKUP(G1, A2:A7, B2:D7))
ในทำนองเดียวกัน คุณสามารถส่งคืนข้อมูลทั้งคอลัมน์ เช่น คอลัมน์ จำนวน สำหรับสิ่งนี้ ให้ใช้เซลล์ F1 ที่มี "จำนวน" เป็น lookup_value ช่วง A1:D1 ที่มีส่วนหัวของคอลัมน์เป็น lookup_array และช่วง A2:D7 ที่มีข้อมูลทั้งหมดเป็น return_array .
=XLOOKUP(F1, A1:D1, A2:D7)
หมายเหตุ เนื่องจากมีการใส่ค่าหลายค่าลงในเซลล์ข้างเคียง ตรวจสอบให้แน่ใจว่าคุณมีเซลล์ว่างเพียงพอทางด้านขวาหรือด้านล่าง ถ้า Excel ไม่พบเซลล์ว่างเพียงพอ #SPILL! เกิดข้อผิดพลาด
เคล็ดลับ XLOOKUP ไม่เพียงแต่สามารถส่งคืนหลายรายการเท่านั้น แต่ยังสามารถแทนที่ด้วยค่าอื่นๆ ที่คุณระบุได้อีกด้วย สามารถดูตัวอย่างการแทนที่จำนวนมากได้ที่นี่: วิธีค้นหาและแทนที่ค่าหลายค่าด้วย XLOOKUP
XLOOKUP ด้วยหลายเกณฑ์
ข้อได้เปรียบที่สำคัญอีกประการของ XLOOKUP คือการจัดการอาร์เรย์แบบเนทีฟ ด้วยความสามารถนี้ คุณสามารถประเมินหลายเกณฑ์โดยตรงในอาร์กิวเมนต์ lookup_array :
XLOOKUP(1, ( criteria_range1 = criteria1 ) * ( criteria_range2 = เกณฑ์2 ) * (…), return_array )วิธีการทำงานของสูตรนี้ : ผลลัพธ์ของการทดสอบเกณฑ์แต่ละรายการคืออาร์เรย์ ของค่า TRUE และ FALSE การคูณอาร์เรย์จะแปลง TRUE และ FALSE เป็น 1 และ 0 ตามลำดับ และสร้างอาร์เรย์การค้นหาขั้นสุดท้าย อย่างที่คุณทราบ การคูณด้วย 0 จะได้ศูนย์เสมอ ดังนั้นในอาร์เรย์การค้นหา เฉพาะรายการที่ตรงตามเกณฑ์ทั้งหมดเท่านั้นที่จะแสดงด้วย 1 และเนื่องจากค่าการค้นหาของเราคือ "1" Excel จึงนำ "1" ตัวแรกใน lookup_array (จับคู่ครั้งแรก) และส่งกลับค่าจาก return_array ในตำแหน่งเดียวกัน
หากต้องการดูการทำงานของสูตร ให้ดึงจำนวนจาก D2:D10 ( return_array ) โดยมีเงื่อนไขดังต่อไปนี้:
- เกณฑ์ที่ 1 (วันที่) = G1
- เกณฑ์ที่ 2 (พนักงานขาย) = G2
- เกณฑ์ที่ 3 (รายการ) = G3
ด้วยวันที่ใน A2:A10 ( criteria_range1 ) ชื่อพนักงานขายใน B2:B10 ( criteria_range2 ) และรายการใน C2:C10 ( criteria_range3 ) สูตรจะใช้รูปแบบนี้:
=XLOOKUP(1, (B2:B10=G1) * (A2:A10=G2) * (C2:C10=G3), D2:D10)
แม้ว่าฟังก์ชัน Excel XLOOKUP จะประมวลผลอาร์เรย์ แต่ก็ทำงานเป็นสูตรปกติและเสร็จสิ้นด้วยการป้อนตามปกติการกดแป้นพิมพ์
สูตร XLOOKUP ที่มีหลายเกณฑ์ไม่จำกัดเงื่อนไข "เท่ากับ" คุณมีอิสระที่จะใช้ตัวดำเนินการทางตรรกะอื่นๆ เช่นกัน ตัวอย่างเช่น หากต้องการกรองคำสั่งซื้อที่ทำในวันที่ใน G1 หรือก่อนหน้านั้น ให้ใส่ "<=G1" ในเกณฑ์แรก:
=XLOOKUP(1, (A2:A10<=G1) * (B2:B10=G2) * (C2:C10=G3), D2:D10)
Double XLOOKUP
หากต้องการค้นหา ค่าที่จุดตัดของแถวและคอลัมน์ที่กำหนด ดำเนินการที่เรียกว่า การค้นหาสองครั้ง หรือ การค้นหาเมทริกซ์ ใช่ Excel XLOOKUP ก็ทำได้เช่นกัน! คุณเพียงซ้อนฟังก์ชันหนึ่งไว้ในอีกฟังก์ชันหนึ่ง:
XLOOKUP( lookup_value1 , lookup_array1 , XLOOKUP( lookup_value2 , lookup_array2 , data_values ))สูตรนี้ทำงานอย่างไร : สูตรนี้ขึ้นอยู่กับความสามารถของ XLOOKUP ในการคืนค่าทั้งแถวหรือทั้งคอลัมน์ ฟังก์ชันภายในค้นหาค่าการค้นหาและส่งกลับคอลัมน์หรือแถวของข้อมูลที่เกี่ยวข้อง อาร์เรย์นั้นไปที่ฟังก์ชันภายนอกเป็น return_array .
สำหรับตัวอย่างนี้ เราจะค้นหายอดขายที่ทำโดยพนักงานขายรายใดรายหนึ่งภายในไตรมาสหนึ่งๆ สำหรับสิ่งนี้ เราป้อนค่าการค้นหาใน H1 (ชื่อพนักงานขาย) และ H2 (ไตรมาส) และทำ Xlookup แบบสองทางด้วยสูตรต่อไปนี้:
=XLOOKUP(H1, A2:A6, XLOOKUP(H2, B1:E1, B2:E6))
หรือในทางกลับกัน :
=XLOOKUP(H2, B1:E1, XLOOKUP(H1, A2:A6, B2:E6))
โดยที่ A2:A6 คือชื่อพนักงานขาย B1:E1 คือไตรมาส (ส่วนหัวของคอลัมน์) และ B2:E6 คือค่าข้อมูล
การค้นหาแบบสองทางสามารถทำได้ด้วยสูตรการจับคู่ INDEX และในอีกสองสามวิธี สำหรับข้อมูลเพิ่มเติม โปรดดูการค้นหาแบบสองทางใน Excel
หากเกิดข้อผิดพลาด XLOOKUP
เมื่อไม่พบค่าการค้นหา Excel XLOOKUP จะส่งกลับข้อผิดพลาด #N/A ค่อนข้างคุ้นเคยและเข้าใจได้สำหรับผู้ใช้ที่เชี่ยวชาญ มันอาจจะค่อนข้างสับสนสำหรับผู้เริ่มต้น หากต้องการแทนที่สัญลักษณ์แสดงข้อผิดพลาดมาตรฐานด้วยข้อความที่ใช้งานง่าย ให้พิมพ์ข้อความของคุณเองลงในอาร์กิวเมนต์ตัวที่ 4 ชื่อ if_not_found .
กลับไปที่ตัวอย่างแรกที่กล่าวถึงในบทช่วยสอนนี้ หากมีคนป้อนชื่อมหาสมุทรที่ไม่ถูกต้องใน E1 สูตรต่อไปนี้จะบอกอย่างชัดเจนว่า "ไม่พบชื่อที่ตรงกัน":
=XLOOKUP(E1, A2:A6, B2:B6, "No match is found")
หมายเหตุ:
- อาร์กิวเมนต์ if_not_found จะดักเฉพาะข้อผิดพลาด #N/A ไม่ใช่ข้อผิดพลาดทั้งหมด
- ข้อผิดพลาด #N/A ยังสามารถจัดการได้ด้วย IFNA และ VLOOKUP แต่ ไวยากรณ์จะซับซ้อนขึ้นเล็กน้อยและสูตรมีความยาวมากขึ้น
XLOOKUP ที่คำนึงถึงตัวพิมพ์เล็กและใหญ่
โดยค่าเริ่มต้น ฟังก์ชัน XLOOKUP จะถือว่าตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เป็นอักขระตัวเดียวกัน เพื่อให้คำนึงถึงขนาดตัวพิมพ์ ให้ใช้ฟังก์ชัน EXACT สำหรับอาร์กิวเมนต์ lookup_array :
XLOOKUP(TRUE, EXACT( lookup_value , lookup_array ), return_array )สูตรนี้ทำงานอย่างไร : ฟังก์ชัน EXACT จะเปรียบเทียบค่าการค้นหากับแต่ละค่าในอาร์เรย์การค้นหา และส่งกลับค่า TRUE หากค่าเหล่านั้นเหมือนกันทั้งหมดรวมถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ หากเป็น FALSE มิฉะนั้น อาร์เรย์ของค่าตรรกะนี้ไปที่ lookup_array อาร์กิวเมนต์ของ XLOOKUP ด้วยเหตุนี้ XLOOKUP จึงค้นหาค่า TRUE ในอาร์เรย์ด้านบนและส่งคืนค่าที่ตรงกันจากอาร์เรย์ส่งคืน
ตัวอย่างเช่น หากต้องการรับราคาจาก B2:B7 ( return_array ) สำหรับ รายการใน E1 ( lookup_value) สูตรใน E2 คือ:
=XLOOKUP(TRUE, EXACT(E1, A2:A7), B2:B7, "Not found")
หมายเหตุ หากมีค่าเหมือนกันทุกประการตั้งแต่สองค่าขึ้นไปในอาร์เรย์การค้นหา (รวมถึงตัวพิมพ์เล็กและใหญ่) ระบบจะส่งคืนค่าที่ตรงกันที่พบครั้งแรก
Excel XLOOKUP ไม่ทำงาน
หากสูตรของคุณทำงานไม่ถูกต้องหรือเกิดข้อผิดพลาด เป็นไปได้มากว่าเกิดจากสาเหตุต่อไปนี้:
XLOOKUP ไม่พร้อมใช้งานใน Excel ของฉัน
ฟังก์ชัน XLOOKUP ไม่รองรับเวอร์ชันเก่า พร้อมใช้งานใน Excel สำหรับ Microsoft 365 และ Excel 2021 เท่านั้น และจะไม่ปรากฏในเวอร์ชันก่อนหน้า
XLOOKUP ส่งกลับผลลัพธ์ที่ไม่ถูกต้อง
หากสูตร Xlookup ที่ถูกต้องอย่างชัดเจนของคุณส่งคืนค่าที่ไม่ถูกต้อง โอกาสที่ ที่ช่วงการค้นหาหรือส่งคืน "เลื่อน" เมื่อสูตรถูกคัดลอกลงหรือข้าม เพื่อป้องกันไม่ให้สิ่งนี้เกิดขึ้น อย่าลืมล็อคทั้งสองช่วงด้วยการอ้างอิงเซลล์แบบสัมบูรณ์เสมอ (เช่น $A$2:$A$10)
XLOOKUP ส่งคืนข้อผิดพลาด #N/A
An #N / ข้อผิดพลาดหมายถึงไม่พบค่าการค้นหา ในการแก้ไขปัญหานี้ ให้ลองค้นหารายการที่ตรงกันโดยประมาณหรือแจ้งผู้ใช้ของคุณว่าไม่พบรายการที่ตรงกัน
XLOOKUP ส่งคืนข้อผิดพลาด #VALUE
A #VALUE! เกิดข้อผิดพลาดหากอาร์เรย์การค้นหาและส่งคืนไม่เข้ากันขนาด ตัวอย่างเช่น ไม่สามารถค้นหาในอาร์เรย์แนวนอนและส่งคืนค่าจากอาร์เรย์แนวตั้งได้
XLOOKUP ส่งคืนข้อผิดพลาด #REF
A #REF! ข้อผิดพลาดเกิดขึ้นเมื่อค้นหาระหว่างสมุดงานสองเล่มที่ต่างกัน ซึ่งหนึ่งในนั้นปิดอยู่ หากต้องการแก้ไขข้อผิดพลาด เพียงเปิดทั้งสองไฟล์
อย่างที่คุณได้เห็น XLOOKUP มีคุณสมบัติที่ยอดเยี่ยมมากมายที่ทำให้เป็นฟังก์ชันสำหรับการค้นหาเกือบทุกอย่างใน Excel ฉันขอขอบคุณสำหรับการอ่านและหวังว่าจะได้พบคุณในบล็อกของเราในสัปดาห์หน้า!
คู่มือแบบฝึกหัดสำหรับการดาวน์โหลด
ตัวอย่างสูตร Excel XLOOKUP (ไฟล์ .xlsx)
ในแนวตั้งและแนวนอน และทำการจับคู่แบบตรงทั้งหมด (ค่าเริ่มต้น) การจับคู่โดยประมาณ (ใกล้เคียงที่สุด) หรือการจับคู่สัญลักษณ์ตัวแทน (บางส่วน)ไวยากรณ์ของฟังก์ชัน XLOOKUP เป็นดังนี้:
XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])อาร์กิวเมนต์ 3 ตัวแรกจำเป็นและ 3 อาร์กิวเมนต์สุดท้ายเป็นตัวเลือก
- Lookup_value - ค่าที่จะ ค้นหา
- Lookup_array - ช่วงหรืออาร์เรย์ที่จะค้นหา
- Return_array - ช่วงหรืออาร์เรย์ที่จะส่งคืนค่า
- If_not_found [ทางเลือก] - ค่าที่จะส่งคืนหากไม่พบค่าที่ตรงกัน หากละเว้น ระบบจะส่งคืนข้อผิดพลาด #N/A
- Match_mode [ไม่บังคับ] - ประเภทการจับคู่ที่จะดำเนินการ:
- 0 หรือละเว้น (ค่าเริ่มต้น) - การจับคู่แบบตรงทั้งหมด . หากไม่พบ ระบบจะส่งคืนข้อผิดพลาด #N/A
- -1 - ตรงกันทั้งหมดหรือเล็กกว่าถัดไป หากไม่พบการจับคู่แบบตรงทั้งหมด ค่าที่น้อยกว่าถัดไปจะถูกส่งกลับ
- 1 - การจับคู่แบบตรงทั้งหมดหรือค่าที่มากกว่าถัดไป หากไม่พบการจับคู่แบบตรงทั้งหมด ค่าที่มากกว่าถัดไปจะถูกส่งกลับ
- 2 - การจับคู่อักขระตัวแทน
- Search_mode [ทางเลือก] - ทิศทางของการค้นหา:
- 1 หรือละไว้ (ค่าเริ่มต้น) - ค้นหาจากแรกไปสุดท้าย
- -1 - ค้นหาในลำดับย้อนกลับ จากสุดท้ายไปก่อน
- 2 - การค้นหาแบบไบนารีสำหรับข้อมูลที่เรียงลำดับจากน้อยไปมาก
- -2 - การค้นหาแบบไบนารีสำหรับข้อมูลที่เรียงลำดับจากมากไปน้อย
ตามข้อมูลของ Microsoft ไบนารีการค้นหา รวมไว้สำหรับผู้ใช้ขั้นสูง เป็นอัลกอริทึมพิเศษที่ค้นหาตำแหน่งของค่าการค้นหาภายในอาร์เรย์ที่เรียงลำดับโดยเปรียบเทียบกับองค์ประกอบตรงกลางของอาร์เรย์ การค้นหาแบบไบนารีเร็วกว่าการค้นหาทั่วไปมาก แต่ทำงานได้อย่างถูกต้องเฉพาะกับข้อมูลที่เรียงลำดับเท่านั้น
สูตร XLOOKUP พื้นฐาน
เพื่อให้เข้าใจมากขึ้น เรามาสร้างสูตร Xlookup ในรูปแบบที่ง่ายที่สุดเพื่อทำการค้นหาที่แน่นอน สำหรับสิ่งนี้ เราต้องการอาร์กิวเมนต์ 3 รายการแรกเท่านั้น
สมมติว่าคุณมีตารางสรุปที่มีข้อมูลเกี่ยวกับมหาสมุทรทั้งห้าบนโลก คุณต้องการรับพื้นที่ของอินพุตมหาสมุทรเฉพาะใน F1 ( lookup_value ) ด้วยชื่อมหาสมุทรใน A2:A6 ( lookup_array ) และพื้นที่ใน C2:C6 ( return_array ) สูตรจะเป็นดังนี้:
=XLOOKUP(F1, A2:A6, C2:C6)
แปลเป็นภาษาอังกฤษธรรมดาว่า ค้นหาค่า F1 ใน A2:A6 และส่งคืนค่าจาก C2:C6 ในแถวเดียวกัน ไม่มีเลขดัชนีของคอลัมน์ ไม่มีการเรียงลำดับ ไม่มี Vlookup ที่ไร้สาระ! ใช้งานได้จริง :)
XLOOKUP เทียบกับ VLOOKUP ใน Excel
เมื่อเปรียบเทียบกับ VLOOKUP แบบดั้งเดิมแล้ว XLOOKUP มีข้อดีมากมาย ดีกว่า VLOOKUP อย่างไร? ต่อไปนี้คือรายการคุณลักษณะที่ดีที่สุด 10 ประการที่ทำให้ประตูปิดฟังก์ชันการค้นหาอื่นๆ ใน Excel:
- การค้นหาแนวตั้งและแนวนอน ฟังก์ชัน XLOOKUP ได้ชื่อมาจากความสามารถในการค้นหาทั้งในแนวตั้งและในแนวนอน
- มองไปในทิศทางใดก็ได้: ขวา ซ้าย ล่าง หรือขึ้น ในขณะที่ VLOOKUP สามารถค้นหาได้เฉพาะในคอลัมน์ซ้ายสุดและ HLOOKUP ในแถวบนสุดเท่านั้น XLOOKUP ไม่มีข้อจำกัดดังกล่าว การค้นหาทางซ้ายที่ฉาวโฉ่ใน Excel ไม่ใช่เรื่องน่าปวดหัวอีกต่อไป
- การทำงานแบบตรงทั้งหมดตามค่าเริ่มต้น ในสถานการณ์ส่วนใหญ่ คุณจะมองหาการจับคู่แบบตรงทั้งหมด และ XLOOKUP จะส่งคืนค่านั้นตามค่าเริ่มต้น (ไม่เหมือนกับฟังก์ชัน VLOOKUP ที่ตั้งค่าเริ่มต้นเป็นการจับคู่โดยประมาณ) แน่นอน คุณสามารถรับ XLOOKUP เพื่อทำการจับคู่โดยประมาณได้เช่นกัน หากจำเป็น
- การจับคู่บางส่วนด้วยสัญลักษณ์แทน เมื่อคุณทราบค่าการค้นหาเพียงบางส่วน ไม่ใช่ทั้งหมด การจับคู่สัญลักษณ์แทนจะมีประโยชน์
- ค้นหาในลำดับย้อนกลับ ก่อนหน้านี้ เพื่อให้ได้เหตุการณ์ล่าสุด คุณต้องกลับลำดับของแหล่งข้อมูลของคุณ ตอนนี้ คุณเพียงตั้งค่าอาร์กิวเมนต์ search_mode เป็น -1 เพื่อบังคับให้สูตร Xlookup ของคุณค้นหาจากด้านหลังและส่งคืนค่าที่ตรงกันล่าสุด
- ส่งคืนค่าหลายค่า ด้วยการจัดการกับอาร์กิวเมนต์ return_array คุณสามารถดึงข้อมูลทั้งแถวหรือคอลัมน์ที่เกี่ยวข้องกับค่าการค้นหาของคุณ
- ค้นหาด้วยหลายเกณฑ์ Excel XLOOKUP จัดการอาร์เรย์แบบเนทีฟ ซึ่งทำให้สามารถค้นหาได้หลายเกณฑ์
- ฟังก์ชันการทำงานหากเกิดข้อผิดพลาด ตามเนื้อผ้า เราใช้ฟังก์ชัน IFNA เพื่อดักข้อผิดพลาด #N/A XLOOKUP รวมฟังก์ชันนี้ไว้ในไฟล์ if_not_found อาร์กิวเมนต์ที่อนุญาตให้แสดงข้อความของคุณเองหากไม่พบการจับคู่ที่ถูกต้อง
- การแทรก/การลบคอลัมน์ ปัญหาที่กวนใจที่สุดอย่างหนึ่งของ VLOOKUP คือการเพิ่มหรือลบคอลัมน์จะทำให้สูตรเสียหาย เนื่องจากคอลัมน์ส่งคืนจะถูกระบุด้วยหมายเลขดัชนี ด้วย XLOOKUP คุณจะระบุช่วงส่งคืน ไม่ใช่ตัวเลข หมายความว่าคุณสามารถแทรกและลบคอลัมน์ได้มากเท่าที่คุณต้องการโดยไม่ทำให้ข้อมูลเสียหาย
- ประสิทธิภาพที่ดีขึ้น VLOOKUP อาจทำให้เวิร์กชีตของคุณทำงานช้าลงเพราะรวมทั้งตารางไว้ในการคำนวณ ซึ่งส่งผลให้มีการประมวลผลเซลล์มากกว่าที่จำเป็นจริงๆ XLOOKUP จัดการเฉพาะการค้นหาและการส่งคืนอาร์เรย์ที่ขึ้นอยู่กับอย่างแท้จริง
วิธีใช้ XLOOKUP ใน Excel - ตัวอย่างสูตร
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงการใช้งานจริงของคุณลักษณะ XLOOKUP ที่มีประโยชน์ที่สุด นอกจากนี้ คุณจะค้นพบการใช้งานที่ไม่สำคัญสองสามอย่างที่ยกระดับทักษะการค้นหา Excel ของคุณไปอีกขั้น
ค้นหาในแนวตั้งและแนวนอน
Microsoft Excel เคยมีฟังก์ชันสองฟังก์ชันสำหรับการค้นหาที่แตกต่างกัน แต่ละประเภทมีไวยากรณ์และกฎการใช้งานของตัวเอง: VLOOKUP เพื่อดูแนวตั้งในคอลัมน์ และ HLOOKUP เพื่อดูแนวนอนในแถว
ฟังก์ชัน XLOOKUP สามารถทำได้ทั้งสองอย่างด้วยไวยากรณ์เดียวกัน ความแตกต่างอยู่ในสิ่งที่คุณระบุสำหรับการค้นหาและอาร์เรย์ที่ส่งคืน
สำหรับ v-lookup จัดหาคอลัมน์:
=XLOOKUP(E1, A2:A6, B2:B6)
สำหรับh-lookup ป้อนแถวแทนคอลัมน์:
=XLOOKUP(I1, B1:F1, B2:F2)
การค้นหาด้านซ้ายดำเนินการโดยกำเนิด
ใน Excel เวอร์ชันก่อนหน้า INDEX MATCH สูตรเป็นวิธีเดียวที่เชื่อถือได้ในการมองไปทางซ้ายหรือด้านบน ตอนนี้ คุณไม่จำเป็นต้องรวมสองฟังก์ชันเข้าด้วยกันโดยที่มีฟังก์ชันเดียวก็เพียงพอแล้ว เพียงระบุอาร์เรย์การค้นหาเป้าหมาย และ XLOOKUP จะจัดการโดยไม่มีปัญหาไม่ว่าจะอยู่ที่ใดก็ตาม
ตามตัวอย่าง ลองเพิ่มคอลัมน์ อันดับ ทางด้านซ้ายของตารางตัวอย่างของเรา เป้าหมายคือการได้รับอันดับของอินพุตมหาสมุทรใน F1 VLOOKUP จะสะดุดเพราะสามารถคืนค่าจากคอลัมน์ทางขวาของคอลัมน์ค้นหาเท่านั้น สูตร Xlookup จัดการได้อย่างง่ายดาย:
=XLOOKUP(F1, B2:B6, A2:A6)
ในลักษณะเดียวกัน คุณสามารถดูด้านบนเมื่อค้นหาในแนวนอนในแถว
XLOOKUP ที่มีการจับคู่แบบตรงทั้งหมดและแบบประมาณ
ลักษณะการจับคู่ถูกควบคุมโดยอาร์กิวเมนต์ที่ 5 ที่เรียกว่า match_mode ตามค่าเริ่มต้น การจับคู่แบบตรงทั้งหมดจะดำเนินการ
โปรดทราบว่าแม้ในขณะที่คุณเลือกการจับคู่แบบประมาณ ( match_mode ตั้งค่าเป็น 1 หรือ -1) ฟังก์ชันจะยังคงค้นหาแบบตรงทั้งหมด จับคู่ก่อน ความแตกต่างคือสิ่งที่ส่งคืนหากไม่พบค่าการค้นหาที่แน่นอน
อาร์กิวเมนต์ Match_mode:
- 0 หรือละเว้น - ตรงทั้งหมด; ถ้าไม่พบ - ข้อผิดพลาด #N/A
- -1 - ตรงทั้งหมด; ถ้าไม่พบ - รายการเล็กถัดไป
- 1 - ตรงทั้งหมด; หากไม่พบ- รายการใหญ่ถัดไป
ตรงทั้งหมด XLOOKUP
นี่คือตัวเลือกที่คุณอาจใช้ 99% ของเวลาค้นหาใน Excel เนื่องจากการจับคู่แบบตรงทั้งหมดเป็นการทำงานเริ่มต้นของ XLOOKUP คุณสามารถละเว้น match_mode และระบุอาร์กิวเมนต์ที่จำเป็น 3 รายการแรกเท่านั้น
อย่างไรก็ตาม ในบางสถานการณ์ การจับคู่แบบตรงทั้งหมดจะไม่ทำงาน สถานการณ์ทั่วไปคือเมื่อตารางการค้นหาของคุณไม่มีค่าทั้งหมด แต่เป็น "เหตุการณ์สำคัญ" หรือ "ขอบเขต" เช่น ส่วนลดตามปริมาณ ค่าคอมมิชชันตามยอดขาย ฯลฯ
ตัวอย่างตารางค้นหาของเราแสดงความสัมพันธ์ ระหว่างคะแนนสอบและผลการเรียน ดังที่คุณเห็นในภาพหน้าจอด้านล่าง การจับคู่แบบตรงทั้งหมดจะทำงานก็ต่อเมื่อคะแนนของนักเรียนคนใดคนหนึ่งตรงกับค่าในตารางการค้นหาทุกประการ (เช่น Christian ในแถวที่ 3) ในกรณีอื่นๆ ทั้งหมด ข้อผิดพลาด #N/A จะถูกส่งกลับ
=XLOOKUP(F2, $B$2:$B$6, $C$2:$C$6)
เพื่อให้ได้เกรดแทนข้อผิดพลาด #N/A เราต้องการ เพื่อค้นหาการจับคู่โดยประมาณตามที่แสดงในตัวอย่างถัดไป
XLOOKUP การจับคู่โดยประมาณ
ในการค้นหาโดยประมาณ ให้ตั้งค่าอาร์กิวเมนต์ match_mode เป็น -1 หรือ 1 ขึ้นอยู่กับวิธีการจัดระเบียบข้อมูลของคุณ
ในกรณีของเรา ตารางค้นหาจะแสดงขอบเขตล่างของเกรด ดังนั้นเราจึงตั้งค่า match_mode เป็น -1 เพื่อค้นหาค่าที่น้อยลงถัดไปเมื่อไม่พบค่าที่ตรงกันทั้งหมด:
=XLOOKUP(F11, $B$11:$B$15, $C$11:$C$15, ,-1)
ตัวอย่างเช่น Brian มีคะแนนเท่ากับ 98 (F2). สูตรค้นหาค่าการค้นหานี้ใน B2:B6แต่หาไม่พบ จากนั้น ค้นหารายการถัดไปที่เล็กกว่าและพบ 90 ซึ่งตรงกับเกรด A:
หากตารางค้นหาของเรามีขอบเขตบนของเกรด เราจะตั้งค่า match_mode ถึง 1 เพื่อค้นหารายการที่ใหญ่กว่าถัดไป หากการจับคู่แบบตรงทั้งหมดล้มเหลว:
=XLOOKUP(F2, $B$2:$B$6, $C$2:$C$6, ,1)
สูตรค้นหา 98 และไม่พบอีกครั้ง คราวนี้ พยายามหาค่าที่มากขึ้นถัดไปและได้รับ 100 ซึ่งสอดคล้องกับเกรด A:
เคล็ดลับ เมื่อคัดลอกสูตร Xlookup ไปยังหลายเซลล์ ให้ล็อคช่วงการค้นหาหรือส่งคืนด้วยการอ้างอิงเซลล์แบบสัมบูรณ์ (เช่น $B$2:$B$6) เพื่อป้องกันไม่ให้เปลี่ยนแปลง
XLOOKUP ที่มีการจับคู่บางส่วน (สัญลักษณ์แทน)
หากต้องการค้นหาการจับคู่บางส่วน ให้ตั้งค่าอาร์กิวเมนต์ match_mode เป็น 2 ซึ่งจะสั่งให้ฟังก์ชัน XLOOKUP ประมวลผลอักขระตัวแทน:
- เครื่องหมายดอกจัน (*) - แสดงถึงลำดับของอักขระใดก็ได้
- เครื่องหมายคำถาม (?) - แสดงถึงอักขระเดี่ยวใดๆ
หากต้องการดูวิธีการทำงาน โปรดพิจารณาตัวอย่างต่อไปนี้ ในคอลัมน์ A คุณมีสมาร์ทโฟนบางรุ่น และในคอลัมน์ B คือความจุของแบตเตอรี่ คุณสงสัยเกี่ยวกับแบตเตอรี่ของสมาร์ทโฟนบางรุ่น ปัญหาคือคุณไม่แน่ใจว่าคุณสามารถพิมพ์ชื่อรุ่นได้ตรงตามที่ปรากฏในคอลัมน์ A หากต้องการแก้ไขปัญหานี้ ให้ป้อนส่วนที่แน่นอนและแทนที่อักขระที่เหลือด้วยสัญลักษณ์แทน
ตัวอย่างเช่น ที่จะได้รับข้อมูลเกี่ยวกับแบตเตอรี่ของ iPhone X ให้ใช้สูตรนี้:
=XLOOKUP("*iphone X*", A2:A8, B2:B8, ,2)
หรือป้อนส่วนที่ทราบของค่าการค้นหาในบางเซลล์ และต่อการอ้างอิงเซลล์ด้วยอักขระตัวแทน:<3
=XLOOKUP("*"&E1&"*", A2:A8, B2:B8, ,2)
XLOOKUP ในลำดับย้อนกลับเพื่อรับเหตุการณ์ล่าสุด
ในกรณีที่ตารางของคุณมีค่าการค้นหาเกิดขึ้นหลายครั้ง บางครั้งคุณอาจต้องใช้ เพื่อส่งคืน แมตช์สุดท้าย ในการดำเนินการ ให้กำหนดค่าสูตร Xlookup ของคุณเพื่อค้นหาในลำดับย้อนกลับ
ทิศทางของการค้นหาถูกควบคุมเป็นอาร์กิวเมนต์ที่ 6 ชื่อ search_mode :
- 1 หรือละไว้ (ค่าเริ่มต้น) - ค้นหาจากค่าแรกถึงค่าสุดท้าย เช่น จากบนลงล่างด้วยการค้นหาในแนวตั้งหรือจากซ้ายไปขวาด้วยการค้นหาในแนวนอน
- -1 - ค้นหาในลำดับย้อนกลับจากค่าสุดท้ายไปค่าแรก .
ตามตัวอย่าง ลองส่งคืนการขายครั้งล่าสุดที่ทำโดยพนักงานขายรายใดรายหนึ่ง สำหรับสิ่งนี้ เราได้รวบรวมอาร์กิวเมนต์ที่จำเป็นสามรายการแรก (G1 สำหรับ lookup_value , B2:B9 สำหรับ lookup_array และ D2:D9 สำหรับ return_array ) และใส่ - 1 ในอาร์กิวเมนต์ที่ 5:
=XLOOKUP(G1, B2:B9, D2:D9, , ,-1)
ตรงไปตรงมาและง่ายใช่ไหม
XLOOKUP เพื่อคืนค่าหลายคอลัมน์หรือหลายแถว
อีกหนึ่งคุณลักษณะที่น่าทึ่งของ XLOOKUP คือความสามารถในการคืนค่าที่เกี่ยวข้องกับการจับคู่เดียวกันมากกว่าหนึ่งค่า ทั้งหมดเสร็จสิ้นด้วยไวยากรณ์มาตรฐานและไม่มีการดัดแปลงเพิ่มเติมใดๆ!
จากตารางด้านล่าง สมมติว่าคุณต้องการ