Excel Formulas Academy · บทเรียน

ค้นหาค่าที่ตรงกันรายการสุดท้าย

แสดงค่าที่ตรงกันล่าสุดโดยใช้เทคนิคการค้นหาย้อนกลับ

บทเรียน 2 จาก 413 ขั้นตอน

ค้นหาค่าที่ตรงกันรายการสุดท้าย เป็นบทเรียน Excel Formulas Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Excel Formulas Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Excel Formulas Academy มีบทเรียนทั้งหมด 4 บทเรียน

ปัญหาการค้นหารายการสุดท้าย

การค้นหาส่วนใหญ่ส่งคืนรายการที่ตรงกัน รายการแรก แต่บางครั้งคุณต้องการ รายการสุดท้าย เช่น ราคาล่าสุดของสินค้า การอัปเดตสถานะล่าสุด หรือรายการสุดท้ายของลูกค้า

เมื่อรายการเพิ่มขึ้นตามเวลาและคีย์เดียวกันปรากฏหลายครั้ง แถวล่างสุดมักเป็นข้อมูลล่าสุด โดยทั่วไป VLOOKUP หรือ MATCH ที่จับคู่แบบตรงทั้งหมดจะเลือกแถวบนสุดแทน

บทเรียนนี้จะแสดงวิธีที่เชื่อถือได้หลายวิธีในการดึงค่าที่ตรงกัน รายการสุดท้าย

เหตุใด MATCH แบบตรงทั้งหมดจึงพบรายการแรก

MATCH(value, range, 0) จะสแกนจากบนลงล่างและหยุดที่รายการแรกที่ตรงกันทุกประการ หาก "Apple" ปรากฏในแถวที่ 2, 5 และ 9 MATCH จะส่งคืนค่า 2

วิธีนี้เหมาะอย่างยิ่งเมื่อคีย์ไม่ซ้ำกัน แต่จะไม่สนใจแถวที่ใหม่กว่า หากต้องการไปยังรายการที่ปรากฏล่าสุด เราจำเป็นต้องใช้เทคนิคที่ค้นหาจากด้านล่าง หรือส่งคืนตำแหน่งของรายการสุดท้ายที่ตรงกัน

=MATCH("Apple", A2:A10, 0)

XLOOKUP กับการค้นหาย้อนกลับ

หากคุณใช้เอ็กเซลหรือ Google ชีตเวอร์ชันใหม่ XLOOKUP จะช่วยให้ทำได้ง่าย อาร์กิวเมนต์ลำดับที่ห้าและหกใช้ควบคุมโหมดการจับคู่และ ทิศทางการค้นหา

ส่งค่า -1 เป็นอาร์กิวเมนต์โหมดการค้นหาเพื่อค้นหา จากรายการสุดท้ายไปยังรายการแรก จากนั้น XLOOKUP จะส่งคืนค่าที่เชื่อมโยงกับคีย์ที่ตรงกันซึ่งอยู่ล่างสุด

ในตัวอย่างนี้ สูตรจะค้นหาสินค้าใน G1 จากช่วง A2:A10 และส่งคืนราคาที่ตรงกันจาก B2:B10 โดยเริ่มค้นหาจากด้านล่าง

=XLOOKUP(G1, A2:A10, B2:B10, "Not found", 0, -1)

เคล็ดลับ LOOKUP แบบคลาสสิก

ในตารางคำนวณรุ่นเก่า มีเคล็ดลับที่รู้จักกันดีคือใช้ LOOKUP ร่วมกับเลข 2 และการหารด้วยเงื่อนไขอย่างแยบยล

นิพจน์ 1/(A2:A10=G1) จะให้ค่า 1 สำหรับแถวที่ตรงกัน และให้ข้อผิดพลาดจากการหารสำหรับแถวที่ไม่ตรงกัน LOOKUP ที่ค้นหาเลข 2 ซึ่งมากกว่าค่าที่มีอยู่ทั้งหมด จะข้ามข้อผิดพลาดไปและไปหยุดที่ค่า 1 ที่ถูกต้อง รายการสุดท้าย จากนั้นส่งคืนค่าที่ตรงกันจาก B2:B10

