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

VLOOKUP เป็นอีกฟังก์ชันหนึ่งของ Excel ที่มีการนำไปใช้งานค่อนข้างมาก โดยเฉพาะการแสดงข้อมูลจากฐานข้อมูล ที่มีความสะดวกและรวดเร็ว เพียงแค่เราป้อนรหัส หรือโค๊ดที่ใช้ในการอ้างอิงถึงข้อมูลนั้นๆ เช่น แค่ป้อนรหัสพนักงาน ก็สามารถแสดงข้อมูลต่างๆ ของพนักงานคนนั้นๆ ออกมาได้ในทันที รวมถึงแสดงรูปภาพของพนักงานได้ด้วย (ซึ่งจะกล่าวถึงวิธีการแสดงรูปในโอกาสต่อไป)


โครงสร้างของฟังก์ชัน VLOOKUP

VLOOKUP(lookup_value, table_array, col_index_num, range_lookup)

lookup_value หรือค่าที่เราจะใช้ค้นหา โดยที่ค่าดังกล่าวนี้ จะต้องมีอยู่ในคอลัมน์แรกของตารางฐานข้อมูล เช่น รหัสพนักงาน รหัสสินค้า เป็นต้น

table_array หรือช่วงตารางฐานข้อมูล ที่มีจำนวนคอลัมน์ข้อมูลอย่างน้อยสองคอลัมน์หรือมากกว่า ดังรูปที่ 1

col_index_num หรือหมายเลขระบุคอลัมน์ในตารางฐานข้อมูล ที่คุณต้องการจะนำข้อมูลในคอลัมน์นั้นออกมาแสดง

range_lookup เป็นค่าตรรกะที่ระบุว่า ต้องการให้ VLOOKUP ค้นหารหัสที่ตรงกันกับที่ระบุเท่านั้นหรือไม่ โดยที่

  • ถ้ากำหนดเป็น TRUE หรือ 1 หรือไม่ใส่ค่าอะไรเลย ในกรณีที่ไม่พบรหัสที่ตรงกัน จะแสดงข้อมูลของรหัสที่ใกล้เคียงที่สุดซึ่งน้อยกว่าค่า lookup_value (ทั้งนี้ค่าในคอลัมน์แรกของช่วงตารางฐานข้อมูล จะต้องเรียงตามลำดับจากน้อยไปหามาก)

  • แต่ถ้ากำหนดเป็น FALSE หรือ 0 (ศูนย์) VLOOKUP จะทำการค้นหาเฉพาะรหัสที่ระบุเท่านั้น ซึ่งถ้าไม่พบก็จะแสดงค่าผิดพลาด #N/A (ในกรณีนี้ ค่าในคอลัมน์แรกของช่วงตารางฐานข้อมูลไม่จำเป็นต้องเรียงลำดับ) แต่ถ้าหากพบรหัสที่ระบุ ที่มีค่าเหมือนกันมากกว่าหนึ่งรายการในคอลัมน์แรกของช่วงตารางฐานข้อมูล VLOOKUP จะใช้ค่าแรกที่พบก่อน



รูปที่ 1 ตัวอย่างตารางฐานข้อมูล


สร้างตารางฐานข้อมูล

ในการใช้ VLOOKUP เราจำเป็นต้องมีตารางฐานข้อมูลอย่างน้อย 1 ตาราง (อาจจะมีมากกว่า 1 ตารางที่สัมพันธ์กันก็ได้ ซึ่งจะกล่าวถึงต่อไป) ซึ่งมีลักษณะดังรูปที่ 1 คุณต้องการเก็บข้อมูลอะไร จะมีกี่คอลัมน์ ก็สุดแล้วแต่ มีข้อแม้เพียงว่า ต้องอยู่ในรายละเอียดและเงื่อนไขของ การออกแบบตารางฐานข้อมูลใน Excel (หาอ่านได้จากหนังสือ Excel for HR ในบทที่ 21 ครับ)

