การวิเคราะห์ข้อมูล Excel - ฟังก์ชันการค้นหา
คุณสามารถใช้ฟังก์ชัน Excel เพื่อ -
- ค้นหาค่าในช่วงข้อมูล - VLOOKUP และ HLOOKUP
- รับค่าหรือการอ้างอิงถึงค่าจากภายในตารางหรือช่วง - INDEX
- รับตำแหน่งสัมพัทธ์ของรายการที่ระบุในช่วงของเซลล์ - MATCH
คุณยังสามารถรวมฟังก์ชันเหล่านี้เพื่อให้ได้ผลลัพธ์ที่ต้องการตามอินพุตที่คุณมี
การใช้ฟังก์ชัน VLOOKUP
ไวยากรณ์ของฟังก์ชัน VLOOKUP คือ
VLOOKUP (lookup_value, table_array, col_index_num, [range_lookup])
ที่ไหน
lookup_value- คือค่าที่คุณต้องการค้นหา Lookup_value อาจเป็นค่าหรือการอ้างอิงไปยังเซลล์ Lookup_value ต้องอยู่ในคอลัมน์แรกของช่วงของเซลล์ที่คุณระบุใน table_array
table_array- คือช่วงของเซลล์ที่ VLOOKUP จะค้นหา lookup_value และค่าที่ส่งคืน table_array ต้องมี
lookup_value ในคอลัมน์แรกและ
ค่าส่งคืนที่คุณต้องการค้นหา
Note- คอลัมน์แรกที่มี lookup_value สามารถเรียงลำดับจากน้อยไปมากหรือไม่ก็ได้ อย่างไรก็ตามผลลัพธ์จะเป็นไปตามลำดับของคอลัมน์นี้
col_index_num- คือหมายเลขคอลัมน์ใน table_array ที่มีค่าส่งคืน ตัวเลขเริ่มต้นด้วย 1 สำหรับคอลัมน์ทางซ้ายสุดของตารางอาร์เรย์
range_lookup- เป็นค่าตรรกะทางเลือกที่ระบุว่าคุณต้องการให้ VLOOKUP ค้นหาการจับคู่แบบตรงทั้งหมดหรือการจับคู่โดยประมาณ range_lookup ได้
ละเว้นซึ่งในกรณีนี้จะถือว่าเป็น TRUE และ VLOOKUP จะพยายามหาค่าที่ตรงกันโดยประมาณ
TRUE ซึ่งในกรณีนี้ VLOOKUP จะพยายามหาค่าที่ตรงกันโดยประมาณ กล่าวอีกนัยหนึ่งคือหากไม่พบการจับคู่แบบตรงทั้งหมดจะส่งคืนค่าที่ใหญ่ที่สุดถัดไปที่น้อยกว่า lookup_value
FALSE ซึ่งในกรณีนี้ VLOOKUP จะพยายามค้นหาการจับคู่แบบตรงทั้งหมด
1 ซึ่งในกรณีนี้ถือว่าเป็น TRUE และ VLOOKUP จะพยายามหาค่าที่ตรงกันโดยประมาณ
0 ซึ่งในกรณีนี้ถือว่าเป็น FALSE และ VLOOKUP พยายามค้นหาการจับคู่แบบตรงทั้งหมด
Note- หากเว้นช่วง range_lookup หรือ TRUE หรือ 1 VLOOKUP จะทำงานได้อย่างถูกต้องก็ต่อเมื่อคอลัมน์แรกใน table_array เรียงลำดับจากน้อยไปมาก มิฉะนั้นอาจส่งผลให้ค่าไม่ถูกต้อง ในกรณีนี้ให้ใช้ FALSE สำหรับ range_lookup
การใช้ฟังก์ชัน VLOOKUP กับ range_lookup TRUE
พิจารณารายชื่อคะแนนนักเรียน คุณสามารถรับเกรดที่สอดคล้องกันด้วย VLOOKUP จากอาร์เรย์ที่มีช่วงเวลาของเครื่องหมายและประเภทการส่งผ่าน
table_array -
โปรดสังเกตว่าเครื่องหมายคอลัมน์แรกตามเกรดที่ได้รับจะเรียงลำดับจากน้อยไปมาก ดังนั้นการใช้ TRUE สำหรับอาร์กิวเมนต์ range_lookup คุณจะได้การจับคู่โดยประมาณซึ่งเป็นสิ่งที่จำเป็น
ตั้งชื่ออาร์เรย์นี้ว่า Grades.
เป็นแนวทางปฏิบัติที่ดีในการตั้งชื่ออาร์เรย์ด้วยวิธีนี้เพื่อที่คุณจะได้ไม่ต้องจำช่วงของเซลล์ ตอนนี้คุณพร้อมที่จะค้นหาเกรดสำหรับรายการเครื่องหมายที่คุณมีดังต่อไปนี้ -
อย่างที่คุณสังเกตได้
col_index_num - ระบุคอลัมน์ของค่าส่งคืนใน table_array คือ 2
ที่ range_lookup เป็นความจริง
คอลัมน์แรกที่มีค่าการค้นหาในเกรด table_array อยู่ในลำดับจากน้อยไปมาก ดังนั้นผลลัพธ์จะถูกต้อง
คุณสามารถรับค่าส่งคืนสำหรับการจับคู่โดยประมาณได้เช่นกัน เช่น VLOOKUP คำนวณดังนี้ -
เครื่องหมาย | ผ่านหมวดหมู่ |
---|---|
<35 | ล้มเหลว |
> = 35 และ <50 | ชั้นสาม |
> = 50 และ <60 | ชั้นสอง |
> = 60 และ <75 | ชั้นหนึ่ง |
> = 75 | ชั้นหนึ่งที่มีความแตกต่าง |
คุณจะได้รับผลลัพธ์ดังต่อไปนี้ -
การใช้ฟังก์ชัน VLOOKUP กับ range_lookup FALSE
พิจารณารายการผลิตภัณฑ์ที่มีรหัสผลิตภัณฑ์และราคาสำหรับผลิตภัณฑ์แต่ละรายการ รหัสผลิตภัณฑ์และราคาจะถูกเพิ่มไว้ท้ายรายการเมื่อใดก็ตามที่มีการเปิดตัวผลิตภัณฑ์ใหม่ ซึ่งหมายความว่ารหัสผลิตภัณฑ์ไม่จำเป็นต้องเรียงลำดับจากน้อยไปมาก รายการสินค้าอาจเป็นดังที่แสดงด้านล่าง -
table_array -
ตั้งชื่ออาร์เรย์นี้ว่า ProductInfo
คุณสามารถรับราคาของผลิตภัณฑ์ที่ระบุรหัสผลิตภัณฑ์ด้วยฟังก์ชัน VLOOKUP เนื่องจากรหัสผลิตภัณฑ์อยู่ในคอลัมน์แรก ราคาอยู่ในคอลัมน์ 3 ดังนั้น col_index_ num ควรเป็น 3
- ใช้ฟังก์ชัน VLOOKUP กับ range_lookup เป็น TRUE
- ใช้ฟังก์ชัน VLOOKUP กับ range_lookup เป็น FALSE
คำตอบที่ถูกต้องมาจากอาร์เรย์ ProductInfo คือ 171.65 คุณสามารถตรวจสอบผลลัพธ์
คุณสังเกตว่าคุณมี -
- ผลลัพธ์ที่ถูกต้องเมื่อ range_lookup เป็น FALSE และ
- ผลลัพธ์ที่ไม่ถูกต้องเมื่อ range_lookup เป็น TRUE
เนื่องจากคอลัมน์แรกในอาร์เรย์ ProductInfo ไม่ได้เรียงลำดับจากน้อยไปมาก ดังนั้นอย่าลืมใช้ FALSE เมื่อใดก็ตามที่ข้อมูลไม่ได้รับการจัดเรียง
การใช้ฟังก์ชัน HLOOKUP
คุณสามารถใช้ได้ HLOOKUP ฟังก์ชันถ้าข้อมูลอยู่ในแถวแทนที่จะเป็นคอลัมน์
ตัวอย่าง
ให้เรานำตัวอย่างข้อมูลผลิตภัณฑ์ สมมติว่าอาร์เรย์มีลักษณะดังนี้ -
ตั้งชื่อ Array ProductRange นี้ คุณสามารถค้นหาราคาของผลิตภัณฑ์ที่ระบุรหัสผลิตภัณฑ์ด้วยฟังก์ชัน HLOOKUP
ไวยากรณ์ของฟังก์ชัน HLOOKUP คือ
HLOOKUP (lookup_value, table_array, row_index_num, [range_lookup])
ที่ไหน
lookup_value - คือค่าที่พบในแถวแรกของตาราง
table_array - เป็นตารางข้อมูลที่ใช้ค้นหาข้อมูล
row_index_num - คือหมายเลขแถวใน table_array ซึ่งจะส่งคืนค่าที่ตรงกัน
range_lookup - เป็นค่าตรรกะที่ระบุว่าคุณต้องการให้ HLOOKUP ค้นหาการจับคู่แบบตรงทั้งหมดหรือการจับคู่โดยประมาณ
range_lookup เป็นไปได้
ละเว้นซึ่งในกรณีนี้จะถือว่าเป็น TRUE และ HLOOKUP จะพยายามหาค่าที่ตรงกันโดยประมาณ
TRUE ซึ่งในกรณีนี้ HLOOKUP จะพยายามหาค่าที่ตรงกันโดยประมาณ กล่าวอีกนัยหนึ่งคือหากไม่พบการจับคู่แบบตรงทั้งหมดจะส่งคืนค่าที่ใหญ่ที่สุดถัดไปที่น้อยกว่า lookup_value
FALSE ซึ่งในกรณีนี้ HLOOKUP จะพยายามค้นหาการจับคู่แบบตรงทั้งหมด
1 ซึ่งในกรณีนี้ถือว่าเป็น TRUE และ HLOOKUP จะพยายามหาค่าที่ตรงกันโดยประมาณ
0 ซึ่งในกรณีนี้จะถือว่าเป็น FALSE และ HLOOKUP พยายามค้นหาการจับคู่แบบตรงทั้งหมด
Note- ถ้า range_lookup เป็นละเว้นหรือ TRUE หรือ 1 HLOOKUP จะทำงานได้อย่างถูกต้องก็ต่อเมื่อคอลัมน์แรกใน table_array เรียงลำดับจากน้อยไปมาก มิฉะนั้นอาจส่งผลให้ค่าไม่ถูกต้อง ในกรณีนี้ให้ใช้ FALSE สำหรับ range_lookup
การใช้ฟังก์ชัน HLOOKUP กับ range_lookup FALSE
คุณสามารถรับราคาของผลิตภัณฑ์ที่ระบุรหัสผลิตภัณฑ์ด้วยฟังก์ชัน HLOOKUP เนื่องจากรหัสผลิตภัณฑ์อยู่ในแถวแรก ราคาอยู่ในแถวที่ 3 ดังนั้น row_index_ num ควรเป็น 3
- ใช้ฟังก์ชัน HLOOKUP กับ range_lookup เป็น TRUE
- ใช้ฟังก์ชัน HLOOKUP กับ range_lookup เป็น FALSE
คำตอบที่ถูกต้องจากอาร์เรย์ ProductRange คือ 171.65 คุณสามารถตรวจสอบผลลัพธ์
คุณสังเกตว่าในกรณีของ VLOOKUP คุณได้รับ
ผลลัพธ์ที่ถูกต้องเมื่อ range_lookup เป็น FALSE และ
ผลลัพธ์ที่ไม่ถูกต้องเมื่อ range_lookup เป็น TRUE
เนื่องจากแถวแรกในอาร์เรย์ ProductRange ไม่ได้เรียงลำดับจากน้อยไปมาก ดังนั้นอย่าลืมใช้ FALSE เมื่อใดก็ตามที่ข้อมูลไม่ได้รับการจัดเรียง
การใช้ฟังก์ชัน HLOOKUP กับ range_lookup TRUE
พิจารณาตัวอย่างของคะแนนนักเรียนที่ใช้ใน VLOOKUP สมมติว่าคุณมีข้อมูลเป็นแถวแทนที่จะเป็นคอลัมน์ดังแสดงในตารางด้านล่าง -
table_array -
ตั้งชื่ออาร์เรย์นี้ว่า GradesRange
โปรดทราบว่าเครื่องหมายแถวแรกตามเกรดที่ได้รับจะเรียงลำดับจากน้อยไปมาก ดังนั้นการใช้ HLOOKUP กับ TRUE สำหรับอาร์กิวเมนต์ range_lookup คุณจะได้รับเกรดที่มีการจับคู่โดยประมาณและนั่นคือสิ่งที่จำเป็น
อย่างที่คุณสังเกตได้
row_index_num - ระบุคอลัมน์ของค่าส่งคืนใน table_array คือ 2
ที่ range_lookup เป็นความจริง
คอลัมน์แรกที่มีค่าการค้นหาใน table_array Grades อยู่ในลำดับจากน้อยไปมาก ดังนั้นผลลัพธ์จะถูกต้อง
คุณสามารถรับค่าส่งคืนสำหรับการจับคู่โดยประมาณได้เช่นกัน เช่น HLOOKUP คำนวณดังนี้ -
เครื่องหมาย | <35 | > = 35 และ <50 | > = 50 และ <60 | > = 60 และ <75 | > = 75 |
---|---|---|---|---|---|
ผ่านหมวดหมู่ | ล้มเหลว | ชั้นสาม | ชั้นสอง | ชั้นหนึ่ง | ชั้นหนึ่งที่มีความแตกต่าง |
คุณจะได้รับผลลัพธ์ดังต่อไปนี้ -
การใช้ฟังก์ชัน INDEX
เมื่อคุณมีอาร์เรย์ของข้อมูลคุณสามารถดึงค่าในอาร์เรย์ได้โดยระบุหมายเลขแถวและหมายเลขคอลัมน์ของค่านั้นในอาร์เรย์
พิจารณาข้อมูลการขายต่อไปนี้ซึ่งคุณจะพบยอดขายในแต่ละภูมิภาคเหนือใต้ตะวันออกและตะวันตกโดยพนักงานขายที่มีรายชื่ออยู่
- ตั้งชื่ออาร์เรย์เป็น SalesData
เมื่อใช้ฟังก์ชัน INDEX คุณจะพบ -
- การขายของพนักงานขายใด ๆ ในบางภูมิภาค
- ยอดขายรวมในภูมิภาคโดยพนักงานขายทั้งหมด
- ยอดขายทั้งหมดโดยพนักงานขายในทุกภูมิภาค
คุณจะได้รับผลลัพธ์ดังต่อไปนี้ -
สมมติว่าคุณไม่ทราบหมายเลขแถวสำหรับพนักงานขายและหมายเลขคอลัมน์สำหรับภูมิภาค จากนั้นคุณต้องหาหมายเลขแถวและหมายเลขคอลัมน์ก่อนที่คุณจะดึงค่าด้วยฟังก์ชันดัชนี
คุณสามารถทำได้ด้วยฟังก์ชัน MATCH ตามที่อธิบายไว้ในหัวข้อถัดไป
การใช้ฟังก์ชัน MATCH
หากคุณต้องการตำแหน่งของรายการในช่วงคุณสามารถใช้ฟังก์ชัน MATCH คุณสามารถรวมฟังก์ชัน MATCH และ INDEX ได้ดังนี้ -
คุณจะได้รับผลลัพธ์ดังต่อไปนี้ -