Computer >> คอมพิวเตอร์ >  >> ซอฟต์แวร์ >> Office

วิธีใช้ฟังก์ชัน INDEX และ MATCH ใน Excel

ข้อควรรู้

  • สามารถใช้ฟังก์ชัน INDEX เพียงอย่างเดียวได้ แต่การซ้อนฟังก์ชัน MATCH ไว้ภายในจะสร้างการค้นหาขั้นสูง
  • ฟังก์ชันที่ซ้อนกันนี้มีความยืดหยุ่นมากกว่า VLOOKUP และสามารถให้ผลลัพธ์ได้เร็วกว่า

บทความนี้อธิบายวิธีใช้ฟังก์ชัน INDEX และ MATCH ร่วมกันใน Excel ทุกเวอร์ชัน รวมถึง Excel 2019 และ Microsoft 365

ฟังก์ชัน INDEX และ MATCH คืออะไร?

INDEX และ MATCH เป็นฟังก์ชันการค้นหาของ Excel แม้ว่าจะเป็นฟังก์ชัน 2 ฟังก์ชันที่แยกจากกันโดยสิ้นเชิง แต่ก็สามารถนำมารวมกันเพื่อสร้างสูตรขั้นสูงได้

ฟังก์ชัน INDEX ส่งคืนค่าหรือการอ้างอิงไปยังค่าจากภายในการเลือกเฉพาะ ตัวอย่างเช่น สามารถใช้เพื่อค้นหาค่าในแถวที่สองของชุดข้อมูล หรือในแถวที่ห้าและคอลัมน์ที่สาม

แม้ว่า INDEX จะสามารถใช้ได้เพียงลำพัง แต่การซ้อน MATCH ในสูตรจะทำให้มีประโยชน์มากขึ้นอีกเล็กน้อย ฟังก์ชัน MATCH จะค้นหารายการที่ระบุในช่วงของเซลล์ แล้วส่งกลับตำแหน่งสัมพัทธ์ของรายการในช่วง ตัวอย่างเช่น สามารถใช้เพื่อกำหนดว่าชื่อใดชื่อหนึ่งเป็นรายการที่สามในรายชื่อ

วิธีใช้ฟังก์ชัน INDEX และ MATCH ใน Excel

INDEX และ MATCH ไวยากรณ์และอาร์กิวเมนต์

นี่เป็นวิธีที่ต้องเขียนฟังก์ชันทั้งสองเพื่อให้ Excel เข้าใจ:

=ดัชนี (อาร์เรย์ , row_num , [column_num ])

  • อาร์เรย์ คือช่วงของเซลล์ที่สูตรจะใช้ อาจเป็นแถวและคอลัมน์ได้ตั้งแต่หนึ่งแถวขึ้นไป เช่น A1:D5 มันจำเป็น
  • row_num คือแถวในอาร์เรย์ที่จะคืนค่า เช่น 2 หรือ 18 ยกเว้น column_num มีอยู่
  • column_num เป็นคอลัมน์ในอาร์เรย์ที่จะคืนค่า เช่น 1 หรือ 9 หรือไม่ก็ได้

=MATCH (lookup_value , lookup_array , [match_type ])

  • lookup_value คือค่าที่คุณต้องการจับคู่ใน lookup_array . อาจเป็นตัวเลข ข้อความ หรือค่าตรรกะที่พิมพ์ด้วยตนเองหรืออ้างอิงผ่านการอ้างอิงเซลล์ นี่เป็นสิ่งจำเป็น
  • lookup_array คือช่วงของเซลล์ที่จะมองผ่าน อาจเป็นแถวเดียวหรือคอลัมน์เดียว เช่น A2:D2 หรือ G1:G45 นี่เป็นสิ่งจำเป็น
  • match_type สามารถ -1 , 0 , หรือ 1 . ระบุวิธี lookup_value จะจับคู่กับค่าใน lookup_array (ดูด้านล่าง). 1 เป็นค่าเริ่มต้นหากละเว้นอาร์กิวเมนต์นี้
