หน้าเว็บ

วันพุธที่ 9 ธันวาคม พ.ศ. 2552

การใช้ Vlookup

ฟังก์ชั่น Vlookup เป็นฟังก์ชั่นหนึ่งที่ใช้บ่อยมาก แต่ผู้ที่ใช้ส่วนมากก็ยังไม่เข้าใจว่าทำงานอย่างไร อ่านใน Help แล้วก็ยังไม่เคลียร์ เมื่อเกิดปัญหาก็เลยไม่สามารถแก้ไขได้

มาดูส่วนประกอบหรือไวยากรณ์ของ Vlookup กันก่อนครับ Vlookup มีไวยากรณ์ดังนี้

Vlookup(lookup_value,table_array,col_index_num,range_lookup)

หรือแปลตามแบบฉบับของผมเพื่อให้ง่ายต่อการเข้าใจ Smile with tongue out

Vlookup(ค่าที่ต้องการค้นหา, ตารางที่บรรจุค่าที่ต้องการค้นหา, คอลัมน์ที่ต้องการแสดงผล, รูปแบบการค้นหา)

Winking smile ซึ่งจะเห็นว่า Vlookup มีส่วนประกอบ 4 ส่วนครับ คือ

  1. ค่าที่ต้องการค้นหา เป็นค่าใด ๆ ก็ได้ทั้งนั้น
  2. ตารางที่บรรจุค่าที่ต้องการค้นหา แน่นอนครับว่าต้องเป็นตารางและคอลัมน์แรกของตารางต้องมีค่าที่ต้องการค้นหาในข้อ 1. อยู่ด้วย (แต่ไม่เสมอไป ขึ้นอยู่กับรูปแบบการค้นหาซึ่งเป็นส่วนประกอบสุดท้ายของฟังก์ชั่น)
    ตารางที่บรรจุค่าที่ต้องการค้นหา เป็นตารางที่มีคอลัมน์เดียวได้หรือไม่ คำตอบคือ ได้ นั่นคือมีแต่เฉพาะค่าที่ต้องการค้นหาเท่านั้น
  3. คอลัมน์ที่ต้องการแสดงผล หมายถึง ลำดับของคอลัมน์ในตารางที่บรรจุผลลัพธ์(ปกติคำว่าตารางมักจะมากกว่า 1 คอลัมน์และคอลัมน์ผลลัพธ์เป็นคอลัมน์ใด ๆ ก็ได้ในตารางแล้วแต่ความต้องการ) และที่สำคัญคอลัมน์ที่บรรจุค่าที่ต้องการค้นหานั้นต้องนับเป็นคอลัมน์แรกหรือคอลัมน์ที่ 1 เสมอ
  4. รูปแบบการค้นหา มี แค่ 2 รูปแบบเท่านั้น คือ หาค่าแบบตรงตัว และ หาค่าแบบใกล้เคียง

การหาค่าแบบตรงตัว จะใช้ False หรือ 0 ในสูตร การหาค่าแบบใกล้เคียง จะใช้ True หรือ 1 หรือ ปล่อยว่าง

Smile รูปแบบสูตรหาค่าตรงตัวจะได้เป็น

=Vlookup(ค่าที่ต้องการหา, ตารางที่บรรจุค่าที่ต้องการหา, คอลัมน์ที่บรรจุผลลัพธ์, False) หรือ

=Vlookup(ค่าที่ต้องการหา, ตารางที่บรรจุค่าที่ต้องการหา, คอลัมน์ที่บรรจุผลลัพธ์, 0)

เช่น

=Vlookup(A2,Sheet2!B5:D100,3,False)

หมายความว่า ให้หาค่าที่เท่ากับ A2 ในช่วงข้อมูล B5:B100 ของ Sheet2 แล้วนำค่าในคอลัมน์ที่ 3 ของตาราง B5:D100 (ซึ่งอยู่ในบรรทัดเดียวกัน) มาแสดง นั่นคือ นำค่าในคอลัมน์ D มาแสดง ( 1 คือคอลัมน์ B, 2 คือคอลัมน์ C, 3 คือคอลัมน์ D)

Open-mouthed smile รูปแบบสูตรหาค่าใกล้เคียงจะได้เป็น

=Vlookup(ค่าที่ต้องการหา, ตารางที่บรรจุค่าที่ต้องการหา, คอลัมน์ที่บรรจุผลลัพธ์, True) หรือ

=Vlookup(ค่าที่ต้องการหา, ตารางที่บรรจุค่าที่ต้องการหา, คอลัมน์ที่บรรจุผลลัพธ์, 1) หรือ

=Vlookup(ค่าที่ต้องการหา, ตารางที่บรรจุค่าที่ต้องการหา, คอลัมน์ที่บรรจุผลลัพธ์)

เช่น

=Vlookup(A2,Sheet2!B5:D100,3,True)

หมายความว่า ให้หาค่าที่น้อยกว่าหรือเท่ากับ A2 ในช่วงข้อมูล B5:B100 ของ Sheet2 แล้วนำค่าในคอลัมน์ที่ 3 ของตาราง B5:D100 (ซึ่งอยู่ในบรรทัดเดียวกัน) มาแสดง นั่นคือ นำค่าในคอลัมน์ D มาแสดง ( 1 คือคอลัมน์ B, 2 คือคอลัมน์ C, 3 คือคอลัมน์ D)

การหาค่าแบบใกล้เคียงนี้ จะหาค่าได้อย่างรวดเร็วและจำเป็นต้องเรียงข้อมูลตามคอลัมน์ B (จากตัวอย่าง) จากน้อยไปหามากเสมอ ทั้งสองรูปแบบการค้นหา ถ้าไม่เจอค่าที่ต้องการ จะแสดงค่าผิดพลาดเป็น #N/A

ภาพตัวอย่างการใช้งานฟังก์ชัน Vlookup แบบตรงตัวและแบบใกล้เคียง

Vlookup

6 ความคิดเห็น:

sarapad2u.com กล่าวว่า...

ขอบคุณมากครับกำลังมีปัญหาเรื่องการใช้งานพอดีเลยครับผม ขอบคุณครับ

snasui กล่าวว่า...

ครับผม ยินดีที่ช่วยไ้ด้ครับ

ไม่ระบุชื่อ กล่าวว่า...

าlถ้า ต้องการหาว่า ถ้าค่าหาค่่าแกน X แล้วหาแกน Y ด้วย สามารถใช้ vlookupซ้อนHlookup ได้ไหม หรือมี function อะไรที่ใช้ง่ายกว่า

snasui กล่าวว่า...

สามารถใช้ฟังก์ชั่นในฟอร์มด้านล่างได้ครับ

=Index(a,Match(b,c,0),Match(d,e,0))

เพื่อความสะดวกในการถามตอบ สามารถถามได้ที่ http://www.snasui.com/ สามารถแนบภาพ แนบไฟล์ได้ แต่ต้องเป็นสมาชิกซึ่งฟรีครับ

AA1982 กล่าวว่า...

ในกรณีที่เราต้องการหาข้อมูลที่ตรงในหลาย ๆ ชีท เช่น ชื่อคนที่อยู่ในแต่ละชีท(มีชื่อที่เหมือนกันในแต่ละชีท) แล้วให้แสดงผลการหาที่ชีทใหม่น่ะค่ะ ทำอย่างไรคะ

snasui กล่าวว่า...

ช่วยแนบแฟ้มปัญหาไปที่ http://www.snasui.com/ เพื่อสะดวกในการถามตอบ จะช่วยดูให้ครับ