ข้ามไปเนื้อหาหลัก
Wise Success (Thailand)
เทคนิค Excel

การสร้างสูตร Vlookup ข้ามชีทใน Excel

· อ่านประมาณ 15 นาที

ในงานจริง ข้อมูลที่ต้องใช้มักไม่ได้อยู่ในชีทเดียวกัน เช่น ชีท "ใบสั่งซื้อ" มีแค่รหัสสินค้า แต่ชื่อสินค้าและราคาอยู่ในชีท "สินค้า" หรือชีทรายชื่อพนักงานอยู่แยกจากชีทเงินเดือน การเขียนสูตร VLOOKUP ข้ามชีทใน Excel คือวิธีดึงข้อมูลจากอีกชีทมาแสดงอัตโนมัติ ไม่ต้องคัดลอกวางเอง

บทความนี้สอนทีละขั้น ตั้งแต่วิธีสร้างสูตร VLOOKUP ข้ามชีทแบบคลิกเลือก การพิมพ์ชื่อชีทเอง การล็อกช่วงข้อมูล การค้นหาข้ามไฟล์ ค้นหาจากหลายชีท และวิธีแก้ error ที่เจอบ่อย

ข้อมูลตัวอย่าง

ไฟล์มี 2 ชีท

ชีท "สินค้า" (ตารางข้อมูลหลัก ช่วง A1:D7)

A: รหัสสินค้าB: ชื่อสินค้าC: ราคาต่อหน่วยD: หน่วย
2P001กระดาษ A4 80 แกรม125รีม
3P002ปากกาลูกลื่น สีน้ำเงิน8ด้าม
4P003แฟ้มสันกว้าง 3 นิ้ว89เล่ม
5P004หมึกพิมพ์ สีดำ690ตลับ
6P005เทปกาวใส25ม้วน
7P006ลวดเย็บกระดาษ15กล่อง
ชีทสินค้าที่ใช้เป็นตารางข้อมูลสำหรับ VLOOKUP ข้ามชีท
ชีท "สินค้า" ช่วงสีฟ้าคือ สินค้า!$A$2:$D$7 ที่สูตรใช้ค้นหา

ชีท "ใบสั่งซื้อ" มีคอลัมน์ A = รหัสสินค้า, B = ชื่อสินค้า, C = ราคาต่อหน่วย, D = จำนวน, E = จำนวนเงิน เราต้องการให้พิมพ์แค่รหัสสินค้ากับจำนวน แล้วชื่อสินค้าและราคาขึ้นมาเอง

โครงสร้างสูตร VLOOKUP ข้ามชีท

=VLOOKUP(ค่าที่ค้นหา, ชื่อชีท!ช่วงข้อมูล, ลำดับคอลัมน์, FALSE)

สิ่งที่ต่างจาก VLOOKUP ในชีทเดียวกันมีแค่จุดเดียว คือใส่ชื่อชีทตามด้วยเครื่องหมาย ! นำหน้าช่วงข้อมูล เช่น สินค้า!$A$2:$D$7 หมายถึงช่วง A2:D7 ในชีท "สินค้า"