จากรูปที่ 1 ผมจงใจให้ข้อมูลเริ่มต้นที่ คอลัมน์ B โดยตารางฐานข้อมูลนี้มี 5 คอลัมน์ คือ รหัส, คำนำหน้า, ชื่อ, นามสกุล และหน่วยงาน ดังนั้น ถ้าเราค้นหาเจอรหัสของใคร และต้องการนำชื่อคนนั้นมาแสดง ก็หมายถึง คอลัมน์ที่ 3 (แม้ว่าข้อมูลจะอยู่ในคอลัมน์ D ก็ตาม)

สร้างรูปแบบข้อมูลผลลัพธ์ (Output)

เราสามารถออกแบบหน้าตาของผลลัพธ์ หรือ Output ที่ต้องการได้ โดยการจัดวางองค์ประกอบ หรือโครงสร้างของผลลัพธ์นั้นตามความเหมาะสม โดยพิจารณาจากข้อมูลในตารางฐานข้อมูล

ข้อมูลผลลัพธ์นั้น จะอยู่ในชีตเดียวกันกับตารางฐานข้อมูล หรือจะอยู่คนละชีต หรือคนละไฟล์ก็ได้ แล้วแต่ลักษณะการใช้งาน แต่ในที่นี้ผมขอนำมาไว้ในชีตเดียวกัน เพื่อสะดวกในการทำภาพประกอบ


รูปที่ 2 ตัวอย่างข้อมูลผลลัพธ์ หรือ Output

1. จากรูปที่ 2 ผมทำการออกแบบข้อมูลผลลัพธ์แบบง่ายๆ โดยการใช้เมาท์เลือกช่วงข้อมูล B2:F2 แล้วคลิกขวาเลือก Copy
2. ผมคลิกเมาท์ปุ่มขวาที่ตำแหน่ง J4 แล้วเลือก Paste special...
3. ติ๊กเลือก Transpose แล้วคลิก OK
4. ทำการตกแต่งรูปแบบสักหน่อย เช่น จัดข้อความชิดขวา และเพิ่มข้อความด้านบน ดังที่แสดงในรูปที่ 2


รูปที่ 3 ติ๊กเลือก Transpose แล้วคลิก OK


การแสดงข้อมูลจากฐานข้อมูล

จากรูปแบบผลลัพธ์ในรูปที่ 2 ถ้าเราป้อนรหัสพนักงานที่ K4 เราก็ต้องการให้คำนำหน้า, ชื่อ, นามสกุล และแผนก มาโชว์ใน K5 ถึง K8 ตามลำดับ โดยอัตโนมัติ เรามาทดลองทำตามไปพร้อมๆ กันเลยดีกว่าครับ
1. ป้อนรหัสพนักงานคนใดคนหนึ่งที่เซล K4
2. ที่เซล K5 พิมพ์ =VLOOKUP(K$4,$B$3:$F$10,2,0)
3. ทำการคัดลอกสูตรจาก K5 มาที่ K6:K8 (ซึ่งจะเห็นว่าแสดงผลเป็นคำนำหน้าเหมือนกันหมด)
4. ดับเบิลคลิกที่ K6 (หรือเลื่อนเซลมาที่ K6 แล้วกด F2) เปลี่ยนเลข 2 เป็นเลข 3
5. ดับเบิลคลิกที่ K7 เปลี่ยนเลข 2 เป็นเลข 4
6. ดับเบิลคลิกที่ K8 เปลี่ยนเลข 2 เป็นเลข 5 จะได้ผลลัพธ์ดังรูปที่ 4


รูปที่ 4 ตัวอย่างผลลัพธ์ที่ได้หลังจากใช้ VLOOKUP


การเชื่อมโยงข้อมูลจากฐานข้อมูลมากกว่า 1 ตาราง

จากตัวอย่างที่กล่าวมา เป็นการแสดงข้อมูลที่มาจากฐานข้อมูลเพียงตารางเดียว ดังนั้นจากผลลัพธ์ที่ได้ หากเราสงสัยว่า เราจะรู้ได้อย่างไรว่า รหัสหน่วยงานที่แสดงออกมานั้น จริงๆ แล้วมีชื่อเต็มว่าอะไร เราจึงอยากที่จะให้แสดงชื่อเต็ม เพราะเข้าใจง่ายกว่า

