ฟังก์ชัน Excel LOOKUP พร้อมตัวอย่างสูตร

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

สารบัญ

บทช่วยสอนจะอธิบายรูปแบบเวกเตอร์และอาร์เรย์ของฟังก์ชัน Excel LOOKUP และสาธิตการใช้ LOOKUP ใน Excel แบบปกติและไม่สำคัญพร้อมตัวอย่างสูตร

หนึ่งในคำถามที่พบบ่อยที่สุด ที่ผู้ใช้ Excel ทุกคนถามเป็นครั้งคราวคือ: " ฉันจะค้นหาค่าในแผ่นงานหนึ่งและดึงค่าที่ตรงกันไปยังแผ่นงานอื่นได้อย่างไร " แน่นอน สถานการณ์พื้นฐานอาจมีหลายรูปแบบ: คุณอาจกำลังมองหาการจับคู่ที่ใกล้เคียงที่สุดมากกว่าการจับคู่แบบตรงทั้งหมด คุณอาจต้องการค้นหาในแนวตั้งในคอลัมน์หรือแนวนอนในแถว ประเมินเกณฑ์หนึ่งหรือหลายเกณฑ์ ฯลฯ อย่างไรก็ตาม สาระสำคัญก็เหมือนกัน คุณต้องรู้วิธีการค้นหาใน Excel

