VBA INDEX MATCH ตามหลายเกณฑ์ใน Excel (3 วิธี)

  • แบ่งปันสิ่งนี้
Hugh West

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

ดาวน์โหลด สมุดงาน

คุณสามารถดาวน์โหลดสมุดงาน Excel แบบฝึกหัดได้ฟรีจากที่นี่

VBA INDEX MATCH Based on Multiple Criteria.xlsm

3 วิธีการด้วย VBA INDEX MATCH ตามเกณฑ์หลายเกณฑ์ใน Excel

ในส่วนต่อไปนี้ เราจะแสดงวิธีดำเนินการ INDEX MATCH ตามเกณฑ์หลายเกณฑ์สำหรับช่วงหนึ่งๆ , สำหรับการเลือกเฉพาะ และ สำหรับตาราง ใน Excel ด้วย VBA .

ด้านบน เรามีชุดข้อมูลที่บทความนี้จะปฏิบัติตาม เรามี ชื่อนักศึกษา , รหัสนักศึกษา, และ คะแนนสอบ ของนักเรียนแต่ละคนในชุดข้อมูล เราจะแยกผลลัพธ์ที่อยู่ในหนึ่งคอลัมน์ตามเงื่อนไขจากอีกสองคอลัมน์ที่เหลือ

เกณฑ์ – 1: ฝัง VBA ด้วย INDEX MATCH สำหรับการค้นหาหลายมิติ (สอง) มิติใน Excel

พิจารณาภาพต่อไปนี้ เราได้จัดเก็บชื่อนักเรียนเฉพาะ “ Edge” ไว้ใน เซลล์G4 ; และคอลัมน์ที่เราจะค้นหา ผลลัพธ์ ใน เครื่องหมายการสอบ ถูกเก็บไว้ใน เซลล์ G5 เราจะค้นหาในคอลัมน์ เครื่องหมายการสอบ และจัดเก็บ เครื่องหมาย ที่ “ ขอบ” มีอยู่ใน เซลล์ G6 .

<0

ขั้นตอนในการค้นหาผลลัพธ์ใน อาร์เรย์สองมิติ ด้วย INDEX และ MATCH ใน Excel ด้วย VBA แสดงไว้ด้านล่าง

ขั้นตอน:

  • ในตอนเริ่มต้น ให้กด Alt + F11 บนแป้นพิมพ์หรือไปที่ แท็บ นักพัฒนา -> Visual Basic เพื่อเปิด Visual Basic Editor .

  • ถัดไป ในหน้าต่างรหัสป๊อปอัป จาก แถบเมนู คลิก แทรก -> โมดูล .

  • จากนั้น คัดลอก โค้ดต่อไปนี้ และ วาง ลงในโค้ด หน้าต่าง
5875

รหัสของคุณพร้อมที่จะทำงานแล้ว

  • ตอนนี้ กด F5 บน แป้นพิมพ์หรือจากแถบเมนู เลือก เรียกใช้ -> เรียกใช้ Sub/UserForm คุณยังสามารถคลิกที่ ไอคอนเรียกใช้ขนาดเล็ก ในแถบเมนูย่อยเพื่อเรียกใช้มาโคร

หลังจากดำเนินการโค้ด ดู gif ด้านล่างเพื่อดูผลลัพธ์

ด้วยเหตุนี้ เครื่องหมาย ที่ “ Edge” จึงอยู่ใน ข้อสอบ 67 ถูกเรียกใน เซลล์ G7

คำอธิบายโค้ด VBA

5222

การกำหนดตัวแปรของแผ่นงาน

1201

จัดเก็บชื่อแผ่นงาน ชื่อแผ่นของเราคือ "สองมิติ" คุณควรระบุชื่อตามสเปรดชีตของคุณ

4307

โค้ดชิ้นนี้เลือกช่วง C5:D14 เป็นช่วงการค้นหา จากนั้นค้นหาการจับคู่ที่จัดเก็บไว้ในเซลล์ G4 ในช่วง B5:B14 และค้นหาการจับคู่ที่จัดเก็บไว้ในเซลล์ G5 ในช่วง C4:D4 และส่งผลลัพธ์ไปยังเซลล์ G6 .

