Tag: lookup

  • VLOOKUP เบื้องต้น: ตามหาข้อมูลข้ามตารางแบบไม่ต้องมานั่งหาเอง

    1. ข้อมูลแยกกันอยู่คนละที่… จะเอาค่ามาเทียบยังไง

    เคยเจอสถานการณ์นี้ไหมครับ — คุณมีข้อมูล 2 ตารางที่ต้องเชื่อมโยงกัน เช่น:

    • ตารางที่ 1: รายการสินค้าที่ขายได้ พร้อมรหัสสินค้า (ไม่มีชื่อสินค้า)
    • ตารางที่ 2: รายการสินค้าพร้อมชื่อและราคา

    คุณต้องการเอา ชื่อสินค้า จากตารางที่ 2 มาใส่ในตารางที่ 1 โดยเทียบจากรหัสสินค้า

    ถ้าข้อมูลมีแค่ 10-20 รายการ ก็คงเปิดเทียบทีละตัว พิมพ์ตามไปได้ แต่ถ้าเป็น 200 รายการล่ะ? หรือ 2,000 รายการ? คงไม่มีใครอยากนั่งเทียบทีละบรรทัดแน่นอนครับ

    VLOOKUP คือฟังก์ชันที่ช่วยคุณ ค้นหาค่าในตารางที่สอง โดยเทียบจากค่าที่กำหนด (ค่าคีย์) และ ดึงค่าที่สัมพันธ์กันมาแสดง โดยอัตโนมัติ

    VLOOKUP ทำงานง่ายมาก — คุณบอก Excel ว่า:

    1. ค่าที่ต้องการค้นหา (เช่น รหัสสินค้า P001)
    2. ตารางที่ต้องการค้นหา (ตารางอ้างอิง)
    3. คอลัมน์ที่ต้องการดึงค่า (เช่น ชื่อสินค้า)
    4. ต้องการเจอแบบตรงเป๊ะหรือใกล้เคียง (ใช้ FALSE แทน exact match)

    ตัวอย่างง่ายที่สุด: ถ้าคุณพิมพ์รหัสสินค้า P001 แล้ว VLOOKUP จะไปหาในตารางอ้างอิงให้ เจอแล้วก็ดึงชื่อสินค้าของรหัสนั้นมาให้คุณเลย — แค่วินาทีเดียว! ผมว่า magic เลยนะครับ

    เปิดไฟล์ตัวอย่างมาทำไปพร้อมกันเลยดีกว่าครับ — มีชีทตัวอย่างพร้อมข้อมูลให้ลองใช้ VLOOKUP จริง จะได้เห็นว่ารวดเร็วแค่ไหน

    2. VLOOKUP ทำงานยังไง? เข้าใจโครงสร้างง่ายๆ

    มาดูโครงสร้างของฟังก์ชัน VLOOKUP กันครับ:

    =VLOOKUP( ค่าที่ค้นหา , ตารางที่ค้น , ลำดับคอลัมน์ , การค้นหาแบบตรง )
    • ค่าที่ค้นหา (Lookup_Value): ค่าที่จะใช้เป็นตัวเทียบ เช่น รหัสสินค้า P001
    • ตารางที่ค้น (Table_Array): ช่วงของตารางอ้างอิงที่มีทั้งค่าคีย์และค่าที่อยากดึงมา
    • ลำดับคอลัมน์ (Col_Index_Num): คอลัมน์ที่ 1 คือคอลัมน์แรกของตารางที่เลือก — ต้องการดึงค่าจากคอลัมน์ไหนก็ใส่เลขลำดับนั้น
    • การค้นหาแบบตรง (Range_Lookup): ใส่ FALSE = เจอตรงเป๊ะเคุณั้น, TRUE หรือเว้นว่าง = เจอแบบใกล้เคียง

    🔦ข้อควรจำที่สำคัญที่สุด

    คอลัมน์แรกของตารางอ้างอิงต้องเป็นค่าที่คุณใช้ค้นหาเสมอ! เพราะ VLOOKUP จะมองหาค่าคีย์จากคอลัมน์แรกเคุณั้น

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

    3. ตัวอย่างที่ 1: ค้นหาราคาสินค้าจากรหัส

    สมมติว่าคุณทำงานร้านค้าส่งแห่งหนึ่ง มีข้อมูล 2 ตาราง:

    ตารางสินค้าที่ขาย (ชีท “ใบสั่งขาย”):

    รหัสสินค้าจำนวนราคาต่อหน่วยรวมเงิน
    P00110
    P0035
    P0058
    P0023

    ตารางราคาสินค้า (ชีท “ราคาสินค้า”):

    รหัสสินค้าชื่อสินค้าราคาขาย
    P001เสื้อยืดคอกลม120
    P002กางเกงยีนส์350
    P003กระเป๋าสะพาย290
    P004รองเท้าผ้าใบ590
    P005หมวกแก็ป150

    วิธีทำ

    ขั้นตอนที่ 1: เปิดไฟล์ตัวอย่างที่แนบมา แล้วไปที่ชีท “ใบสั่งขาย” คลิกที่เซลล์ C2 (ช่องราคาต่อหน่วยของรายการแรก)

    ขั้นตอนที่ 2: พิมพ์สูตรนี้ลงไป:

    =VLOOKUP(A2, 'ราคาสินค้า'!$A$2:$C$6, 3, FALSE)

    อธิบายสูตร:

    • A2 = ค่าที่ต้องการค้นหา (รหัสสินค้า P001)
    • ‘ราคาสินค้า’!$A$2:$C$6 = ช่วงตารางในชีท “ราคาสินค้า” ตั้งแต่คอลัมน์ A ถึง C
    • 3 = ต้องการดึงค่าจากคอลัมน์ที่ 3 (ราคาขาย)
    • FALSE = ต้องการเจอแบบตรงเป๊ะเคุณั้น

    🔥เคล็ดลับ: $A$2:$C$6 ใช้ $ (dollar sign) เพื่อล็อกช่วงตารางไม่ให้เลื่อนตอนก็อปปี้สูตรลงมา — เรียก Absolute Reference ครับ

    ขั้นตอนที่ 3: กด Enter แล้วลาก Fill Handle (จุดสี่เหลี่ยมมุมขวาล่างของเซลล์) ลงมา จะเห็นว่าราคาต่อหน่วยของทุกสินค้าถูกเติมมาโดยอัตโนมัติ!

    ขั้นตอนที่ 4: ใส่สูตรคำนวณรวมเงินที่คอลัมน์ D เช่น =B2*C2 แล้วลากลงมา ก็จะได้ยอดรวมของแต่ละรายการ

    ลองเปิดไฟล์ตัวอย่างดูครับ — ชีท “ใบสั่งขาย” มีข้อมูลพร้อมให้ลองทำตามทีละขั้นตอนเลย

    4. ตัวอย่างที่ 2: ตามหาชื่อพนักงานจากรหัส

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

    ตารางลงเวลาทำงาน (ชีท “เวลาเข้า-ออก”):

    รหัสพนักงานชื่อ-นามสกุลเวลาเข้าเวลาออก
    EMP00508:1217:30
    EMP01207:5518:05
    EMP00308:3016:45
    EMP00808:0517:20

    ตารางข้อมูลพนักงาน (ชีท “ทะเบียนพนักงาน”):

    รหัสพนักงานชื่อ-นามสกุลแผนกเบอร์โทร
    EMP001สมชาย ใจดีฝ่ายขาย081-234-5678
    EMP002สมศรี รักเรียนฝ่ายบัญชี082-345-6789
    EMP003วิชัย มั่งมีฝ่ายขาย083-456-7890
    EMP004นภา สดใสฝ่ายบุคคล084-567-8901
    EMP005ประเสริฐ สุขสันต์ฝ่ายผลิต085-678-9012
    EMP008สุดา เมตตาฝ่ายจัดซื้อ086-789-0123
    EMP012ธนพล กล้าหาญฝ่ายผลิต087-890-1234

    วิธีทำ

    คลิกที่เซลล์ B2 ในชีท “เวลาเข้า-ออก” แล้วพิมพ์สูตร:

    =VLOOKUP(A2, 'ทะเบียนพนักงาน'!$A$2:$D$8, 2, FALSE)

    อธิบาย:

    • A2 = รหัสพนักงาน EMP005
    • ‘ทะเบียนพนักงาน’!$A$2:$D$8 = ตารางพนักงานช่วง A2:D8
    • 2 = คอลัมน์ที่ 2 คือชื่อ-นามสกุล
    • FALSE = ค้นหาแบบตรงเป๊ะ

    กด Enter แล้วลาก Fill Handle ลงมา — เสร็จ! ครบทั้ง 4 แถวในพริบตา

    5. ตัวอย่างที่ 3: เกรดนักเรียน — ใช้ VLOOKUP แบบประมาณ (TRUE)

    ในตัวอย่างก่อนหน้านี้เราใช้ FALSE เพื่อค้นหาแบบตรงเป๊ะเสมอ แต่ก็มีกรณีที่เราต้องการค้นหาแบบใกล้เคียงครับ เช่น การคิดเกรด:

    ตารางคะแนนนักเรียน:

    ชื่อนักเรียนคะแนนเกรด
    สมชาย85
    สมหญิง67
    วิชัย92
    นภา73

    ตารางเกณฑ์การให้เกรด:

    คะแนนต่ำสุดเกรด
    80A
    70B
    60C
    50D
    0F

    วิธีทำ

    คลิกที่ C2 แล้วพิมพ์:

    =VLOOKUP(B2, $E$2:$F$6, 2, TRUE)

    อธิบาย:

    • B2 = คะแนนของสมชาย (85)
    • $E$2:$F$6 = ตารางเกณฑ์เกรด (คอลัมน์ E-F)
    • 2 = ดึงคอลัมน์ที่ 2 คือเกรด
    • TRUE = ค้นหาแบบประมาณ — ถ้าไม่เจอตรงเป๊ะ จะหาค่าที่น้อยกว่าที่ใกล้ที่สุด

    🔑สำคัญมาก! เวลาใช้ TRUE ต้องเรียงข้อมูลคอลัมน์แรก จากน้อยไปมาก (Ascending order) ไม่งั้นผลลัพธ์จะผิดครับ

    สมชายได้ 85 คะแนน — VLOOKUP จะหาใน E:E ว่าเจอ 85 ไหม? ไม่เจอ ก็หาค่าที่น้อยกว่า 85 ที่ใกล้ที่สุดคือ 80 แล้วดึงเกรด A มาให้ — ถูกต้อง!

    6. ข้อผิดพลาดที่พบบ่อย (และวิธีแก้)

    ข้อผิดพลาดสาเหตุวิธีแก้
    #N/Aไม่พบค่าที่ค้นหาตรวจสอบว่าค่าคีย์ตรงกันทั้งตัวพิมพ์เล็ก-ใหญ่ และไม่มีช่องว่างเกิน
    #REF!ระบุลำดับคอลัมน์เกินกว่าที่ตารางมีเช็คว่าคอลัมน์ที่ต้องการอยู่ในช่วงที่เลือก
    ได้ค่าผิดลืมใส่ FALSE ทำให้เจอแบบใกล้เคียงแก้เป็น FALSE หรือ 0 เสมอเมื่อต้องการแบบตรง
    ได้ค่าแถวแรกตลอดตารางอ้างอิงไม่ได้ล็อกด้วย $ใช้ $A$1:$C$100 แทน A1:C100
    ไม่มีอะไรขึ้นค่าคีย์กับตารางอ้างอิง Format ไม่ตรงกันเช็คว่าเป็นตัวเลขเหมือนกันหรือข้อความเหมือนกัน

    เคล็ดลับเช็ค Error ด้วย IFNA

    ถ้าไม่อยากเห็น #N/A เต็มหน้า ให้ใช้ IFNA ครอบ VLOOKUP ไว้:

    =IFNA(VLOOKUP(A2, ราคาสินค้า!$A$2:$C$6, 3, FALSE), "ไม่พบสินค้า")

    แทนที่จะขึ้น #N/A จะแสดงข้อความ “ไม่พบสินค้า” แทน ดูเป็นระเบียบขึ้นเยอะครับ

    7. สรุป: VLOOKUP ไม่ยากอย่างที่คิด

    VLOOKUP เป็นฟังก์ชันค้นหาข้อมูลที่ใช้ง่ายและมีประโยชน์มากในชีวิตการทำงาน:

    หัวข้อสรุป
    โครงสร้าง=VLOOKUP(ค่าค้น, ตาราง, คอลัมน์, FALSE/TRUE)
    การใช้หลักFALSE สำหรับเจอตรงเป๊ะ (ส่วนใหญ่ใช้แบบนี้)
    TRUE ใช้เมื่อต้องการประมาณค่าแบบเกรด ส่วนลด ภาษี
    ข้อควรจำคอลัมน์แรกของตารางต้องเป็นค่าคีย์ที่ค้นหาเสมอ
    ข้อผิดพลาดหลัก#N/A (ไม่เจอ), #REF! (คอลัมน์เกิน), ได้ค่าผิด (ลืม $ ล็อก)

    แล้วขั้นต่อไปคืออะไร?

    VLOOKUP คือจุดเริ่มต้นของการทำงานกับข้อมูลข้ามตารางครับ ฟังก์ชันนี้จะช่วยให้คุณทำงานกับข้อมูลหลายแหล่งได้อย่างมืออาชีพ แต่ถ้าอยากค้นหาในแนวอื่นๆ ลองดู XLOOKUP หรือ INDEX+MATCH ในบทความต่อๆ ไปนะครับ

    สำหรับตอนนี้ ลองดาวน์โหลดไฟล์ตัวอย่าง (File > Create a Copy > Download a Copy) แล้วฝึกใช้ VLOOKUP กับข้อมูลจริงดูครับ — รับรองว่าพอทำคล่องแล้วจะติดใจ เพราะมันประหยัดเวลาให้คุณมหาศาลเลยล่ะ!