Microsoft Excel มีวิธีต่างๆ มากมายในการค้นหา ในการเริ่มต้น เรามาเรียนรู้ฟังก์ชันที่ออกแบบมาเพื่อจัดการกับกรณีที่ง่ายที่สุดของการค้นหาในแนวตั้งและแนวนอน อย่างที่คุณเดาได้ง่ายๆ ฉันกำลังพูดถึงฟังก์ชัน LOOKUP

    ฟังก์ชัน LOOKUP ของ Excel - ไวยากรณ์และการใช้งาน

    ในระดับพื้นฐานที่สุด ฟังก์ชัน LOOKUP ใน Excel ค้นหาค่าในหนึ่งคอลัมน์หรือหนึ่งแถวและส่งกลับค่าที่ตรงกันจากตำแหน่งเดียวกันในคอลัมน์หรือแถวอื่น

    การค้นหาใน Excel มีอยู่สองรูปแบบ: เวกเตอร์ และ อาร์เรย์ . มีการอธิบายแต่ละรูปแบบแยกกันด้านล่าง

    ฟังก์ชัน Excel LOOKUP - แบบฟอร์มเวกเตอร์

    ในบริบทนี้ เวกเตอร์ หมายถึงช่วงหนึ่งคอลัมน์หรือหนึ่งแถวสูตรทำงาน:

    =LOOKUP(VLOOKUP(E2, $A$2:$C$7, 3, FALSE), {"c";"d";"t"}, {"Completed";"Development";"Testing"})

    ดังที่แสดงในภาพหน้าจอด้านล่าง สูตรดึงสถานะโครงการจากตารางค้นหาและแทนที่คำย่อด้วยคำที่เกี่ยวข้อง:

    เคล็ดลับ หากคุณใช้ Excel 2016 เป็นส่วนหนึ่งของการสมัครใช้งาน Office 365 คุณสามารถใช้ฟังก์ชัน SWITCH เพื่อวัตถุประสงค์ที่คล้ายคลึงกันได้

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

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

    ไวยากรณ์ของการค้นหาเวกเตอร์คือ ดังนี้:

    LOOKUP(lookup_value, lookup_vector, [result_vector])

    ที่ไหน:

    • Lookup_value (จำเป็น) - ค่าที่จะค้นหา อาจเป็นตัวเลข ข้อความ ค่าตรรกะของ TRUE หรือ FALSE หรือการอ้างอิงไปยังเซลล์ที่มีค่าการค้นหา
    • Lookup_vector (จำเป็น) - หนึ่งแถวหรือหนึ่งคอลัมน์ ช่วงที่ต้องการค้นหา จะต้องจัดเรียงใน จากน้อยไปหามาก .
    • Result_vector (ไม่บังคับ) - ช่วงหนึ่งแถวหรือหนึ่งคอลัมน์ที่คุณต้องการส่งคืนผลลัพธ์ - ค่า ในตำแหน่งเดียวกับค่าการค้นหา Result_vector ต้องเป็น ขนาดเดียวกัน เป็น lookup_range หากละเว้น ผลลัพธ์จะถูกส่งกลับจาก lookup_vector .

    ตัวอย่างต่อไปนี้แสดงให้เห็นถึงการทำงานของสูตรการค้นหาแบบง่ายสองสูตร

    สูตรการค้นหาแนวตั้ง - ค้นหาในหนึ่ง- ช่วงคอลัมน์

    สมมติว่าคุณมีรายชื่อผู้ขายในคอลัมน์ D (D2:D5) และผลิตภัณฑ์ที่ขายในคอลัมน์ E (E2:E5) คุณกำลังสร้างแดชบอร์ดที่ผู้ใช้ของคุณจะป้อนชื่อผู้ขายใน B2 และคุณต้องการสูตรที่จะดึงผลิตภัณฑ์ที่เกี่ยวข้องใน B3 สามารถทำงานให้สำเร็จได้อย่างง่ายดายด้วยสูตรนี้:

    =LOOKUP(B2,D2:D5,E2:E5)

    เพื่อทำความเข้าใจเกี่ยวกับข้อโต้แย้ง โปรดดูภาพหน้าจอนี้:

    สูตรการค้นหาแนวนอน - ค้นหาในช่วงหนึ่งแถว

    หากแหล่งข้อมูลของคุณมีเค้าโครงแนวนอน เช่น รายการอยู่ในแถวแทนที่จะเป็นคอลัมน์ จากนั้นระบุช่วงหนึ่งแถวในอาร์กิวเมนต์ lookup_vector และ result_vector เช่นนี้:

    =LOOKUP(B2,E1:H1,E2:H2)

    ในส่วนที่สองของบทช่วยสอนนี้ คุณจะพบตัวอย่างการค้นหาของ Excel อีกสองสามตัวอย่างที่ช่วยแก้ปัญหาที่ซับซ้อนมากขึ้น ในระหว่างนี้ โปรดจำข้อเท็จจริงง่ายๆ ต่อไปนี้ซึ่งจะช่วยให้คุณข้ามข้อผิดพลาดที่อาจเกิดขึ้นได้และป้องกันข้อผิดพลาดทั่วไป

    5 สิ่งที่คุณควรทราบเกี่ยวกับรูปแบบเวกเตอร์ของ Excel LOOKUP

    1. ค่าใน lookup_vector ควรจัดเรียงใน จากน้อยไปมาก เช่น จากน้อยไปมาก หรือจาก A ถึง Z มิฉะนั้น สูตรการค้นหา Excel ของคุณอาจส่งกลับข้อผิดพลาดหรือผลลัพธ์ที่ไม่ถูกต้อง หากคุณต้องการค้นหา ข้อมูลที่ไม่เรียงลำดับ ให้ใช้ INDEX MATCH หรือ OFFSET MATCH อย่างใดอย่างหนึ่ง
    2. Lookup_vector และ result_vector ต้องเป็น หนึ่งแถว หรือ หนึ่งคอลัมน์ ช่วงที่มีขนาดเท่ากัน
    3. ฟังก์ชัน LOOKUP ใน Excel ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ จึงไม่แยกความแตกต่าง ข้อความตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก
    4. Excel LOOKUP ทำงานตาม การจับคู่โดยประมาณ อย่างแม่นยำยิ่งขึ้น สูตรการค้นหาจะค้นหาการจับคู่แบบตรงทั้งหมดก่อน หากไม่สามารถหาค่าที่ต้องการค้นหาได้ ให้ค้นหา ค่าที่เล็กที่สุดถัดไปค่า เช่น ค่าที่ใหญ่ที่สุดใน lookup_vector ที่น้อยกว่าหรือเท่ากับ lookup_value

      ตัวอย่างเช่น หากค่าการค้นหาของคุณคือ "5" สูตรจะค้นหาก่อน หากไม่พบ "5" ก็จะค้นหา "4" ถ้าไม่พบ "4" ก็จะค้นหา "3" ไปเรื่อยๆ

    5. ถ้า lookup_value คือ เล็กกว่า กว่าค่าที่น้อยที่สุดใน lookup_vector Excel LOOKUP จะส่งกลับข้อผิดพลาด #N/A

    ฟังก์ชัน Excel LOOKUP - รูปแบบอาร์เรย์

    รูปแบบอาร์เรย์ของฟังก์ชัน LOOKUP จะค้นหาค่าที่ระบุใน คอลัมน์หรือแถวแรกของอาร์เรย์ และดึงค่าจากตำแหน่งเดียวกันในคอลัมน์หรือแถวสุดท้ายของอาร์เรย์

    การค้นหาอาร์เรย์มีอาร์กิวเมนต์ 2 อาร์กิวเมนต์ ซึ่งจำเป็นต้องมีทั้งสองอาร์กิวเมนต์:

    LOOKUP( lookup_value, array)

    ที่ไหน:

    • Lookup_value - ค่าที่จะค้นหาในอาร์เรย์
    • อาร์เรย์ - a ช่วงของเซลล์ที่คุณต้องการค้นหาค่าการค้นหา ค่าในคอลัมน์หรือแถวแรกของอาร์เรย์ (ขึ้นอยู่กับว่าคุณใช้ V-lookup หรือ H-lookup) จะต้องเรียงลำดับจากน้อยไปหามาก อักขระตัวพิมพ์ใหญ่และตัวพิมพ์เล็กจะถือว่าเท่ากัน

    ตัวอย่างเช่น มีชื่อผู้ขายอยู่ในคอลัมน์แรกของอาร์เรย์ (คอลัมน์ A) และวันที่สั่งซื้อในคอลัมน์สุดท้ายของอาร์เรย์ (คอลัมน์ C) คุณสามารถใช้สูตรต่อไปนี้เพื่อค้นหาชื่อและดึงวันที่ที่ตรงกัน:

    =LOOKUP(B2,D2:F5)

    หมายเหตุ รูปแบบอาร์เรย์ของฟังก์ชัน Excel LOOKUP ไม่ควรสับสนกับสูตรอาร์เรย์ของ Excel แม้ว่า LOOKUP จะทำงานบนอาร์เรย์ แต่ LOOKUP ก็ยังคงเป็นสูตรปกติ ซึ่งเสร็จสิ้นด้วยวิธีปกติโดยการกดปุ่ม Enter

    4 สิ่งที่คุณควรทราบเกี่ยวกับรูปแบบอาร์เรย์ของ Excel LOOKUP

    1. หาก อาร์เรย์ มี แถวมากกว่าคอลัมน์ หรือจำนวนคอลัมน์และแถวเท่ากัน สูตรการค้นหาจะค้นหาในคอลัมน์แรก (การค้นหาในแนวนอน)
    2. ถ้า อาร์เรย์ มี คอลัมน์มากกว่าแถว Excel LOOKUP จะค้นหาในแถวแรก (การค้นหาในแนวตั้ง ).
    3. ถ้าสูตรไม่พบค่าการค้นหา สูตรจะใช้ ค่าที่ใหญ่ที่สุด ในอาร์เรย์ที่น้อยกว่าหรือเท่ากับ lookup_value .
    4. ถ้า ค่าการค้นหามีค่าน้อยกว่า กว่าค่าที่น้อยที่สุดในคอลัมน์หรือแถวแรกของอาร์เรย์ (ขึ้นอยู่กับขนาดอาร์เรย์) สูตรการค้นหาจะส่งกลับข้อผิดพลาด #N/A<11

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

    วิธีใช้ฟังก์ชัน LOOKUP ใน Excel - ตัวอย่างสูตร

    แม้ว่าจะมีอยู่ ฟังก์ชันที่มีประสิทธิภาพมากขึ้นเพื่อค้นหาและจับคู่ใน Excel (ซึ่งเป็นหัวข้อของบทช่วยสอนถัดไปของเรา) LOOKUP มีประโยชน์ในหลาย ๆ สถานการณ์ และตัวอย่างต่อไปนี้แสดงให้เห็นถึงการใช้งานที่ไม่สำคัญสองสามอย่าง โปรดทราบว่าสูตรด้านล่างทั้งหมดใช้รูปแบบเวกเตอร์ของ Excel LOOKUP

    ค้นหาค่าในเซลล์ที่ไม่ว่างเซลล์สุดท้ายในคอลัมน์

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

    LOOKUP(2, 1/( column ""), column )

    ในสูตรข้างต้น อาร์กิวเมนต์ทั้งหมดยกเว้น การอ้างอิงคอลัมน์เป็นค่าคงที่ ดังนั้น ในการดึงค่าสุดท้ายในคอลัมน์ใดคอลัมน์หนึ่ง คุณเพียงแค่ระบุการอ้างอิงคอลัมน์ที่เกี่ยวข้อง ตัวอย่างเช่น หากต้องการแยกค่าของเซลล์ที่ไม่ว่างเซลล์สุดท้ายในคอลัมน์ A ให้ใช้สูตรนี้:

    =LOOKUP(2, 1/(A:A""), A:A)

    หากต้องการรับค่าสุดท้ายจากคอลัมน์อื่น ให้แก้ไขการอ้างอิงคอลัมน์ตามที่แสดง ในภาพหน้าจอด้านล่าง - การอ้างอิงแรกคือคอลัมน์ที่จะตรวจสอบสำหรับเซลล์ว่าง/ไม่ว่าง และการอ้างอิงที่สองคือคอลัมน์ที่จะส่งคืนค่าจาก:

    How สูตรนี้ใช้งานได้

    ในอาร์กิวเมนต์ lookup_value คุณระบุ 2 หรือจำนวนอื่นๆ ที่มากกว่า 1 (ในอีกสักครู่ คุณจะเข้าใจว่าทำไม)

    ใน lookup_vector อาร์กิวเมนต์ คุณใส่นิพจน์นี้: 1/(A:A"")

    • ก่อนอื่น คุณดำเนินการทางตรรกะ A:A"" ที่เปรียบเทียบแต่ละเซลล์ในคอลัมน์ A ด้วยสตริงว่างและส่งกลับ TRUE สำหรับเซลล์ว่างและ FALSE สำหรับเซลล์ที่ไม่ว่าง ในตัวอย่างข้างต้น สูตรใน F2 ส่งคืนอาร์เรย์นี้: {TRUE;TRUE;TRUE;TRUE;FALSE...}
    • จากนั้น ให้คุณหารเลข 1 ด้วยแต่ละองค์ประกอบของอาร์เรย์ด้านบน ด้วย TRUE เท่ากับ 1 และ FALSE เท่ากับ 0 คุณจะได้อาร์เรย์ใหม่ที่ประกอบด้วย 1 และ #DIV/0! ข้อผิดพลาด (ผลลัพธ์ของการหารด้วย 0) และอาร์เรย์นี้ใช้เป็น lookup_vector ในตัวอย่างนี้ มันคือ {1;1;1;1;#DIV/0!...}

    ทีนี้ สูตรส่งคืนค่าสุดท้ายที่ไม่ว่างเปล่าในคอลัมน์ เนื่องจาก lookup_value ไม่ตรงกับองค์ประกอบใด ๆ ของ lookup_vector ? กุญแจสำคัญในการทำความเข้าใจตรรกะคือ Excel LOOKUP จะค้นหาด้วยการจับคู่โดยประมาณ เช่น เมื่อไม่พบค่าการค้นหาที่แน่นอน มันจะจับคู่ค่าที่มากที่สุดถัดไปใน lookup_vector ที่น้อยกว่า lookup_value . ในกรณีของเรา lookup_value คือ 2 และค่าที่ใหญ่ที่สุดใน lookup_vector คือ 1 ดังนั้น LOOKUP จึงตรงกับ 1 สุดท้ายในอาร์เรย์ ซึ่งเป็นเซลล์สุดท้ายที่ไม่ว่างเปล่า!

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

    เคล็ดลับ. หากคุณต้องการรับ หมายเลขของแถว ที่มีค่าสุดท้าย ให้ใช้ฟังก์ชัน ROW เพื่อดึงข้อมูล ตัวอย่างเช่น: =LOOKUP(2,1/(A:A""),ROW(A:A))

    ค้นหาค่าในเซลล์สุดท้ายที่ไม่ว่างในแถว

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

    LOOKUP(2, 1/( row ""), row )

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

    ตัวอย่างเช่น เมื่อต้องการรับค่าของค่าสุดท้าย เซลล์ที่ไม่ว่างในแถวที่ 1 ใช้สูตรนี้:

    =LOOKUP(2, 1/(1:1""), 1:1)

    ภาพหน้าจอต่อไปนี้แสดงผลลัพธ์:

    รับค่า เชื่อมโยงกับรายการสุดท้ายในแถว

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

    สมมติว่าคุณมีตารางสรุปโดยที่คอลัมน์ A มีชื่อผู้ขาย และคอลัมน์ต่อมามีข้อมูลบางประเภทในแต่ละเดือน ในตัวอย่างนี้ เซลล์ประกอบด้วย "ใช่" หากผู้ขายหนึ่งรายปิดดีลอย่างน้อยหนึ่งรายการในเดือนที่กำหนด เป้าหมายของเราคือการได้รับหนึ่งเดือนที่เกี่ยวข้องกับรายการล่าสุดที่ "ใช่" ในแถว

    งานสามารถแก้ไขได้โดยใช้สูตรการค้นหาต่อไปนี้:

    =LOOKUP(2, 1/(B2:H2="yes"), $B$1:$H$1)

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

    ภาพหน้าจอต่อไปนี้แสดงผลลัพธ์:

    ค้นหาทางเลือกแทน IF ที่ซ้อนกัน<18

    ในสูตรการค้นหาทั้งหมดที่เราพูดถึงจนถึงตอนนี้ อาร์กิวเมนต์ lookup_vector และ result_vector ถูกแทนด้วยการอ้างอิงช่วง อย่างไรก็ตาม ไวยากรณ์ของฟังก์ชัน Excel LOOKUP อนุญาตให้ จัดหาเวกเตอร์ในรูปแบบของค่าคงที่อาร์เรย์แนวตั้ง ซึ่งช่วยให้คุณสามารถจำลองการทำงานของ IF ที่ซ้อนกันได้ด้วยสูตรที่กะทัดรัดและอ่านง่ายยิ่งขึ้น

    สมมติว่าคุณมีรายการตัวย่อใน คอลัมน์ A และคุณต้องการแทนที่ด้วยชื่อเต็ม โดยที่ "C" หมายถึง "เสร็จสมบูรณ์" "D" คือ "การพัฒนา และ "T" คือ "การทดสอบ" งานสามารถทำได้โดยใช้ฟังก์ชัน IF ที่ซ้อนกันต่อไปนี้:

    =IF(A2="c", "Completed", IF(A2="d", "Development", IF(A2="t", "Testing", "")))

    หรือโดยใช้สูตรการค้นหานี้:

    =LOOKUP(A2, {"c";"d";"t"}, {"Completed";"Development";"Testing"})

    ตามที่แสดงใน ภาพหน้าจอด้านล่าง ทั้งสองสูตรให้ผลลัพธ์ที่เหมือนกัน:

    หมายเหตุ เพื่อให้สูตรการค้นหาใน Excel ทำงานได้อย่างถูกต้อง ค่าใน lookup_array ควรเรียงลำดับจาก A ถึง Z หรือจากน้อยไปมาก

    หากคุณกำลังดึงค่าจากตารางการค้นหา คุณสามารถฝังฟังก์ชัน Vlookup ในอาร์กิวเมนต์ lookup_value เพื่อเรียกข้อมูลที่ตรงกัน

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

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