ในที่นี้เราจะทำการสร้างฐานข้อมูลขึ้นมาอีก 1 ตาราง เป็นรายชื่อของหน่วยงานต่างๆ โดยมีรหัสหน่วยงานเป็นตัวเชื่อมโยง ดังนั้น ผมจึงเพิ่มข้อมูลอีกตารางหนึ่ง ดังรูปที่ 5


รูปที่ 5 ตัวอย่างตารางข้อมูลหน่วยงาน

หลังจากที่เรามีตารางฐานข้อมูลดังรูปที่ 5 แล้ว เราจะต้องทำการแก้ไขสูตรในเซล K8 เสียใหม่ เพื่อให้แสดงชื่อเต็มของหน่วยงาน ดังนี้

=VLOOKUP(VLOOKUP(K$4,$B$3:$F$10,5,0),B16:C21,2,0)

เป็นการทำ VLOOKUP ซ้อน VLOOKUP โดยการนำผลลัพธ์ที่ได้จาก VLOOKUP ครั้งแรก มาเป็น lookup_value ของการ VLOOKUP ครั้งที่สอง ที่ไปค้นหาจากตารางฐานข้อมูลอันใหม่ ทำให้ได้ผลลัพธ์เป็นชื่อหน่วยงาน ดังรูปที่ 6


รูปที่ 6 ตัวอย่างผลลัพธ์ที่แสดงชื่อเต็มหน่วยงาน


ติดตามเทคนิคอื่นๆ เกี่ยวกับ VLOOKUP ในตอนต่อไป



Create Date : 02 พฤษภาคม 2551
Last Update : 30 มกราคม 2552 21:43:11 น.
Counter : 68563 Pageviews.

27 comments
  
ขอก๊อปไปอ่านเป็นความรู้หน่อยนะคะ เพราะเรื่องนี้ จำเป็นมากเลยอ่ะค่ะ
โดย: ...... IP: 203.155.227.91 วันที่: 5 มิถุนายน 2551 เวลา:17:26:39 น.
  
สวัสดีครับ คุณ 6 จุด

ด้วยความยินดีครับ เพราะตั้งใจให้เป็นวิทยาทานอยู่แล้ว แต่ที่น่าน้อยใจอยู่ก็คือ มาเอาความรู้ไป แต่ไม่ยอมบอกชื่อเสียงเรียงนาม น่าน้อยใจนัก
โดย: ครูเอก วันที่: 5 มิถุนายน 2551 เวลา:21:29:52 น.
  
ขอบคุณมากๆค่ะ กำลังศึกษาเรื่องนี้อยู่ แต่คงต้องทำความเข้าใจอีกสักพัก แต่ต้องขอบคุณมากๆค่ะ
โดย: creamini IP: 164.144.232.10 วันที่: 26 มิถุนายน 2551 เวลา:15:37:36 น.
  
ไม่รู้ว่าครูเอกจะเข้ามาดูอีกหรือเปล่า แต่ผมลองทำดูแล้ว (เอาไฟล์ของครูเอกมาทำ)

ภาพมันจะเบลอนะครับ ไม่รู้เกิดจากอะไร ตัว office 2007 ครับ

แต่ไปใช้ office2003 กลับไม่มีปัญหาอะไร ผมนี่ยังเซง
โดย: John13 IP: 61.245.57.135 วันที่: 29 มิถุนายน 2551 เวลา:1:56:11 น.
  
ขอบคุณครับ อ่านทีเดียวงงมาก อ่านสองทีงงเหลือน้อยลง คงต้องอ่านอีกหลายที แต่ดีที่มีแววจะเข้าใจครับ (หมายถึงบรรยายดีครับแต่ผมไม่เข้าใจเอง หลังจากอ่านภาษาอังกฤษแล้วงงมากอ่านของอาจารย์แล้วเข้าใจดีขึ้นครับ)
โดย: วิโรจน์ IP: 125.25.103.49 วันที่: 24 กรกฎาคม 2551 เวลา:16:15:46 น.
  
