ฟังก์ชัน VLOOKUP

นำไปใช้กับ
Excel for Microsoft 365 Excel for Microsoft 365 for Mac Excel 2024 Excel 2024 for Mac Excel 2021 Excel 2021 for Mac Excel 2019 Excel 2016

เคล็ดลับ

ลองใช้ฟังก์ชัน XLOOKUP ใหม่ ซึ่งเป็นเวอร์ชันที่ได้รับการปรับปรุงของ VLOOKUP ที่ทำงานในทุกทิศทางและส่งกลับรายการที่ตรงกันตามค่าเริ่มต้น ทำให้ใช้งานง่ายและสะดวกมากกว่ารุ่นก่อน

ใช้ VLOOKUP เมื่อคุณต้องการค้นหาบางอย่างในตารางหรือช่วงตามแถว ตัวอย่างเช่น หาราคาของชิ้นส่วนอะไหล่รถยนต์ตามหมายเลขชิ้นส่วน หรือค้นหาชื่อพนักงานตาม ID พนักงานของพวกเขา

ในรูปแบบที่ง่ายที่สุด ฟังก์ชัน VLOOKUP จะระบุว่า:

=VLOOKUP(สิ่งที่คุณต้องการค้นหา ตําแหน่งที่คุณต้องการค้นหา หมายเลขคอลัมน์ในช่วงที่มีค่าที่จะส่งกลับ ส่งกลับค่าที่ตรงกันโดยประมาณหรือค่าที่ตรงกันพอดี – ระบุว่าเป็น 1/TRUE หรือ 0/FALSE)

เคล็ดลับ

  • ความลับของ VLOOKUP คือการจัดระเบียบข้อมูลของคุณ เพื่อให้ค่าที่คุณค้นหา (ผลไม้) อยู่ทางด้านซ้ายของค่าที่ส่งกลับ (จำนวน) ที่คุณต้องการค้นหา
  • ถ้าคุณเป็นสมาชิก Microsoft Copilot Copilot สามารถทําให้การแทรกและใช้ฟังก์ชัน VLookup หรือ XLookup ง่ายยิ่งขึ้น ดู รับข้อมูลเชิงลึกด้วย Copilot ใน Excel

รายละเอียดด้านเทคนิค

ใช้ฟังก์ชัน VLOOKUP เพื่อหาค่าในตาราง

ไวยากรณ์

VLOOKUP (lookup_value, table_array, col_index_num, [range_lookup])

ตัวอย่างเช่น

  • =VLOOKUP(A2,A10:C20,2,TRUE)
  • =VLOOKUP("กิจจาการ",B2:E7,2,FALSE)
  • =VLOOKUP(A2,'รายละเอียดลูกค้า'! A:F,3,FALSE)
ชื่ออาร์กิวเมนต์ คำอธิบาย
lookup_value (จำเป็น) ค่าที่คุณต้องการค้นหา ค่าที่คุณต้องการค้นหาต้องอยู่ในคอลัมน์แรกของช่วงของเซลล์ที่คุณระบุในอาร์กิวเมนต์ table_array
ตัวอย่างเช่น ถ้า อาร์เรย์ table-array ครอบคลุมเซลล์ B2:D7 lookup_value ของคุณจะต้องอยู่ในคอลัมน์ B
Lookup_value อาจเป็นค่าหรือการอ้างอิงไปยังเซลล์ก็ได้
table_array (จำเป็น) ช่วงของเซลล์ที่ VLOOKUP จะค้นหา lookup_value และส่งกลับค่า คุณสามารถใช้ช่วงที่มีชื่อหรือตาราง และคุณสามารถใช้ชื่อในอาร์กิวเมนต์แทนการอ้างอิงเซลล์ได้
คอลัมน์แรกในช่วงของเซลล์ต้องมี lookup_value นอกจากนี้ช่วงของเซลล์ยังต้องการรวมค่าที่ส่งกลับที่คุณต้องการค้นหา
col_index_num (จำเป็น) หมายเลขคอลัมน์ (เริ่มด้วย 1 สําหรับคอลัมน์ซ้ายสุดของ table_array) ที่มีค่าส่งกลับ
range_lookup (มีหรือไม่มีก็ได้) ค่าตรรกะที่ระบุว่าคุณต้องการให้ VLOOKUP ค้นหาค่าที่ตรงกันโดยประมาณหรือค่าที่ตรงกันพอดี:
  • ค่าที่ตรงกันโดยประมาณ - 1/TRUE ถือว่าคอลัมน์แรกในตารางถูกเรียงลําดับตามตัวเลขหรือตามตัวอักษร จากนั้นจะค้นหาค่าที่ใกล้เคียงที่สุด นี่คือวิธีการเริ่มต้น ถ้าคุณไม่ได้ระบุวิธีการใดไว้ ตัวอย่างเช่น =VLOOKUP(90,A1:B100,2,TRUE)
  • ค่าที่ตรงกันพอดี - 0/FALSE จะค้นหาค่าที่ตรงกันในคอลัมน์แรก ตัวอย่างเช่น =VLOOKUP("Smith",A1:B100,2,FALSE)