อ่านเพิ่มเติม: วิธีใช้ INDEX MATCH ที่มีหลายเกณฑ์สำหรับช่วงวันที่

เกณฑ์ – 2: ใช้มาโครเพื่อค้นหาค่าที่ตรงกันโดย INDEX ด้วยฟังก์ชันที่ผู้ใช้กำหนด (UDF)

คุณสามารถแยกค่าที่ตรงกันจากชุดข้อมูลด้วย ฟังก์ชันที่ผู้ใช้กำหนด (UDF) จากภาพต่อไปนี้ สิ่งที่เราจะทำคือ เราจะส่ง รหัสนักศึกษา และ คะแนนสอบ ของนักเรียนบางคน และฟังก์ชันจะส่ง ชื่อ ของนักเรียนคนนั้น

มาดูวิธีทำให้สำเร็จสำหรับ ชื่อนักเรียน “ฟินน์” ด้วย VBA .

ขั้นตอน:

  • ตามที่แสดงก่อนหน้านี้ เปิด Visual Basic Editor จากแท็บ นักพัฒนาซอฟต์แวร์ และ แทรก โมดูล ในหน้าต่างโค้ด
  • จากนั้นในหน้าต่างโค้ด คัดลอก โค้ดต่อไปนี้และ วาง โค้ดดังกล่าว
6171

  • อย่าเรียกใช้ รหัสนี้ บันทึก รหัสนี้
  • ตอนนี้ กลับไปที่แผ่นงาน ที่สนใจ เลือกเซลล์ใดก็ได้ ที่คุณต้องการจัดเก็บผลลัพธ์ ในกรณีของเรา มันคือ เซลล์ F5 .
  • ในเซลล์นั้น เขียน UDF คุณเพิ่งสร้างในโค้ด ( MatchByIndex ) และ ส่งรหัสนักศึกษาและเครื่องหมายสอบ ของนักเรียนที่ระบุในวงเล็บของฟังก์ชัน

เป็น เรากำลังพยายามดึงชื่อ “ ฟินน์” จาก ID (105) และ เครื่องหมาย (84) ของเขา ดังนั้นสำหรับกรณีของเรา สูตรจะกลายเป็น <3 =MatchByIndex(105,84)

  • จากนั้น กด Enter .

ดูภาพต่อไปนี้

ใน เซลล์ F5 เราดึงชื่อ “ ฟินน์” สำเร็จแล้ว โดยเพียงแค่ส่ง ID และ เครื่องหมาย ของเขาภายในฟังก์ชันที่เราสร้างขึ้นในโค้ด VBA

คำอธิบายโค้ด VBA

6449

การสร้างฟังก์ชันใหม่และส่งผ่านตัวแปรที่อยู่ภายใน คุณสามารถกำหนดชื่อให้กับฟังก์ชัน

6014

แถวของเราเริ่มต้นจากแถวหมายเลข 4 คุณต้องระบุหมายเลขแถวที่ชุดข้อมูลของคุณเริ่มต้น

8204

การกำหนดตัวแปร

2186

ขั้นแรก กำหนดเวิร์กชีตที่จะทำงานด้วย ชื่อแผ่นงานของเราคือ "UDF" คุณควรระบุชื่อตามสเปรดชีตของคุณ จากนั้นเริ่มค้นหาในช่วง C:D จากแถวแรกที่เรากำหนดไว้จนถึงแถวสุดท้าย

8130

เริ่มวนซ้ำจากแถวแรกไปยังแถวสุดท้าย ถ้าค่าแรกที่เราจะส่งในฟังก์ชันตกในคอลัมน์ C และถ้าค่าที่สองที่เราจะส่งในฟังก์ชันตกในคอลัมน์ D ก็จะส่งกลับ เดอะจับคู่จากคอลัมน์ B มิฉะนั้น ให้ออกจากฟังก์ชัน จบคำสั่งทั้งหมด และไปที่บรรทัดถัดไป