ทำไม่ออก หนักจาย
โดย: รัก IP: 202.91.19.206 วันที่: 2 สิงหาคม 2551 เวลา:21:38:52 น.
  
สวัสดีครับ คุณรัก
ที่ว่า ทำไม่ออก น่ะ อาการมันเป็นยังงัยล่ะครับ
โดย: ครูเอก วันที่: 2 สิงหาคม 2551 เวลา:23:44:51 น.
  
อ่านแล้วลองทำตาม ง่ายกว่างมเองเยอะเลยค่ะ

ขอบคุณค่ะ ^_^
โดย: PIM IP: 124.121.169.110 วันที่: 21 ตุลาคม 2551 เวลา:21:28:44 น.
  
เพิ่งจะเริ่มศึกษาเรื่องนี้อยู่พอดีเลย จะลองทำตามดูนะครับ
โดย: เอชอาร์มือใหม่ (buu) IP: 58.10.170.75 วันที่: 3 พฤศจิกายน 2551 เวลา:19:38:06 น.
  
ขอบคุณนะคะ ต้องการเรียนรู้เรื่องนี้อยู่พอดี จะลองทำความเข้าใจ และนำไปใช้ดู และอยาก
ให้มีตอนต่อ ๆ ไปอีกนะคะ * _ *
โดย: PO IP: 58.9.4.72 วันที่: 21 พฤศจิกายน 2551 เวลา:11:16:25 น.
  
อยากสั่งซื้อจัง อยากได้เวอร์ชั่นเฮชอาร์ คิดว่าน่าจะมีอะไรซับซ้อน แล้วเป้นประโยชน์มากกว่านี้ ชอบครับ ๆ เป็นโปรแกรมอัจฉริยะจริง ๆ
โดย: เทเรซา IP: 58.8.180.206 วันที่: 29 มกราคม 2552 เวลา:7:22:54 น.
  
ขอบคุณมากค่ะกับความรู้ใหม่จะลองไปใช้งานดู จำเป็นต้องใช้ในการสัมภาษณ์งานค่ะ อยากให้มีตอนต่อไปอีก รบกวนช่วยแนะนำหนังสือเกี่ยวกับการใช้ v look up ด้วยค่ะ ขอบคุณมากค่ะ
โดย: ปอน IP: 58.8.133.164 วันที่: 18 กุมภาพันธ์ 2552 เวลา:19:12:44 น.
  
ต้องการช้ vlookup ในการค้นหาข้อมูล
ต่างfile กันมีรูปแบบยังไง รบกวนแนะนำหน่อยคะ
เพราะปกติใช้แต่ vlookup ธรรมดาหรือแนะนำหนังสือก็ดีคะที่เกี่ยวกับการดึงข้อมูลต่าง file กันหรือการประยุกต์ใช้excel กับงาน รบกวนส่งคำแนะนำที่
sirinya_suebthong@yahoo.com นะคะ
ขอบคุณมากคะ
โดย: นัท IP: 203.146.194.246 วันที่: 26 กุมภาพันธ์ 2552 เวลา:15:47:27 น.
  
ขอบคุณมาก ๆ ค่ะ ทำตามที่ครูสอนแล้วเข้าใจมาก ๆ ค่ะ ทำไม่ยากเลย ^^
โดย: มือใหม่ IP: 223.206.101.153 วันที่: 20 มกราคม 2554 เวลา:3:26:24 น.
  
ขอคุณที่สอนนะค่ะคุณครู
โดย: วัน IP: 118.175.183.143 วันที่: 13 พฤษภาคม 2554 เวลา:15:53:00 น.
  
ขอบคุณมากๆๆๆๆ
โดย: กวาง IP: 118.175.32.174 วันที่: 30 พฤษภาคม 2554 เวลา:14:51:17 น.
  