=LOOKUP(2, 1/(A2:A10=G1), B2:B10)

เคล็ดลับ LOOKUP ทำงานอย่างไร

ลองพิจารณา 1/(A2:A10=G1) ทีละขั้น:

  • แถวที่คีย์ตรงกันจะให้ค่า 1/TRUE = 1
  • แถวที่ไม่ตรงกันจะให้ค่า 1/FALSE = ข้อผิดพลาด #DIV/0!

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

=LOOKUP(2, 1/(A2:A10=G1), B2:B10)

ค้นหารายการสุดท้ายด้วย INDEX และ MATCH

คุณสามารถใช้ตระกูล INDEX-MATCH ต่อไปได้ แนวคิดคือค้นหา ตำแหน่ง ของรายการสุดท้ายที่ตรงกัน แล้วส่งตำแหน่งนั้นให้ INDEX

ใช้เคล็ดลับการหารแบบเดียวกันภายใน MATCH โดยค้นหาเลข 2 จาก 1/(A2:A10=G1) เพื่อหาตำแหน่งแถวของรายการสุดท้ายที่ตรงกัน จากนั้นส่งตำแหน่งนั้นให้ INDEX ซึ่งทำงานกับคอลัมน์ผลลัพธ์

=INDEX(B2:B10, MATCH(2, 1/(A2:A10=G1)))

เหตุใด MATCH(2, ...) จึงพบรายการสุดท้าย

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

อาร์เรย์ 1/(A2:A10=G1) มีเฉพาะค่า 1 และข้อผิดพลาด ค่าที่มากที่สุดซึ่งไม่เกิน 2 คือ 1 และ MATCH จะส่งคืนตำแหน่งของค่า 1 รายการสุดท้าย ตำแหน่งนั้นตรงกับแถวสุดท้ายที่ตรงกันพอดี

=MATCH(2, 1/(A2:A10=G1))

ตัวอย่างที่เห็นภาพ

สมมติว่า A2:A10 แสดงสถานะคำสั่งซื้อของ "Order-7" ที่บันทึกตามเวลา และ B2:B10 เก็บข้อความสถานะไว้ "Order-7" ปรากฏในแถวที่ 3, 6 และ 9

  • อาร์เรย์การจับคู่จะระบุแถวที่ 3, 6 และ 9 ด้วยค่า 1 และระบุแถวที่เหลือเป็นข้อผิดพลาด
  • MATCH(2, ...) ส่งคืนค่า 9 เป็นตำแหน่ง (นับจากจุดเริ่มต้นของช่วง) ซึ่งเป็นรายการสุดท้ายที่ตรงกัน
  • INDEX ส่งคืนสถานะจากแถวสุดท้ายนั้น ซึ่งเป็นสถานะล่าสุด
=INDEX(B2:B10, MATCH(2, 1/(A2:A10=G1)))

เลือกวิธีที่เหมาะสม

ควรใช้วิธีใด

  • XLOOKUP with -1: สะอาดและอ่านง่ายที่สุด หากแอปของคุณรองรับ
  • LOOKUP(2, 1/...): ใช้ได้เกือบทุกที่ โดยไม่ต้องใช้เวอร์ชันพิเศษ
  • INDEX-MATCH(2, 1/...): มีประโยชน์เมื่อคุณต้องการตำแหน่งด้วย หรือเมื่อต้องการส่งคืนค่าจากคอลัมน์อื่น

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

ข้อผิดพลาดที่พบบ่อย