เริ่มต้นอย่างไร

มีข้อมูลสี่อย่างที่คุณจำเป็นต้องมีเพื่อที่จะสร้างไวยากรณ์ VLOOKUP:

  1. ค่าที่คุณต้องการค้นหา หรือที่เรียกว่าค่าการค้นหา
  2. ช่วงที่มีค่าการค้นหาอยู่ โปรดทราบว่าค่าการค้นหาควรอยู่ในคอลัมน์แรกในช่วง เพื่อให้ VLOOKUP สามารถทํางานได้อย่างถูกต้อง ตัวอย่างเช่น ถ้าค่าการค้นหาของคุณอยู่ในเซลล์ C2 ช่วงของคุณควรเริ่มด้วย C
  3. หมายเลขคอลัมน์ในช่วงที่มีค่าส่งกลับ ตัวอย่างเช่น ถ้าคุณระบุ B2:D11 เป็นช่วง คุณควรนับ B เป็นคอลัมน์แรก C เป็นคอลัมน์ที่สอง และต่อๆ ไป
  4. นอกจากนี้ คุณยังสามารถระบุ TRUE ถ้าคุณต้องการค่าที่ตรงกันโดยประมาณ หรือระบุ FALSE ถ้าคุณต้องการค่าที่ตรงกันพอดีของค่าที่ส่งกลับ ถ้าคุณไม่ได้ระบุอะไร ค่าเริ่มต้นจะเป็น TRUE หรือ Approximate Match เสมอ

ในตอนนี้ ให้นำค่าทั้งหมดทางด้านบนมารวมกันตามตัวอย่างทางด้านล่าง:

=VLOOKUP(ค่าการค้นหา, ช่วงที่มีค่าการค้นหา, หมายเลขคอลัมน์ในช่วงที่มีค่าส่งกลับ, ค่าที่ตรงกันโดยประมาณ (TRUE) หรือค่าที่ตรงกันพอดี (FALSE))

ตัวอย่าง

ต่อไปนี้เป็นตัวอย่างเล็กน้อยของฟังก์ชัน VLOOKUP:

ตัวอย่าง 1

=VLOOKUP (B3,B2:E7,2,FALSE) VLOOKUP จะค้นหาฟอนต์ทานาในคอลัมน์แรก (คอลัมน์ B) ใน table_array B2:E7 และส่งกลับ Olivier จากคอลัมน์ที่สอง (คอลัมน์ C) ของ table_array False ส่งกลับค่าที่ตรงกันทุกประการ

ตัวอย่าง 2

=VLOOKUP (102,A2:C7,2,FALSE) VLOOKUP จะค้นหาค่าที่ตรงกันพอดี (FALSE) ของนามสกุลสําหรับ 102 (lookup_value) ในคอลัมน์ที่สอง (คอลัมน์ B) ในช่วง A2:C7 และส่งกลับ Fontana

ตัวอย่าง 3

=IF(VLOOKUP(103,A1:E7,2,FALSE)=Souse,Located,Not found) IF จะตรวจสอบว่า VLOOKUP ส่งกลับ Sousa เป็นนามสกุลของพนักงานที่สัมพันธ์กับ 103 (lookup_value) ใน A1:E7 (table_array) หรือไม่ เนื่องจากนามสกุลที่สอดคล้องกับ 103 คือ Leal เงื่อนไข IF จะเป็นเท็จ และไม่พบจะแสดงขึ้น