ขอบคุณค่ะ ^^
โดย: แอ๋ม IP: 58.10.167.197 วันที่: 16 มิถุนายน 2554 เวลา:15:51:38 น.
  
ครู ครับ ถ้าเราจะใช้สูตร VLOOKUP ในการให้ข้อมูลมัน link กัน หลายช่อง (ข้อมูลของแต่ละคน, ต้องใส่ข้อมูลในแต่ละเซล์) ต้องทำยังไง ครับ ขอ ตัวอย่างด้วย ครับ e_mail ของผม jaruwedge_d@hotmail.com
รบกวนหน่อยครับ
โดย: wedge IP: 10.0.1.36, 110.77.234.234 วันที่: 25 สิงหาคม 2554 เวลา:19:20:33 น.
  
ครูค่ะ อยากได้สูตรที่สามารถดึงข้อมูลหลายๆคอลัมข้ามsheetแต่sheetที่จะวางต้องการกำหนดตำแหน่งของข้อมูลต้องเขียนสูตรอย่างไรค่ะ
e-mail ของฉัน maneerat_keb@hotmail.com
โดย: manee IP: 180.183.92.200 วันที่: 30 พฤศจิกายน 2554 เวลา:14:57:24 น.
  
ดีมากครับ
โดย: เสี่ยวยี่ IP: 118.172.0.40 วันที่: 4 มีนาคม 2556 เวลา:23:05:58 น.
  
ขอประทานโทษนะครับ
พอดีเพิ่งได้เข้ามาอ่านจึงอยากทราบว่า
ครูเอกได้เขียนการแสดงรูปภาพหรือยังครับผม
พอดีหาไม่เจอนะครับ
อยากได้ความรู้ตรงจุดนี้พอดีครับผม
ท่านใดพอทราบหรือคุณครูกรุณาช่วยบอกผม
ให้ทราบสักหน่อยได้ไหมครับผม
ขอขอบคุณมากครับผม
โดย: น้องใหม่ครับ IP: 101.109.159.20 วันที่: 29 มีนาคม 2556 เวลา:10:35:41 น.
  
ขอบคุณค่ะ
โดย: jittima IP: 27.130.239.109 วันที่: 12 เมษายน 2556 เวลา:15:43:23 น.
  
มีประโยชน์มาก อธิบายละเอียด เข้าใจง่าย เป็นกำลังใจให้ครับ
โดย: ผู้เริ่มต้น IP: 182.52.116.203 วันที่: 25 กรกฎาคม 2556 เวลา:8:49:43 น.
  
ขอยืมไปใช้นะครับ มีประโยชมากเข้าใจง่ายด้วยครับ
โดย: แอบดู IP: 125.24.255.68 วันที่: 26 พฤศจิกายน 2556 เวลา:8:42:17 น.
  
ขอบคุณมาก
โดย: ttr IP: 124.121.233.176 วันที่: 9 กุมภาพันธ์ 2557 เวลา:6:16:25 น.
  
มีคำถามค่ะ ถ้าเราจะค้นหาด้วยชื่อพนักงาน เราต้องทำอย่างไรค่ะ คือใช้สูตร vlookup แล้ว ทำไม่ได้ รบกวนตอบหน่อยนะค่ะ
โดย: หมู IP: 124.120.91.215 วันที่: 1 เมษายน 2557 เวลา:18:42:29 น.
  
ขอบคุณสำหรับความรู้ค่ะ
โดย: น้องใหม่ขี้สงสัย IP: 124.122.37.28 วันที่: 13 กรกฎาคม 2558 เวลา:14:27:17 น.
ชื่อ :
Comment :
 *ใช้ code html ตกแต่งข้อความได้เฉพาะสมาชิก
 

Samroeng.BlogGang.com

ครูเอก
Location :
กรุงเทพฯ  Thailand

[ดู Profile ทั้งหมด]
 ผู้ติดตามบล็อก : 112 คน [?]

บทความทั้งหมด