จะ Mapping ข้อมูลที่อยู่ด้านซ้าย ใช้ VLOOKUP ไม่ได้ ทำไงดี? 1

จะ Mapping ข้อมูลที่อยู่ด้านซ้าย ใช้ VLOOKUP ไม่ได้ ทำไงดี?

ฟังก์ชันยอดฮิตในการ Map ข้อมูลที่หลายคนชอบใช้ก็คือ VLOOKUP ซึ่งมีข้อดีคือ ใช้ฟังก์ชันเดียวก็ Map ข้อมูลได้ดั่งใจ
แต่ข้อเสียคือถ้าข้อมูลอยู่ด้านซ้ายของคอลัมน์ที่จะค้นหา มันจะเอาค่ากลับมาไม่ได้!

แล้วที่นี้จะทำไงดี??

ep01-000

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

ตัวที่ผมอยากจะแนะนำที่สุดก็คือ INDEX+MATCH เพราะนอกจากจะเอาข้อมูลมาได้ทั้งทางซ้ายและขวา ยังทนทานต่อการแทรกคอลัมน์อีกต่างหาก (แทรกแล้วข้อมูลที่ Lookup มาก็ยังถูกต้องอยู่)

ก่อนอื่น ผมขอทวนการทำงานของ INDEX แบบสั้นๆ นั่นคือ มันจะดึงข้อมูลตามพิกัดที่เราระบุได้

เช่น หากผมเขียนสูตรแบบนี้ ซึ่งเป็นการบอกว่า ในพื้นที่ A2:A5 นั้น ให้เอาข้อมูลที่อยู่ลำดับที่ 2 กลับมานะ ก็จะได้คำตอบ T004

ep01-001

แต่เรื่องของเรื่องคือ ที่เราใส่เลข 2 ได้ เพราะเราดูด้วยตาเปล่าว่า เจ้าสมหญิง อยู่ลำดับที่ 2

แต่ถ้าเราจะให้ Excel ช่วยหาให้ เราก็ต้องใช้ MATCH มาแทนเลข 2 ในส่วนของ row_num ดังนี้
ซึ่งเป็นการบอกว่า ให้กาคำในช่อง B9 ในช่วง B2:B5 ว่าอยู่ลำดับที่เท่าไหร่??
(ใส่ Match_Type เป็น 0 เพราะจะหาข้อมูลแบบต้องเจอเป๊ะ หรือ Exact Match)

ep01-002

พอ Enter ก็จะได้คำตอบคือ T004 ตามต้องการ และเมื่อลองเปลี่ยนชื่อดู ก็จะได้ผลลัพธ์ที่ถูกต้องอยู่

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

=INDEX(A:A,MATCH(B9,B:B,0))

ep01-003

สำหรับบทความนี้ก็ขอจบเพียงเท่านี้ครับ สั้นๆ ง่ายๆ หากใครไม่เข้าใจตรงไหนก็ถามได้ครับ