ตัวอย่าง 4

=INT(YEARFRAC(DATE(2014,6,30),VLOOKUP(105,A2:E7,5,FLASE),1)) VLOOKUP จะค้นหาวันเกิดของพนักงานที่สอดคล้องกับ 109 (lookup_value) ในช่วง A2:E7 (table_array) และส่งกลับ 03/04/1955 จากนั้น YEARFRAC ลบวันเกิดนี้จาก 2014/6/30 แล้วส่งกลับค่าซึ่งจะถูกแปลงโดย INY เป็นจํานวนเต็ม 59

ตัวอย่าง 5

IF(ISNA(VLOOKUP(105,A2:E7,2,FLASE))=TRUE,ไม่พบพนักงาน,VLOOKUP(105,A2:E7,2,FALSE)) IF จะตรวจสอบว่า VLOOKUP ส่งกลับค่าสําหรับนามสกุลจากคอลัมน์ B สําหรับ 105 (lookup_value) หรือไม่ ถ้า VLOOKUP พบนามสกุล IF จะแสดงนามสกุล มิฉะนั้น IF จะส่งกลับ ไม่พบพนักงาน ISNA จะตรวจสอบให้แน่ใจว่าถ้า VLOOKUP ส่งกลับ #N/A ข้อผิดพลาดจะถูกแทนที่ด้วยไม่พบพนักงาน แทนที่จะเป็น #N/A ในตัวอย่างนี้ ค่าที่ส่งกลับคือ เบิร์ก ซึ่งเป็นนามสกุลที่สอดคล้องกับ 105

ปัญหาทั่วไป

ปัญหา สิ่งที่ผิดพลาด
ค่าที่ส่งกลับไม่ถูกต้อง ถ้า range_lookup เป็น TRUE หรือไม่ได้เรียงลําดับคอลัมน์แรกตามตัวอักษรหรือตัวเลข ถ้าคอลัมน์แรกยังไม่ได้เรียงลําดับ ค่าที่ส่งกลับอาจเป็นค่าที่คุณไม่คาดคิด เรียงลําดับคอลัมน์แรก หรือใช้ FALSE สําหรับค่าที่ตรงกัน
#N/A ในเซลล์
  • ถ้า range_lookup เป็น TRUE ถ้าค่าใน lookup_value น้อยกว่าค่าที่น้อยที่สุดในคอลัมน์แรกของ table_array คุณจะได้รับค่าความผิดพลาด #N/A
  • ถ้า range_lookup เป็น FALSE ค่าความผิดพลาด #N/A จะระบุว่าไม่พบตัวเลขที่แน่นอน
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการแก้ไขข้อผิดพลาด #N/A ใน VLOOKUP ให้ดู วิธีแก้ไขข้อผิดพลาด #N/A ในฟังก์ชัน VLOOKUP
#REF! ในเซลล์ ถ้า col_index_num มากกว่าจํานวนคอลัมน์ใน table-array คุณจะได้รับ #REF! เป็นค่าความผิดพลาด
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการแก้ไข #REF! ใน VLOOKUP ให้ดูวิธีแก้ไขข้อผิดพลาด #REF!
#VALUE! ในเซลล์ ถ้า table_array น้อยกว่า 1 คุณจะได้รับ #VALUE! เป็นค่าความผิดพลาด
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการแก้ไข #VALUE! ใน VLOOKUP ให้ดู วิธีแก้ไขข้อผิดพลาด #VALUE! ในฟังก์ชัน VLOOKUP
#NAME? ในเซลล์ #NAME? ค่าความผิดพลาดมักจะหมายความว่าสูตรไม่มีเครื่องหมายอัญประกาศ เมื่อต้องการค้นหาชื่อของบุคคล ให้ตรวจสอบให้แน่ใจว่าคุณใช้เครื่องหมายอัญประกาศรอบชื่อในสูตร ตัวอย่างเช่น ป้อนชื่อเป็น "ฟอนต์ตานา" ใน =VLOOKUP("ฟอนต์นา",B2:E7,2,FALSE)
สำหรับข้อมูลเพิ่มเติม ให้ดู วิธีแก้ไขข้อผิดพลาด #NAME!
ข้อผิดพลาด #SPILL! ในเซลล์ ข้อผิดพลาด #SPILL! นี้โดยทั่วไปหมายความว่าสูตรของคุณอาศัยอินเทอร์เซกชันโดยนัยสําหรับค่าการค้นหา และใช้ทั้งคอลัมน์เป็นการอ้างอิง ตัวอย่างเช่น =VLOOKUP( A:A,A:C,2,FALSE) คุณสามารถแก้ไขปัญหาได้โดยการยึดการอ้างอิงการค้นหาด้วยตัวดําเนินการ @ ดังนี้: =VLOOKUP(@A:A,A:C,2,FALSE) อีกวิธีหนึ่งคือ คุณสามารถใช้วิธี VLOOKUP แบบดั้งเดิมและอ้างอิงไปยังเซลล์เดียวแทนที่จะอ้างอิงทั้งคอลัมน์: =VLOOKUP(A2,A:C,2,FALSE)