โปรดระวังประเด็นเหล่านี้:

  • ขนาดช่วงไม่ตรงกัน: ช่วงเงื่อนไขและช่วงผลลัพธ์ต้องมีความสูงเท่ากัน มิฉะนั้นแถวจะไม่ตรงกัน
  • ค่าซ้ำที่มองไม่เห็น: ช่องว่างท้ายข้อความอาจทำให้ "Apple " แตกต่างจาก "Apple" โปรดล้างข้อความก่อนด้วย TRIM
  • ไม่มีรายการที่ตรงกันเลย: เคล็ดลับนี้จะส่งคืนข้อผิดพลาดหากไม่มีรายการตรงกัน ให้ครอบด้วย IFERROR เพื่อแสดงผลสำรองที่เข้าใจง่าย
=IFERROR(LOOKUP(2, 1/(A2:A10=G1), B2:B10), "Not found")

ค้นหารายการสุดท้ายด้วยหลายเงื่อนไข

คุณสามารถใช้เคล็ดลับการค้นหารายการสุดท้ายร่วมกับสองเงื่อนไขได้ ให้คูณการทดสอบเงื่อนไขภายในการหาร เพื่อให้เฉพาะแถวที่ตรงกับคีย์ทั้งสองรายการให้ค่าเป็น 1

ตัวอย่างเช่น ค้นหาราคาล่าสุดที่สินค้าตรงกับ G1 และภูมิภาคตรงกับ G2 เคล็ดลับ LOOKUP(2, ...) ยังคงไปหยุดที่แถวสุดท้ายที่ตรงตามเงื่อนไข

วิธีนี้มีประโยชน์สำหรับบันทึกที่ประทับเวลา ซึ่งสินค้าชนิดเดียวกันปรากฏในหลายภูมิภาค

=LOOKUP(2, 1/((A2:A10=G1)*(B2:B10=G2)), C2:C10)

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ตรวจสอบความเข้าใจเกี่ยวกับการค้นหารายการสุดท้าย

สรุปบทเรียน

หากต้องการส่งคืนค่าที่ตรงกัน รายการสุดท้าย แทนรายการแรก:

  • ใช้ XLOOKUP(..., -1) เพื่อค้นหาจากล่างขึ้นบนเมื่อมีฟังก์ชันนี้ให้ใช้
  • ใช้เคล็ดลับคลาสสิก LOOKUP(2, 1/(range=key), result) ได้กับทุกเวอร์ชัน
  • ใช้ INDEX(result, MATCH(2, 1/(range=key))) เมื่อต้องการตำแหน่งด้วย

อย่าลืมให้ช่วงข้อมูลมีขนาดเท่ากัน ล้างช่องว่างส่วนเกิน และครอบสูตรด้วย IFERROR เพื่อความปลอดภัย

=XLOOKUP(G1, A2:A10, B2:B10, "Not found", 0, -1)
เริ่มต้นได้ฟรี

เรียนรู้ Excel ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
30
บทเรียน
120

คำถามที่พบบ่อย

บทเรียน “ค้นหาค่าที่ตรงกันรายการสุดท้าย” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ค้นหาค่าที่ตรงกันรายการสุดท้าย” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Excel Formulas Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Excel Formulas Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ค้นหาค่าที่ตรงกันรายการสุดท้าย”

แสดงค่าที่ตรงกันล่าสุดโดยใช้เทคนิคการค้นหาย้อนกลับ คุณปฏิบัติ Excel Formulas Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Excel Formulas Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Excel Formulas Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “ค้นหาค่าที่ตรงกันรายการสุดท้าย” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Excel Formulas Academy นี้ได้ไหม

ได้ บทเรียน Excel Formulas Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ค้นหาแบบสองทางด้วย INDEX-MATCH-MATCH
  2. ค้นหาค่าที่ตรงกันรายการสุดท้าย
  3. ค้นหาหลายเงื่อนไขด้วย INDEX-MATCH
  4. การจับคู่โดยประมาณสำหรับตารางแบ่งระดับ
← กลับไปที่ Excel Formulas Academy