วิธีที่ 1: สร้างสูตร VLOOKUP ข้ามชีทด้วยการคลิก (แนะนำสำหรับมือใหม่)

  1. ไปที่ชีท "ใบสั่งซื้อ" คลิกเซลล์ B2 (ช่องชื่อสินค้า)
  2. พิมพ์ =VLOOKUP(
  3. คลิกเซลล์ A2 (รหัสสินค้า) แล้วพิมพ์เครื่องหมายจุลภาค ,
  4. คลิกแท็บชีท "สินค้า" ที่ด้านล่างของหน้าจอ แล้วลากเลือกช่วง A2:D7 จะเห็นสูตรเป็น =VLOOKUP(A2,สินค้า!A2:D7
  5. กด F4 หนึ่งครั้ง เพื่อล็อกช่วงเป็น สินค้า!$A$2:$D$7
  6. พิมพ์ ,2,FALSE) แล้วกด Enter (ไม่ต้องคลิกกลับชีทเดิม Excel จะพากลับมาเอง)

ผลลัพธ์ที่ B2:

=VLOOKUP(A2, สินค้า!$A$2:$D$7, 2, FALSE)
ตัวอย่างสูตร VLOOKUP ข้ามชีทใน Excel ดึงชื่อสินค้าจากชีทสินค้ามาที่ชีทใบสั่งซื้อ
สูตรที่ B2 ดึงชื่อสินค้าจากชีท "สินค้า" ช่องสีเหลืองคือเซลล์ที่ใช้สูตร VLOOKUP

ถ้า A2 คือ P003 จะได้ "แฟ้มสันกว้าง 3 นิ้ว" จากนั้นลากสูตรลงไปทั้งคอลัมน์ได้เลย

ช่องราคาต่อหน่วย (C2) ใช้สูตรเดียวกัน เปลี่ยนแค่เลขคอลัมน์เป็น 3

=VLOOKUP(A2, สินค้า!$A$2:$D$7, 3, FALSE)

และช่องจำนวนเงิน (E2) คือ =C2*D2

วิธีที่ 2: พิมพ์ชื่อชีทในสูตรเอง

ถ้าคุ้นเคยแล้ว พิมพ์สูตรเองได้เร็วกว่า แต่ต้องระวังเรื่องชื่อชีท

  • ชื่อชีทธรรมดา เช่น สินค้า, Products พิมพ์ได้เลย: สินค้า!$A$2:$D$7
  • ชื่อชีทที่มีเว้นวรรค สัญลักษณ์ หรือขึ้นต้นด้วยตัวเลข เช่น "ราคา 2026" ต้องครอบชื่อด้วยเครื่องหมาย ' (Single quote): 'ราคา 2026'!$A$2:$D$7

เคล็ดลับ: ถ้าไม่แน่ใจ ใช้วิธีคลิกเลือกตามวิธีที่ 1 Excel จะใส่ชื่อชีทและเครื่องหมาย ' ให้ถูกต้องเอง และถ้าพิมพ์ชื่อชีทผิด Excel จะเปิดหน้าต่างให้เลือกไฟล์ (Update Values) ให้กด Cancel แล้วตรวจชื่อชีทใหม่

ทำไมต้องล็อกช่วงข้อมูลด้วย $

ถ้าไม่ล็อก เมื่อลากสูตรจาก B2 ลงไป B3, B4 ช่วงข้อมูลจะเลื่อนตามเป็น สินค้า!A3:D8, สินค้า!A4:D9 แถวบนของตารางสินค้าจะหลุดจากการค้นหา ทำให้บางแถวขึ้น #N/A ทั้งที่รหัสมีอยู่จริง ซึ่งเป็นสาเหตุที่พบบ่อยที่สุดของปัญหา VLOOKUP ข้ามชีท

ส่วน A2 (ค่าที่ค้นหา) ไม่ต้องล็อก เพราะต้องการให้เลื่อนตามแถวของใบสั่งซื้อ

3 วิธีทำให้ช่วงข้อมูลขยายเองเมื่อเพิ่มสินค้าใหม่

1. อ้างอิงทั้งคอลัมน์

=VLOOKUP(A2, สินค้า!$A:$D, 3, FALSE)

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

2. แปลงตารางสินค้าเป็น Table (แนะนำ)

ในชีท "สินค้า" คลิกในตารางแล้วกด Ctrl + T จากนั้นตั้งชื่อ Table ที่แท็บ Table Design ว่า tblProduct

=VLOOKUP(A2, tblProduct, 3, FALSE)
สูตร VLOOKUP อ้างอิงชื่อ Table tblProduct จากอีกชีท
อ้างอิงชื่อ Table แทนชื่อชีทและช่วงเซลล์

สูตรสั้นลง ไม่ต้องใส่ชื่อชีท ไม่ต้องล็อก $ และช่วงขยายเองทุกครั้งที่เพิ่มสินค้า แม้จะอยู่คนละชีทก็ใช้ชื่อ Table ได้เลย

3. ตั้งชื่อช่วงข้อมูล (Named Range)

เลือกช่วง A2:D7 ในชีทสินค้า พิมพ์ชื่อ เช่น ProductList ในช่อง Name Box (ช่องซ้ายของแถบสูตร) แล้วกด Enter

=VLOOKUP(A2, ProductList, 3, FALSE)

VLOOKUP ข้ามไฟล์ (คนละ Workbook)

ถ้าตารางสินค้าอยู่ในอีกไฟล์ เช่น "ราคาสินค้า.xlsx" ให้เปิดทั้งสองไฟล์ แล้วใช้วิธีคลิกเลือกแบบวิธีที่ 1 โดยสลับไปคลิกในไฟล์ราคาสินค้า Excel จะเขียนสูตรให้เป็น

=VLOOKUP(A2, '[ราคาสินค้า.xlsx]สินค้า'!$A$2:$D$100, 3, FALSE)

เมื่อปิดไฟล์ราคาสินค้า สูตรจะเปลี่ยนเป็นที่อยู่เต็มของไฟล์ (Path) และ Excel อาจถามให้ Update links เมื่อเปิดไฟล์ครั้งถัดไป ข้อควรระวัง

  • ถ้าย้ายหรือเปลี่ยนชื่อไฟล์ต้นทาง ลิงก์จะขาด แก้ได้ที่ Data > Edit Links > Change Source
  • ถ้าส่งไฟล์ให้คนอื่น เขาจะเปิดไฟล์ต้นทางไม่ได้ ควรรวมตารางไว้ในไฟล์เดียวกัน หรือใช้ Power Query ดึงข้อมูลแทน

VLOOKUP ค้นหาจากหลายชีท

ถ้าข้อมูลสินค้าแยกอยู่หลายชีท เช่น "สินค้า_ในประเทศ" และ "สินค้า_นำเข้า" ให้ค้นชีทแรกก่อน ถ้าไม่เจอค่อยค้นชีทถัดไปด้วย IFNA

=IFNA(VLOOKUP(A2, สินค้า_ในประเทศ!$A:$D, 3, FALSE),
 IFNA(VLOOKUP(A2, สินค้า_นำเข้า!$A:$D, 3, FALSE), "ไม่พบรหัส"))

เลือกชีทที่จะค้นหาจากชื่อในเซลล์ (INDIRECT)

ถ้ามีชีทราคาแยกตามปี และต้องการเลือกปีจาก Dropdown ในเซลล์ G1 (เช่น "ราคา_2026")

=VLOOKUP(A2, INDIRECT("'" & $G$1 & "'!$A:$D"), 3, FALSE)

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

ดึงหลายคอลัมน์ข้ามชีทด้วยสูตรเดียวแล้วลาก

ถ้าหัวคอลัมน์ในชีทใบสั่งซื้อตรงกับหัวคอลัมน์ในชีทสินค้า ใช้ MATCH หาเลขคอลัมน์แทนการพิมพ์เลขเอง

=VLOOKUP($A2, สินค้า!$A$2:$D$100, MATCH(B$1, สินค้า!$A$1:$D$1, 0), FALSE)

เขียนที่ B2 แล้วลากไปทางขวาและลงล่างได้ทั้งตาราง และถ้ามีคนแทรกคอลัมน์ในชีทสินค้า สูตรก็ยังดึงคอลัมน์ที่ถูกต้อง

ปัญหาที่พบบ่อยเมื่อใช้ VLOOKUP ข้ามชีท

อาการสาเหตุวิธีแก้
#N/A บางแถวไม่ได้ล็อกช่วงด้วย $กด F4 ที่ช่วงข้อมูลในสูตร
#N/A ทุกแถวลืม FALSE, รหัสมีช่องว่างเกิน หรือเป็นตัวเลขกับข้อความไม่ตรงกันดู8 สาเหตุที่ VLOOKUP ขึ้น #N/A
#REF!ลบชีทต้นทาง หรือเลขคอลัมน์เกินจำนวนคอลัมน์ในช่วงตรวจว่าชีทยังอยู่ และเลขคอลัมน์ไม่เกินช่วงที่เลือก
หน้าต่าง Update Values ขึ้นมาพิมพ์ชื่อชีทผิด หรือชีทมีเว้นวรรคแต่ไม่ใส่ ' 'กด Cancel แล้วใช้วิธีคลิกเลือกชีทแทน
ได้ชื่อสินค้าผิดตัวใส่ TRUE หรือเว้นว่างอาร์กิวเมนต์สุดท้ายเปลี่ยนเป็น FALSE

ข่าวดีคือ ถ้าเปลี่ยนชื่อชีทด้วยการดับเบิลคลิกที่แท็บชีท Excel จะแก้ชื่อชีทในทุกสูตรให้อัตโนมัติ (ยกเว้นสูตรที่ใช้ INDIRECT)

แสดงข้อความแทน #N/A เมื่อยังไม่กรอกรหัส

ในใบสั่งซื้อที่ยังมีแถวว่าง ช่องชื่อสินค้าจะขึ้น #N/A ดูไม่เรียบร้อย แก้ด้วย

=IF(A2="", "", IFNA(VLOOKUP(A2, สินค้า!$A$2:$D$100, 2, FALSE), "ไม่พบรหัสสินค้า"))
สูตร VLOOKUP ข้ามชีทร่วมกับ IF และ IFNA แสดงข้อความเมื่อไม่พบรหัส
รหัสที่ไม่มีในชีทสินค้าแสดง "ไม่พบรหัสสินค้า" ส่วนแถวที่ยังไม่กรอกเว้นว่าง

ถ้ายังไม่กรอกรหัสจะเว้นว่าง ถ้ากรอกรหัสผิดจะแสดงข้อความเตือน

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

VLOOKUP ข้ามชีทกับในชีทเดียวกัน ต่างกันอย่างไร

หลักการเหมือนกันทุกอย่าง ต่างกันแค่ต้องมีชื่อชีทและเครื่องหมาย ! นำหน้าช่วงข้อมูล

ใช้ XLOOKUP ข้ามชีทได้ไหม

ได้ ใช้หลักเดียวกัน เช่น =XLOOKUP(A2, สินค้า!A2:A100, สินค้า!C2:C100, "ไม่พบ") และยังค้นหาไปทางซ้ายได้ อ่านเพิ่มที่สอนใช้ XLOOKUP แทน VLOOKUP (ใช้ได้ใน Microsoft 365 และ Excel 2021 ขึ้นไป)

VLOOKUP ข้ามชีทใน Google Sheets ทำได้ไหม

ได้ เขียนเหมือนกัน เช่น =VLOOKUP(A2, 'สินค้า'!A:D, 3, FALSE) ส่วนการดึงข้ามไฟล์ใน Google Sheets ต้องใช้ IMPORTRANGE

สรุป

สูตร VLOOKUP ข้ามชีทใน Excel ใช้หลักเดียวกับ VLOOKUP ปกติ เพียงใส่ ชื่อชีท! นำหน้าช่วงข้อมูล จำ 3 ข้อให้แม่น คือ คลิกเลือกชีทแทนการพิมพ์ ล็อกช่วงด้วย F4 และใส่ FALSE ท้ายสูตร แล้วต่อยอดด้วย Table เพื่อให้ช่วงข้อมูลขยายเอง

ดูตัวอย่างการใช้ VLOOKUP กับงานขายเพิ่มเติมได้ที่สูตร VLOOKUP สำหรับงานขายสินค้า ถ้าอยากฝึกสูตรค้นหาอย่าง VLOOKUP, XLOOKUP และ INDEX + MATCH กับข้อมูลตัวอย่างจริงพร้อมวิทยากรดูแล ดูหลักสูตรอบรม Excel Advance และสำหรับองค์กรที่ต้องการจัดอบรม Excel ให้ทีม ดูรายละเอียดอบรม In-house / Online

บทความที่เกี่ยวข้อง

เทคนิค Excel ·

สูตร VLOOKUP สำหรับงานขาย: 7 ตัวอย่างตั้งแต่ใบเสนอราคาถึงค่าคอมมิชชัน

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

อ่านต่อ →

เทคนิค Excel ·

สูตรคำนวณอายุงานใน Excel ด้วย DATEDIF และสูตรวันที่สำหรับงาน HR

รวมสูตร Excel สำหรับงาน HR ตั้งแต่คำนวณอายุงานด้วย DATEDIF อายุพนักงาน วันครบทดลองงาน วันเกษียณ นับวันทำงานด้วย NETWORKDAYS และคำนวณสิทธิ์ตามอายุงาน

อ่านต่อ →

เทคนิค Excel ·

วิธีทำ Dropdown List ใน Excel ด้วย Data Validation (รวม Dropdown 2 ชั้น)

Dropdown List ช่วยให้ข้อมูลใน Excel สะอาดตั้งแต่ต้นทาง บทความนี้สอนทำ Dropdown 3 แบบ รวมถึง Dropdown 2 ชั้น และใช้ Data Validation ป้องกันการกรอกข้อมูลผิด

อ่านต่อ →

ต้องการจัดอบรมให้ทีมในองค์กร?

ปรับเนื้อหาให้ตรงกับงานจริงของทีมคุณ สอนที่บริษัทหรือ Online ได้ ส่งรายละเอียดมา เราตอบกลับพร้อมใบเสนอราคา

☎ โทรเลย LINE @wisesuccess

เลือกประเภทคุกกี้ที่คุณอนุญาต ปรับเปลี่ยนได้ทุกเมื่อที่ลิงก์ "ตั้งค่าคุกกี้" ท้ายเว็บไซต์