หลักปฏิบัติที่ดีที่สุด

ให้ทำสิ่งนี้ สาเหตุ
ใช้การอ้างอิงแบบสัมบูรณ์สําหรับ range_lookup การใช้การอ้างอิงแบบสัมบูรณ์นั้นจะช่วยคุณกรอกสูตร ดังนั้นสูตรจะค้นหาช่วงการค้นหาเดียวกันเสมอ
เรียนรู้วิธีใช้การอ้างอิงเซลล์แบบสัมบูรณ์
ไม่ได้จัดเก็บตัวเลขหรือค่าวันที่เป็นข้อความ เมื่อค้นหาค่าตัวเลขหรือวันที่ ให้ตรวจสอบให้แน่ใจว่าข้อมูลในคอลัมน์แรกของ table_array ไม่ได้ถูกจัดเก็บเป็นค่าข้อความ มิฉะนั้น VLOOKUP อาจส่งกลับค่าที่ไม่ถูกต้องหรือไม่คาดคิด
เรียงลำดับคอลัมน์แรก เรียงลําดับคอลัมน์แรกของ table_array ก่อนที่จะใช้ VLOOKUP เมื่อ range_lookup เป็น TRUE
ใช้อักขระตัวแทน ถ้า range_lookup เป็น FALSE และ lookup_value เป็นข้อความ คุณสามารถใช้อักขระตัวแทน ซึ่งเป็นเครื่องหมายคําถาม (?) และเครื่องหมายดอกจัน (*) ใน lookup_value ได้ เครื่องหมายคําถามตรงกับอักขระตัวเดียว เครื่องหมายดอกจันใช้แทนอักขระหลายตัวติดกัน ถ้าคุณต้องการค้นหาเครื่องหมายคําถามหรือดอกจันจริงๆ ให้พิมพ์ เครื่องหมายตัวหนอน (~) ไว้หน้าอักขระ
ตัวอย่างเช่น =VLOOKUP("Fontan?",B2:E7,2,FALSE) จะค้นหาอินสแตนซ์ทั้งหมดของ กิจจาการ โดยอักษรตัวสุดท้ายสามารถแตกต่างกันได้
ตรวจสอบให้แน่ใจว่าข้อมูลของคุณไม่มีอักขระที่ผิด เมื่อค้นหาค่าข้อความในคอลัมน์แรก ตรวจสอบให้แน่ใจว่าข้อมูลในคอลัมน์แรกไม่มีช่องว่างอยู่ข้างหน้า ไม่มีช่องว่างอยู่ข้างหลัง ไม่มีการใช้เครื่องหมายอัญประกาศตรง (' หรือ ") และแบบปีกกา (' หรือ ") หรืออักขระที่ไม่สามารถพิมพ์ออกมาได้ ในกรณีเหล่านี้ VLOOKUP อาจส่งกลับค่าที่ไม่คาดคิด
เมื่อต้องการรับผลลัพธ์ที่ถูกต้องแม่นยำมากขึ้น ให้ลองใช้ ฟังก์ชัน CLEAN หรือ ฟังก์ชัน TRIM เพื่อเอาช่องว่างที่อยู่ข้างหลังค่าตารางในเซลล์ออก

ต้องการความช่วยเหลือเพิ่มเติมไหม

คุณสามารถสอบถามผู้เชี่ยวชาญใน ชุมชนด้านเทคนิคของ Excel หรือรับการสนับสนุนใน ชุมชนได้เสมอ