5065

หากเงื่อนไขก่อนหน้านี้ไม่สำเร็จในขณะดำเนินการ ข้อความ "ไม่พบข้อมูล" จะถูกส่งกลับและ รหัสจะออกจากฟังก์ชัน

อ่านเพิ่มเติม: INDEX-MATCH with Multiple Criteria for Partial Text in Excel (2 Ways)

เกณฑ์ – 3: ใช้ VBA เพื่อส่งคืนค่าที่ตรงกันจากตารางที่มีข้อมูลหลายรายการใน Excel

ในส่วนนี้ เราจะเรียนรู้วิธี ส่งคืนค่าที่ตรงกันโดยดัชนีจากตาราง ใน MsgBox ใน VBA Excel

มาดูวิธีแยก Marks จากตารางที่แสดงในของเรา ชุดข้อมูล ( T ชื่อที่ใช้งานได้: TableMatch ) ของนักเรียนบางคนโดยระบุ ชื่อ และ ID ภายในรหัส สำหรับกรณีของเรา ชื่อ และ รหัส จะเป็น ฟินน์ และ 105 ตามลำดับ

ขั้นตอน :

  • ประการแรก เปิด Visual Basic Editor จากแท็บ นักพัฒนาซอฟต์แวร์ และ แทรก a โมดูล ในหน้าต่างรหัส
  • จากนั้น คัดลอก รหัสต่อไปนี้และ วาง ลงในหน้าต่างรหัส
6789

รหัสของคุณ พร้อมที่จะเรียกใช้แล้ว

  • หลังจากนั้น เรียกใช้ รหัสนี้ และดูภาพต่อไปนี้เพื่อดูว่าเกิดอะไรขึ้น

ดังที่คุณเห็นจากภาพด้านบน มีป๊อปอัพ Microsoft Excel ขึ้นกล่องข้อความแสดง Marks: 84 ของ ID: 105 และ Name: Finn ที่เราให้ไว้ในรหัส

<7

คำอธิบายรหัส VBA

7442

การกำหนดตัวแปร

7483

การตั้งชื่อแผ่นงานและชื่อตารางภายในตัวแปร

1847

การจัดเก็บ ค่าการค้นหาและคอลัมน์การค้นหาที่จะค้นหา

9685

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

2258

โยนผลลัพธ์ใน MsgBox

อ่านเพิ่มเติม: ค้นหาและย้อนกลับ ค่าหลายค่ารวมกันเป็นเซลล์เดียวใน Excel

บทสรุป

โดยสรุป บทความนี้แสดงวิธีดำเนินการ INDEX MATCH 3 วิธีที่แตกต่างกัน ในหลายเกณฑ์ ใน Excel ด้วย แมโคร VBA ฉันหวังว่าบทความนี้มีประโยชน์มากสำหรับคุณ อย่าลังเลที่จะถามคำถามเกี่ยวกับหัวข้อ

Hugh West เป็นผู้ฝึกอบรมและนักวิเคราะห์ Excel ที่มีประสบการณ์สูงและมีประสบการณ์มากกว่า 10 ปีในอุตสาหกรรมนี้ เขาสำเร็จการศึกษาระดับปริญญาตรีสาขาการบัญชีและการเงิน และปริญญาโทสาขาบริหารธุรกิจ Hugh มีความหลงใหลในการสอนและได้พัฒนาแนวทางการสอนที่เป็นเอกลักษณ์ซึ่งง่ายต่อการติดตามและเข้าใจ ความรู้ความเชี่ยวชาญของเขาเกี่ยวกับ Excel ช่วยให้นักเรียนและผู้เชี่ยวชาญหลายพันคนทั่วโลกพัฒนาทักษะและความเป็นเลิศในอาชีพการงาน ฮิวจ์แบ่งปันความรู้ของเขากับคนทั้งโลกผ่านบล็อก โดยเสนอบทช่วยสอน Excel ฟรีและการฝึกอบรมออนไลน์เพื่อช่วยให้บุคคลและธุรกิจบรรลุศักยภาพสูงสุดของตนเอง