ประเภทการจับคู่ที่จะใช้ ประเภทการจับคู่ มันใช้ทำอะไร กฎ ตัวอย่าง 1ค้นหาค่าที่ใหญ่ที่สุดที่น้อยกว่าหรือเท่ากับ lookup_value . lookup_array ต้องเรียงลำดับค่าจากน้อยไปมาก (เช่น -2, -1, 0, 1, 2; หรือ A-Z; หรือ FALSE, TRUE.lookup_value คือ 25 แต่หายไปจาก lookup_array ดังนั้น ตำแหน่งของตัวเลขที่น้อยที่สุดถัดไป เช่น 22 จะถูกส่งกลับแทน 0ค้นหาค่าแรกที่เท่ากับ lookup_value . lookup_array ค่าจะอยู่ในลำดับใดก็ได้lookup_value คือ 25 ดังนั้นจึงส่งกลับตำแหน่ง 25.-1ค้นหาค่าที่น้อยที่สุดที่มากกว่าหรือเท่ากับ lookup_value .lookup_array ค่าต้องเรียงลำดับจากมากไปหาน้อย (เช่น 2, 1, 0, -1, -2).lookup_value คือ 25 แต่หายไปจาก lookup_array ดังนั้น ตำแหน่งของตัวเลขที่มากที่สุดรองลงมา เช่น 34 จะถูกส่งกลับแทน

ใช้ 1 หรือ -1 สำหรับเวลาที่คุณต้องการเรียกใช้การค้นหาโดยประมาณตามมาตราส่วน เช่น เมื่อต้องจัดการกับตัวเลขและเมื่อการประมาณนั้นใช้ได้ แต่จำไว้ว่าถ้าคุณไม่ระบุ match_type , 1 จะเป็นค่าเริ่มต้น ซึ่งอาจบิดเบือนผลลัพธ์หากคุณต้องการการจับคู่แบบตรงทั้งหมด

ตัวอย่าง INDEX และ MATCH สูตร

ก่อนที่เราจะดูวิธีรวม INDEX และ MATCH ให้เป็นสูตรเดียว เราต้องเข้าใจว่าฟังก์ชันเหล่านี้ทำงานอย่างไร

ตัวอย่างดัชนี

=INDEX(A1:B2,2,2)
=INDEX(A1:B1,1)
=INDEX(2:2,1)
=INDEX(B1:B2,1)
วิธีใช้ฟังก์ชัน INDEX และ MATCH ใน Excel

ในตัวอย่างนี้แรก มีสี่สูตร INDEX ที่เราสามารถใช้เพื่อรับค่าต่างๆ ได้:

  • =INDEX(A1:B2,2,2) ดูผ่าน A1:B2 เพื่อค้นหาค่าในคอลัมน์ที่สองและแถวที่สอง ซึ่งก็คือ Stacy .
  • =INDEX(A1:B1,1) มองผ่าน A1:B1 เพื่อค้นหาค่าในคอลัมน์แรก ซึ่งก็คือ Jon .
  • =INDEX(2:2,1) ดูทุกอย่างในแถวที่สองเพื่อค้นหาค่าในคอลัมน์แรก ซึ่งก็คือ Tim
  • =INDEX(B1:B2,1) จะดูผ่าน B1:B2 เพื่อค้นหาค่าในแถวแรก ซึ่งก็คือ Amy .

จับคู่ตัวอย่าง

=MATCH("Stacy",A2:D2,0)
=MATCH(14,D1:D2)
=MATCH(14,D1:D2,-1)
=MATCH(13,A1:D1,0)
วิธีใช้ฟังก์ชัน INDEX และ MATCH ใน Excel

ต่อไปนี้คือตัวอย่างง่ายๆ สี่ตัวอย่างของฟังก์ชัน MATCH:

  • =MATCH("สเตซี่",A2:D2,0) กำลังค้นหา สเตซี่ ในช่วง A2:D2 และส่งคืน 3 เป็นผล.
  • =MATCH(14,D1:D2) กำลังค้นหา 14 ในช่วง D1:D2 แต่เนื่องจากไม่พบในตาราง MATCH จึงค้นหารายการถัดไป ค่าสูงสุดที่น้อยกว่าหรือเท่ากับ 14 ซึ่งในกรณีนี้คือ 13 ซึ่งอยู่ในตำแหน่ง 1 ของ lookup_array .
  • =MATCH(14,D1:D2,-1) เหมือนกับสูตรด้านบน แต่เนื่องจากอาร์เรย์ไม่เรียงลำดับจากมากไปหาน้อย เช่น -1 ต้องการ เราได้รับข้อผิดพลาด
  • =MATCH(13,A1:D1,0) กำลังมองหา 13 ในแถวแรกของแผ่นงาน ซึ่งส่งคืน 4 เนื่องจากเป็นรายการที่สี่ในอาร์เรย์นี้

ตัวอย่าง INDEX-MATCH

ต่อไปนี้คือตัวอย่างสองตัวอย่างที่เราสามารถรวม INDEX และ MATCH ไว้ในสูตรเดียวได้:

ค้นหาการอ้างอิงเซลล์ในตาราง

=INDEX(B2:B5,MATCH(F1,A2:A5))
วิธีใช้ฟังก์ชัน INDEX และ MATCH ใน Excel

ตัวอย่างนี้ซ้อนสูตร MATCH ภายในสูตร INDEX เป้าหมายคือการระบุสีของสินค้าโดยใช้หมายเลขสินค้า

หากคุณดูที่รูปภาพ คุณจะเห็นในแถว "แยก" ว่าสูตรจะเขียนอย่างไร แต่เนื่องจากเรากำลังซ้อนสูตรอยู่ นี่คือสิ่งที่จะเกิดขึ้น:

  • MATCH(F1,A2:A5) กำลังมองหา F1 ค่า (8795) ในชุดข้อมูล A2:A5 . ถ้าเรานับคอลัมน์เราจะเห็นว่าเป็น 2 นั่นคือสิ่งที่ฟังก์ชัน MATCH เพิ่งคิดออก
  • อาร์เรย์ INDEX คือ B2:B5 เนื่องจากเรากำลังมองหาค่าในคอลัมน์นั้นในที่สุด
  • ฟังก์ชัน INDEX สามารถเขียนใหม่เช่นนี้ตั้งแต่ 2 คือสิ่งที่ MATCH พบ:INDEX(B2:B5, 2, [column_num]) .
  • ตั้งแต่ column_num เป็นทางเลือก เราสามารถลบออกเพื่อให้เหลือสิ่งนี้:INDEX(B2:B5,2) .
  • ตอนนี้ก็เหมือนกับสูตร INDEX ปกติที่เราหาค่าของรายการที่สองใน B2:B5 ซึ่งเป็น สีแดง .

ค้นหาตามแถวและส่วนหัวของคอลัมน์

=INDEX(B2:E13,MATCH(G1,A2:A13,0),MATCH(G2,B1:E1,0))
วิธีใช้ฟังก์ชัน INDEX และ MATCH ใน Excel

ในตัวอย่างนี้ของ MATCH และ INDEX เรากำลังค้นหาแบบสองทาง แนวคิดคือการดูว่าเราทำเงินได้เท่าไหร่จาก สีเขียว รายการใน พฤษภาคม . สิ่งนี้คล้ายกับตัวอย่างด้านบนจริงๆ แต่มีสูตร MATCH พิเศษซ้อนอยู่ใน INDEX

  • MATCH(G1,A2:A13,0) เป็นข้อแรกที่แก้ในสูตรนี้ มันกำลังมองหา G1 (คำว่า "เมย์") ใน A2:A13 เพื่อให้ได้ค่าเฉพาะ เราไม่เห็นนี่ แต่มันคือ 5 .
  • MATCH(G2,B1:E1,0) เป็นสูตร MATCH ที่สอง และคล้ายกับสูตรแรกจริงๆ แต่กำลังมองหา G2 แทน (คำว่า "สีเขียว") ในส่วนหัวของคอลัมน์ที่ B1:E1 . อันนี้แก้ไขเป็น 3 .
  • ตอนนี้เราสามารถเขียนสูตร INDEX ใหม่ในลักษณะนี้เพื่อให้เห็นภาพว่าเกิดอะไรขึ้น:=INDEX(B2:E13,5,3) . นี่กำลังดูทั้งตาราง B2:E13 สำหรับแถวที่ห้าและคอลัมน์ที่สาม ซึ่งส่งคืน $180 .

กฎการจับคู่และดัชนี

มีหลายสิ่งที่ควรคำนึงถึงเมื่อเขียนสูตรด้วยฟังก์ชันเหล่านี้:

  • MATCH ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ดังนั้นตัวพิมพ์ใหญ่และตัวพิมพ์เล็กจะถือว่าเหมือนกันเมื่อจับคู่ค่าข้อความ
  • MATCH คืนค่า #N/A ด้วยเหตุผลหลายประการ:ถ้า match_type คือ 0 และ lookup_value ไม่พบหาก match_type คือ -1 และ lookup_array ไม่เรียงลำดับจากมากไปหาน้อย ถ้า match_type คือ 1 และ lookup_array ไม่เรียงลำดับจากน้อยไปหามาก และหาก lookup_array ไม่ใช่แถวหรือคอลัมน์เดียว
  • คุณสามารถใช้อักขระตัวแทนใน lookup_value อาร์กิวเมนต์ if match_type คือ 0 และ lookup_value เป็นสตริงข้อความ เครื่องหมายคำถามจะจับคู่อักขระตัวเดียวและเครื่องหมายดอกจันจะตรงกับลำดับของอักขระใดๆ (เช่น =MATCH("Jo*",1:1,0) ). หากต้องการใช้ MATCH เพื่อค้นหาเครื่องหมายคำถามหรือเครื่องหมายดอกจัน ให้พิมพ์ ~ ก่อน
  • INDEX คืนค่า #REF! ถ้า row_num และ column_num อย่าชี้ไปที่เซลล์ภายในอาร์เรย์

ฟังก์ชัน Excel ที่เกี่ยวข้อง

ฟังก์ชัน MATCH คล้ายกับ LOOKUP แต่ MATCH จะคืนค่า ตำแหน่ง ของสินค้าแทนตัวสินค้าเอง

VLOOKUP เป็นฟังก์ชันการค้นหาอื่นที่คุณสามารถใช้ได้ใน Excel แต่ไม่เหมือน MATCH ซึ่งต้องใช้ INDEX สำหรับการค้นหาขั้นสูง สูตร VLOOKUP ต้องการเพียงฟังก์ชันเดียวเท่านั้น