เคล็ดลับ
ลองใช้ฟังก์ชัน XLOOKUP และ XMATCH ใหม่ และปรับปรุงเวอร์ชันของฟังก์ชันที่อธิบายในบทความนี้ ฟังก์ชันใหม่เหล่านี้ทํางานได้ในทุกทิศทางและส่งกลับค่าที่ตรงกันทุกประการตามค่าเริ่มต้น ทําให้ง่ายต่อการใช้งานมากกว่ารุ่นก่อน
สมมติว่าคุณมีรายการหมายเลขที่ตั้งสํานักงาน และคุณจําเป็นต้องทราบว่าพนักงานคนใดอยู่ในแต่ละสํานักงาน สเปรดชีตมีขนาดใหญ่มาก ดังนั้นคุณอาจคิดว่าเป็นเรื่องที่ท้าทาย จริงๆแล้วมันค่อนข้างง่ายที่จะทํากับฟังก์ชั่นการค้นหา
ฟังก์ชัน VLOOKUP และ HLOOKUP พร้อมกับ INDEX และ MATCH คือฟังก์ชันที่มีประโยชน์มากที่สุดใน Excel
หมายเหตุ
ฟีเจอร์ตัวช่วยสร้างการค้นหาไม่พร้อมใช้งานใน Excel อีกต่อไป
ต่อไปนี้เป็นตัวอย่างของวิธีการใช้ VLOOKUP
=VLOOKUP(B2,C2:E7,3,TRUE)
ในตัวอย่างนี้ B2 คือ อาร์กิวเมนต์แรก ซึ่งเป็นองค์ประกอบของข้อมูลที่ฟังก์ชันต้องทํางาน สําหรับ VLOOKUP อาร์กิวเมนต์แรกนี้คือค่าที่คุณต้องการค้นหา อาร์กิวเมนต์นี้อาจเป็นการอ้างอิงเซลล์ หรือค่าคงที่ เช่น "smith" หรือ 21,000 อาร์กิวเมนต์ที่สองคือช่วงของเซลล์ C2-:E7 ที่จะค้นหาค่าที่คุณต้องการค้นหา อาร์กิวเมนต์ที่สามคือคอลัมน์ในช่วงของเซลล์ที่มีค่าที่คุณค้นหา
อาร์กิวเมนต์ที่สี่จะระบุหรือไม่ก็ได้ ใส่ TRUE หรือ FALSE ถ้าคุณใส่ TRUE หรือปล่อยอาร์กิวเมนต์ว่างไว้ ฟังก์ชันจะส่งกลับค่าที่ตรงกันโดยประมาณของค่าที่คุณระบุในอาร์กิวเมนต์แรก ถ้าคุณใส่ FALSE ฟังก์ชันจะจับคู่ค่าที่ระบุโดยอาร์กิวเมนต์แรก กล่าวอีกนัยหนึ่ง การปล่อยให้อาร์กิวเมนต์ที่สี่ว่างหรือใส่ค่า TRUE จะทําให้คุณมีความยืดหยุ่นมากขึ้น
ตัวอย่างนี้จะแสดงวิธีการทํางานของฟังก์ชัน เมื่อคุณใส่ค่าในเซลล์ B2 (อาร์กิวเมนต์แรก) VLOOKUP จะค้นหาเซลล์ในช่วง C2:E7 (อาร์กิวเมนต์ที่ 2) และส่งกลับค่าที่ใกล้เคียงที่สุดจากคอลัมน์ที่สามในช่วง คอลัมน์ E (อาร์กิวเมนต์ที่ 3)
อาร์กิวเมนต์ที่สี่ว่างเปล่า ฟังก์ชันจึงส่งกลับค่าที่ตรงกันโดยประมาณ ถ้าไม่มี คุณจะต้องใส่ค่าใดค่าหนึ่งในคอลัมน์ C หรือ D เพื่อให้ได้ผลลัพธ์เลย
เมื่อคุณคุ้นเคยกับ VLOOKUP แล้ว ฟังก์ชัน HLOOKUP จะใช้งานง่ายพอๆ กัน คุณใส่อาร์กิวเมนต์เดียวกัน แต่จะค้นหาในแถวแทนที่จะเป็นคอลัมน์
การใช้ INDEX และ MATCH แทน VLOOKUP
มีข้อจํากัดบางอย่างในการใช้ VLOOKUP ฟังก์ชัน VLOOKUP สามารถค้นหาค่าจากซ้ายไปขวาเท่านั้น ซึ่งหมายความว่าคอลัมน์ที่มีค่าที่คุณค้นหาควรอยู่ทางด้านซ้ายของคอลัมน์ที่มีค่าส่งกลับเสมอ ตอนนี้ถ้าสเปรดชีตของคุณไม่ได้สร้างขึ้นด้วยวิธีนี้ อย่าใช้ VLOOKUP ใช้ฟังก์ชัน INDEX และ MATCH ร่วมกันแทน
ตัวอย่างนี้แสดงรายการขนาดเล็กที่ค่าที่เราต้องการค้นหา ชิคาโก ไม่ได้อยู่ในคอลัมน์ซ้ายสุด ดังนั้น เราจึงไม่สามารถใช้ VLOOKUP ได้ แต่เราจะใช้ฟังก์ชัน MATCH เพื่อค้นหาชิคาโกในช่วง B1:B11 พบได้ในแถวที่ 4 จากนั้น INDEX จะใช้ค่านั้นเป็นอาร์กิวเมนต์การค้นหา และค้นหาประชากรของ Chicago ในคอลัมน์ที่ 4 (คอลัมน์ D) สูตรที่ใช้จะแสดงในเซลล์ A14
คุณควรลองทำดู
ถ้าคุณต้องการทดลองกับฟังก์ชันการค้นหาก่อนที่คุณจะลองใช้กับข้อมูลของคุณเอง ต่อไปนี้เป็นข้อมูลตัวอย่างบางส่วน
ตัวอย่าง VLOOKUP ในที่ทํางาน
คัดลอกข้อมูลต่อไปนี้ลงในสเปรดชีตเปล่า
เคล็ดลับ
ก่อนที่คุณจะวางข้อมูลลงใน Excel ให้ตั้งค่าความกว้างคอลัมน์สําหรับคอลัมน์ A ถึง C เป็น 250 พิกเซล แล้วคลิก ตัดข้อความ (แท็บ หน้าแรก กลุ่ม การจัดแนว )
| ความหนาแน่น | ความหนืด | อุณหภูมิ |
|---|---|---|
| 0.457 | 3.55 | 500 |
| 0.525 | 3.25 | 400 |
| 0.606 | 2.93 | 300 |
| 0.675 | 2.75 | 250 |
| 0.746 | 2.57 | 200 |
| 0.835 | 2.38 | 150 |
| 0.946 | 2.17 | 100 |
| 1.09 | 1.95 | 50 |
| 1.29 | 1.71 | 0 |
| สูตร | คำอธิบาย | ผลลัพธ์ |
| =VLOOKUP(1,A2:C10,2) | ใช้การค้นหาค่าที่ตรงกันโดยประมาณ ค้นหาค่า 1 ในคอลัมน์ A พบค่าที่สูงสุดซึ่งน้อยกว่าหรือเท่ากับ 1 ในคอลัมน์ A คือ 0.946 แล้วส่งกลับค่าจากคอลัมน์ B ในแถวเดียวกัน | 2.17 |
| =VLOOKUP(1,A2:C10,3,TRUE) | ใช้การค้นหาค่าที่ตรงกันโดยประมาณ ค้นหาค่า 1 ในคอลัมน์ A พบค่าที่สูงสุดซึ่งน้อยกว่าหรือเท่ากับ 1 ในคอลัมน์ A คือ 0.946 แล้วส่งกลับค่าจากคอลัมน์ C ในแถวเดียวกัน | 100 |
| =VLOOKUP(0.7,A2:C10,3,FALSE) | ใช้การค้นหาค่าที่ตรงกันพอดี ค้นหาค่า 0.7 ในคอลัมน์ A เนื่องจากไม่มีค่าที่ตรงกันพอดีในคอลัมน์ A ข้อผิดพลาดจะถูกส่งกลับ | #N/A |
| =VLOOKUP(0.1,A2:C10,2,TRUE) | ใช้การค้นหาค่าที่ตรงกันโดยประมาณ ค้นหาค่า 0.1 ในคอลัมน์ A เนื่องจาก 0.1 น้อยกว่าค่าที่น้อยที่สุดในคอลัมน์ A ข้อผิดพลาดจะถูกส่งกลับ | #N/A |
| =VLOOKUP(2,A2:C10,2,TRUE) | ใช้การค้นหาค่าที่ตรงกันโดยประมาณ ค้นหาค่า 2 ในคอลัมน์ A พบค่าที่สูงที่สุดที่น้อยกว่าหรือเท่ากับ 2 ในคอลัมน์ A คือ 1.29 แล้วส่งกลับค่าจากคอลัมน์ B ในแถวเดียวกัน | 1.71 |
ตัวอย่าง HLOOKUP
คัดลอกเซลล์ทั้งหมดในตารางนี้ แล้ววางข้อมูลลงในเซลล์ A1 บนเวิร์กชีตเปล่าใน Excel
เคล็ดลับ
ก่อนที่คุณจะวางข้อมูลลงใน Excel ให้ตั้งค่าความกว้างคอลัมน์สําหรับคอลัมน์ A ถึง C เป็น 250 พิกเซล แล้วคลิก ตัดข้อความ (แท็บ หน้าแรก กลุ่ม การจัดแนว )
| เพลา | ตลับลูกปืน | สลักเกลียว |
|---|---|---|
| 4 | 4 | 9 |
| 5 | 7 | 10 |
| 6 | 8 | 11 |
| สูตร | คำอธิบาย | ผลลัพธ์ |
| =HLOOKUP("เพลา", A1:C4, 2, TRUE) | ค้นหา "เพลา" ในแถวที่ 1 และส่งกลับค่าจากแถวที่ 2 ซึ่งอยู่ในคอลัมน์เดียวกัน (คอลัมน์ A) | 4 |
| =HLOOKUP("ตลับลูกปืน", A1:C4, 3, FALSE) | ค้นหา "ตลับลูกปืน" ในแถวที่ 1 และส่งกลับค่าจากแถวที่ 3 ซึ่งอยู่ในคอลัมน์เดียวกัน (คอลัมน์ B) | 7 |
| =HLOOKUP("B", A1:C4, 3, TRUE) | ค้นหา "B" ในแถวที่ 1 และส่งกลับค่าจากแถวที่ 3 ที่อยู่ในคอลัมน์เดียวกัน เนื่องจากไม่พบค่าที่ตรงกันสําหรับ "B" ค่าที่มากที่สุดในแถว 1 ที่น้อยกว่า "B" จะถูกใช้: "เพลา" ในคอลัมน์ A | 5 |
| =HLOOKUP("สลักเกลียว", A1:C4, 4) | ค้นหา "สลักเกลียว" ในแถวที่ 1 และส่งกลับค่าจากแถวที่ 4 ซึ่งอยู่ในคอลัมน์เดียวกัน (คอลัมน์ C) | 11 |
| =HLOOKUP(3, {1,2,3;"a","b","c";"d","e","f"}, 2, TRUE) | ค้นหาตัวเลข 3 ในค่าคงที่อาร์เรย์ที่มีสามแถว และส่งกลับค่าจากแถวที่ 2 ในคอลัมน์เดียวกัน (ในกรณีนี้คือคอลัมน์ที่สาม) มีแถวของค่าสามแถวในค่าคงที่อาร์เรย์ แต่ละแถวคั่นด้วยเครื่องหมายอัฒภาค (;)) เนื่องจากพบ "c" ในแถวที่ 2 และในคอลัมน์เดียวกับ 3 จึงส่งกลับ "c" | c |
ตัวอย่าง INDEX และ MATCH
ตัวอย่างสุดท้ายนี้ใช้ฟังก์ชัน INDEX และ MATCH ร่วมกันเพื่อส่งกลับหมายเลขใบแจ้งหนี้แรกสุดและวันที่ที่สอดคล้องกันสําหรับแต่ละเมืองในห้าเมือง เนื่องจากวันที่จะถูกส่งกลับเป็นตัวเลข เราจึงใช้ฟังก์ชัน TEXT เพื่อจัดรูปแบบให้เป็นวันที่ ฟังก์ชัน INDEX จะใช้ผลลัพธ์ของฟังก์ชัน MATCH เป็นอาร์กิวเมนต์ การรวมกันของฟังก์ชัน INDEX และ MATCH จะถูกใช้สองครั้งในแต่ละสูตร ก่อนอื่น เพื่อส่งกลับหมายเลขใบแจ้งหนี้ แล้วส่งกลับวันที่
คัดลอกเซลล์ทั้งหมดในตารางนี้ แล้ววางข้อมูลลงในเซลล์ A1 บนเวิร์กชีตเปล่าใน Excel
เคล็ดลับ
ก่อนที่คุณจะวางข้อมูลลงใน Excel ให้ตั้งค่าความกว้างคอลัมน์สําหรับคอลัมน์ A ถึง D เป็น 250 พิกเซล แล้วคลิก ตัดข้อความ (แท็บ หน้าแรก กลุ่ม การจัดแนว )
| ใบแจ้งหนี้ | เมือง | วันที่ใบแจ้งหนี้ | ใบแจ้งหนี้ที่เก่าที่สุดตามชื่อเมือง พร้อมกับวันที่ |
|---|---|---|---|
| 3115 | แอตแลนตา | 4/7/12 | ="แอตแลนตา = "&INDEX($A$2:$C$33,MATCH("แอตแลนตา",$B$2:$B$33,0),1)& ", วันที่ใบแจ้งหนี้: " & TEXT(INDEX($A$2:$C$33,MATCH("แอตแลนตา",$B$2:$B$33,0),3),"m/d/yy") |
| 3137 | แอตแลนตา | 4/9/12 | ="ออสติน = "&INDEX($A$2:$C$33,MATCH("ออสติน",$B$2:$B$33,0),1)& ", วันที่ใบแจ้งหนี้: " & TEXT(INDEX($A$2:$C$33,MATCH("ออสติน",$B$2:$B$33,0),3),"m/d/yy") |
| 3154 | แอตแลนตา | 4/11/12 | ="ดัลลัส = "&INDEX($A$2:$C$33,MATCH("ดัลลัส",$B$2:$B$33,0),1)& ", วันที่ใบแจ้งหนี้: " & TEXT(INDEX($A$2:$C$33,MATCH("ดัลลัส",$B$2:$B$33,0),3),"m/d/yy") |
| 3191 | แอตแลนตา | 4/21/12 | ="นิวออร์ลีนส์ = "&INDEX($A$2:$C$33,MATCH("นิวออร์ลีนส์",$B$2:$B$33,0),1)& ", วันที่ใบแจ้งหนี้: " & TEXT(INDEX($A$2:$C$33,MATCH("นิวออร์ลีนส์",$B$2:$B$33,0),3),"m/d/yy") |
| 3293 | แอตแลนตา | 4/25/12 | ="แทมปา = "&INDEX($A$2:$C$33,MATCH("แทมปา",$B$2:$B$33,0),1)& ", วันที่ใบแจ้งหนี้: " & TEXT(INDEX($A$2:$C$33,MATCH("แทมปา",$B$2:$B$33,0),3),"m/d/yy") |
| 3331 | แอตแลนตา | 4/27/12 | |
| 3350 | แอตแลนตา | 4/28/12 | |
| 3390 | แอตแลนตา | 5/1/12 | |
| 3441 | แอตแลนตา | 5/2/12 | |
| 3517 | แอตแลนตา | 5/8/12 | |
| 3124 | ออสติน | 4/9/12 | |
| 3155 | ออสติน | 4/11/12 | |
| 3177 | ออสติน | 4/19/12 | |
| 3357 | ออสติน | 4/28/12 | |
| 3492 | ออสติน | 5/6/12 | |
| 3316 | ดัลลัส | 4/25/12 | |
| 3346 | ดัลลัส | 4/28/12 | |
| 3372 | ดัลลัส | 5/1/12 | |
| 3414 | ดัลลัส | 5/1/12 | |
| 3451 | ดัลลัส | 5/2/12 | |
| 3467 | ดัลลัส | 5/2/12 | |
| 3474 | ดัลลัส | 5/4/12 | |
| 3490 | ดัลลัส | 5/5/12 | |
| 3503 | ดัลลัส | 5/8/12 | |
| 3151 | นิวออร์ลีนส์ | 4/9/12 | |
| 3438 | นิวออร์ลีนส์ | 5/2/12 | |
| 3471 | นิวออร์ลีนส์ | 5/4/12 | |
| 3160 | แทมปา | 4/18/12 | |
| 3328 | แทมปา | 4/26/12 | |
| 3368 | แทมปา | 4/29/12 | |
| 3420 | แทมปา | 5/1/12 | |
| 3501 | แทมปา | 5/6/12 |
ดูเพิ่มเติม
บัตรอ้างอิงโดยสรุป: ทบทวนเกี่ยวกับ VLOOKUP
ฟังก์ชันการค้นหาและการอ้างอิง (ข้อมูลอ้างอิง)