Data Analytics Excel

XLOOKUP ฟังชั่นใหม่ของ Excel ที่เกิดมาแทน VLOOKUP

XLOOKUP คือฟังชั่นใหม่ของ Excel เปิดตัวเมื่อเดือนสิงหาคม 2019 เพื่อแทนที่ฟังชั่น VLOOKUP และ HLOOKUP เขียนง่ายกว่าเดิม แถมมีลูกเล่นมากขึ้น เช่น การดึงข้อมูลจากหลายๆคอลัมน์พร้อมกัน และ search_mode เพื่อให้ฟังชั่นทำงานเร็วขึ้น บทความนี้แอดมารีวิววิธีการใช้งานฟังชั่นนี้ด้วย Excel Office 365

ดาวน์โหลดตัวอย่าง EPL table สำหรับบทความนี้ได้ที่นี่

source: https://www.bbc.com/sport/football/premier-league/table

VLOOKUP

สมัยก่อนถ้าเรารู้ชื่อทีมฟุตบอล (Team = “Manchester United”) และต้องการ lookup คะแนนล่าสุดของทีมที่เราต้องการ (Points = ?) เราต้องเขียนฟังชั่น VLOOKUP ตามตัวอย่างด้านล่าง

=VLOOKUP("Manchester United", B2:J21, 9, FALSE) 

เลข 9 ในสูตรคือตำแหน่งของคอลัมน์ที่เราต้องการดึงค่าออกมา (column index) ส่วน FALSE คือการดึงค่าแบบ exact match แปลว่าในตาราง B2:J21 คอลัมน์ B ต้องมีคำว่า “Manchester United” อยู่จริงๆ VLOOKUP ถึงจะสามารถดึงค่ากลับมาได้ สูตรด้านล่างอ่านเป็นภาษาไทยว่า “แมนยูตอนนี้มีแต้มอยู่กี่คะแนน?”

ข้อจำกัดของ VLOOKUP คือการดึงค่าได้ทีละคอลัมน์ และเราต้องรู้ตำแหน่งของคอลัมน์ที่ต้องการดึงด้วย ถ้า Excel หาคำว่า “Manchester United” ไม่เจอ VLOOKUP จะส่งค่า error “#N/A” กลับมา

ทำไมมันยุ่งยากอย่างนี้! คราวนี้มาลองดูวิธีการเขียน XLOOKUP กันบ้าง

XLOOKUP

Save Ole!

XLOOKUP มี required arguments ที่ต้องระบุค่าทั้งหมด 3 ตัว คือ lookup_value, lookup_array และ return_array สังเกตเวลาเราพิมพ์ชื่อฟังชั่นในเซลล์ Excel จะแสดงชื่อ arguments ของฟังชั่นนั้นขึ้นมา

Note – arguments ที่อยู่ใน [ ] เช่น [if_not_found] คือ optional ไม่ต้องใส่ค่าก็กด Enter รันฟังชั่นได้ปกติ

สูตร XLOOKUP ด้านล่างจะได้ผลลัพธ์เท่ากับ VLOOKUP ที่เราเขียนใน section ที่แล้ว โดย “Manchester United” คือ lookup value, B2:B21 คือคอลัมน์ที่เราต้องการไป search และ J2:J21 คือคอลัมน์ที่เราต้องการดึงค่ามาแสดงเป็นผลลัพธ์ เราสามารถใช้เม้าส์เลือกคอลัมน์ได้เลย (i.e. ไม่จำเป็นต้องระบุ column index เหมือนตอนใช้ VLOOKUP แล้ว)

=XLOOKUP("Manchester United", B2:B21, J2:J21)

ถ้า XLOOKUP หาคำว่า “Manchester United” ในคอลัมน์ B2:B21 ไม่เจอ แทนที่จะแสดงค่า #N/A เราสามารถเลือกคำที่ต้องการแสดงได้เองเช่น “Not Found” ใส่เป็น argument ที่สี่ของสูตร XLOOKUP แบบนี้

=XLOOKUP("Manchester United", B2:B21, J2:J21, "Not Found")

และทีเด็ดของฟังชั่น XLOOKUP คือความสามารถในการดึงค่าจากหลายๆคอลัมน์ได้พร้อมกัน นี่คือเหตุผลที่ argument ที่สามของฟังชั่นนี้ชื่อว่า “return_array” ตัวอย่างด้านล่างเราดึงค่าจากคอลัมน์ D:F ของ “Manchester United” ออกมา 3 คอลัมน์พร้อมกันเลย!

=XLOOKUP("Manchester United", B2:B21, D2:F21, "Not Found")

ถ้าเราต้องการ lookup value แบบ exact match เหมือนฟังชั่น VLOOKUP เราสามารถใส่เลขศูนย์ใน argument ที่ห้า (อันนี้ใช้ logic เดียวกับของ VLOOKUP)

=XLOOKUP("Manchester United", B2:B21, D2:F21, "Not Found", 0)

ส่วน argument สุดท้าย [search_mode] คือการเลือกว่าจะให้ XLOOKUP หา lookup_value จากด้านบนลงล่าง (default = 1) หรือจากล่างขึ้นมาบน หรือแบบ binary search เพื่อให้ฟังชั่นทำงานเร็วขึ้น

Summary

อ่านบทความนี้จบก็เลิกใช้ VLOOKUP ได้เลย 555+ XLOOKUP ดีกว่าเยอะ!

  • XLOOKUP มี required arguments สามตัว: lookup_value, lookup_array, return_array
  • XLOOKUP สามารถดึงค่าจากหลายๆคอลัมน์ได้พร้อมกัน
  • XLOOKUP สามารถระบุค่าที่ต้องการ ถ้าหา lookup_value ใน lookup_array ไม่เจอ
  • XLOOKUP เกิดมาเพื่อแทนที่ VLOOKUP และ HLOOKUP เลย ลองดูตัวอย่างการเขียน lookup_value แบบ row-wise ได้ในไฟล์ตัวอย่างของบทความนี้

Insider Program

สำหรับเพื่อนๆที่อยากลองใช้งานฟีเจอร์/ ฟังชั่นใหม่ๆของ Excel ก่อนใคร สามารถ sign up โปรแกรม Office Insider ไปที่ File > Account > Office Insider แล้วคลิก Change Level

สมัคร Office Insider Program เพื่อทดลองใช้ฟีเจอร์ใหม่ๆก่อนใคร

One comment

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.