Excel VBA: วิธีกรองด้วยหลายเกณฑ์ในอาร์เรย์ (7 วิธี)

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

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

ดังนั้น เรามาเริ่มบทความหลักกัน

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

ตัวกรองที่มีหลายเกณฑ์.xlsm

7 วิธีในการกรองที่มีหลายเกณฑ์ในอาร์เรย์โดยใช้ Excel VBA

ในชุดข้อมูลต่อไปนี้ เรามีบันทึกคะแนนที่สอดคล้องกับชื่อของนักเรียนและรหัสของนักเรียน เราจะพยายามกรองชุดข้อมูลนี้ตามเกณฑ์ต่างๆ เป็นอาร์เรย์โดยใช้โค้ดบางรหัส

เราใช้เวอร์ชัน Microsoft Excel 365 ที่นี่ คุณ สามารถใช้เวอร์ชันอื่นได้ตามความสะดวกของคุณ

วิธีที่ 1: กรองด้วยหลายเกณฑ์เป็นข้อความในอาร์เรย์

ที่นี่ เราจะพยายามกรองชุดข้อมูลต่อไปนี้ตาม ชื่อนักเรียน คอลัมน์สำหรับหลายเกณฑ์ที่มีสตริง เอมิลี่ , แดเนียล และ กาเบรียล <10 ในอาร์เรย์

ขั้นตอนที่ 01 :

➤ ไปที่ ผู้พัฒนา แท็บ >> Visual Basic ตัวเลือก

จากนั้น Visual Basic Editor จะเปิดขึ้น

➤ ไปที่ แทรก แท็บ >> โมดูล ตัวเลือก

หลังจากนั้น โมดูล จะเป็นสร้างแล้ว

Step-02 :

➤ เขียนโค้ดต่อไปนี้

5359

ที่นี่ เราประกาศว่า ชื่อส่วนหัวในช่วง B3:D3 ซึ่งเราจะใช้ตัวกรองและ ฟิลด์:=2 คือหมายเลขคอลัมน์ของช่วงนี้ตามที่เราจะทำกระบวนการกรองนี้

สุดท้าย เราได้กำหนดเกณฑ์เป็นอาร์เรย์สำหรับการประกาศชื่อนักเรียนหลายคน เช่น Emily , Daniel , และ กาเบรียล .

➤ กด F5 .

จากนั้น คุณ จะมีการกรองชุดข้อมูลสำหรับหลายเกณฑ์เพื่อแสดงชื่อของนักเรียนและ รหัส และ เครื่องหมาย สำหรับนักเรียน เอมิลี่ , แดเนียล และ กาเบรียล .

<18

อ่านเพิ่มเติม: กรองหลายเกณฑ์ใน Excel (4 วิธีที่เหมาะสม)

วิธีที่ 2: กรองด้วยเกณฑ์หลายตัวเลขในอาร์เรย์โดยใช้ Excel VBA

ที่นี่ เราจะกรองชุดข้อมูลต่อไปนี้สำหรับรหัส 101135 , 10 1137 และ 101138 โดยใช้ตัวเลขเหล่านี้เป็นเกณฑ์หลายตัวในอาร์เรย์

ขั้นตอน :

➤ ทำตาม ขั้นตอน-01 ของ วิธีที่ 1 .

➤ เขียนโค้ดต่อไปนี้

7654

ที่นี่ เราประกาศชื่อส่วนหัวในช่วง B3:D3 ซึ่งเราจะใช้ตัวกรอง และ ฟิลด์:=2 เป็นหมายเลขคอลัมน์ของช่วงนี้ตามที่เรา จะทำการกรองนี้กระบวนการ

สุดท้าย เราได้กำหนดเกณฑ์เป็นอาร์เรย์สำหรับการประกาศรหัสนักเรียนหลายรายการ เช่น 101135 , 101137 และ 101138 และเราได้วางไว้ในเครื่องหมายจุลภาคกลับหัวเพื่อระบุเป็นสตริง เนื่องจาก ตัวกรองอัตโนมัติ จะใช้ได้กับอาร์เรย์ของสตริงเท่านั้น<3

➤ กด F5 .

หลังจากนั้น คุณจะได้ชื่อและคะแนนของนักเรียนที่มีรหัส 101135 , 101137 และ 101138

อ่านเพิ่มเติม: VBA เพื่อรับค่าที่ไม่ซ้ำจากคอลัมน์ไปยังอาร์เรย์ใน Excel (3 เกณฑ์)

วิธีที่ 3: การตั้งค่าหลายเกณฑ์ในช่วงสำหรับใช้งาน เป็นอาร์เรย์

ที่นี่ เราได้ระบุเกณฑ์ในคอลัมน์ รายการ ที่มีรหัส 101134 , 101135 และ 101136 ตามที่เราจะทำกระบวนการกรองของเรา

ขั้นตอน :

➤ ทำตาม Step-01 of Method-1 .

➤ เขียนโค้ดต่อไปนี้

4210

ที่นี่ เรามีเดค ared ID_range , k เป็น ตัวแปร และ ID_range เป็นอาร์เรย์ที่จะเก็บหลายเกณฑ์ และ k เป็น การเพิ่มตั้งแต่ขีดจำกัดล่างไปจนถึงขีดจำกัดบนของอาร์เรย์นี้ สำหรับการมีขีดจำกัดล่างและขีดจำกัดบน เราใช้ ฟังก์ชัน LBOUND และ ฟังก์ชัน UBOUND ตามลำดับ

ฟังก์ชัน FOR วนซ้ำ ใช้สำหรับแปลง ค่าอื่นที่ไม่ใช่สตริงในอาร์เรย์เป็นสตริงโดยใช้ ฟังก์ชัน CStr สุดท้าย เราได้ใช้อาร์เรย์นี้เป็น เกณฑ์ 1 .

➤ กด F5 .

หลังจากนั้น คุณ จะได้ชื่อและคะแนนของนักเรียนที่มีรหัส 101134 , 101135 และ 101136 .

อ่านเพิ่มเติม: กรองคอลัมน์ต่างๆ ตามหลายเกณฑ์ใน Excel VBA

การอ่านที่คล้ายกัน

  • วิธีกรองค่าที่ไม่ซ้ำใน Excel (8 วิธีง่ายๆ)
  • ดำเนินการกรองแบบกำหนดเองใน Excel (5 วิธี)
  • คำนวณค่าเฉลี่ยของอาร์เรย์ด้วย VBA (มาโคร, UDF และ UserForm)
  • ทางลัดสำหรับตัวกรอง Excel (3 การใช้งานด่วน พร้อมตัวอย่าง)

วิธีที่ 4: การใช้ฟังก์ชัน SPLIT และ JOIN สำหรับการสร้าง Array ที่มีหลายเกณฑ์

ที่นี่ เราจะใช้รายการต่อไปนี้ใน รายการ คอลัมน์เป็นอาร์เรย์ และสำหรับการกรองชุดข้อมูลอย่างถูกต้อง เราจะใช้ ฟังก์ชัน SPLIT , ฟังก์ชัน JOIN และ ฟังก์ชัน TRANSPOSE ใน VBA รหัส

ขั้นตอน :

➤ ติดตาม ต่ำ Step-01 ของ Method-1 .

➤ เขียนโค้ดต่อไปนี้

7116

ที่นี่ TRANSPOSE จะแปลง 2D อาร์เรย์ลงในอาร์เรย์ 1D มิฉะนั้น ตัวกรองอัตโนมัติ จะไม่ทำงาน JOIN จะรวมแต่ละค่าลงในอาร์เรย์ของสตริง และสุดท้าย SPLIT จะแยกย่อยแต่ละสตริงเพื่อให้อินพุตแยกเป็นเกณฑ์สำหรับการกรองชุดข้อมูล

➤ กด F5 .

สุดท้าย คุณจะได้ชื่อและเครื่องหมายของ นักเรียนที่มีรหัส 101134 , 101135 และ 101136

อ่านเพิ่มเติม: วิธีแยกสตริงออกเป็นอาร์เรย์ใน VBA (3 วิธี)

วิธีที่ 5 : กรองด้วยเกณฑ์หลายรายการในลูปสำหรับอาร์เรย์ด้วย VBA

ในส่วนนี้ เราจะกรองชุดข้อมูลต่อไปนี้ตามคอลัมน์ รหัสนักศึกษา สำหรับหลายคอลัมน์ เกณฑ์ที่ระบุไว้ใน รายการ คอลัมน์

ขั้นตอน :

➤ ปฏิบัติตาม ขั้นตอน- 01 ของ เมธอด-1 .

➤ เขียนโค้ดต่อไปนี้

7022

ที่นี่ เราได้ประกาศ k เป็น จำนวนเต็ม , ID_range(100) เป็น สตริง โดยที่ ID_range เป็นอาร์เรย์ที่จะเก็บค่าได้มากถึง 100 ในการระบุค่าสำหรับอาร์เรย์นี้ เราได้ใช้ FOR วนซ้ำ สำหรับ k จาก 4 ถึง 6 เป็นหมายเลขแถวของ รายการ คอลัมน์ และ F เป็นชื่อคอลัมน์

สุดท้าย เราใช้อาร์เรย์นี้เป็น เกณฑ์ 1 สำหรับ ตัวกรองอัตโนมัติ .

➤ กด F5 .

ในที่สุด คุณจะได้ชื่อและคะแนนของนักเรียนที่มีรหัส 101134 , 101135 และ 101136

อ่านเพิ่มเติม: กรองหลายเกณฑ์ใน Excel ด้วย VBA (ทั้ง AND และ ORTypes)

วิธีที่ 6: การใช้เนมเรนจ์สำหรับหลายเกณฑ์

ที่นี่ เราได้แสดงรายชื่อนักเรียนบางส่วนในคอลัมน์ รายชื่อ และตั้งชื่อสิ่งนี้ อยู่ในช่วง นักเรียน การใช้ช่วงที่มีชื่อนี้ เราจะกำหนดอาร์เรย์ที่จะมีหลายเกณฑ์สำหรับคุณลักษณะ กรองอัตโนมัติ

ขั้นตอน :<3

➤ ทำตาม Step-01 of Method-1 .

➤ เขียนโค้ดต่อไปนี้

6703

ที่นี่ เราได้ประกาศ Student_range , k เป็น ตัวแปร และใช้ ฟังก์ชัน TRANSPOSE เพื่อแปลงอาร์เรย์ 2D ของช่วงที่ตั้งชื่อ Student ลงในอาร์เรย์ 1D แล้วจัดเก็บไว้ใน Student_range จากนั้น ใช้เป็น เกณฑ์1 สำหรับ ตัวกรองอัตโนมัติ เมธอด

➤ กด F5 .

จากนั้น คุณจะต้องกรองชุดข้อมูลตามเกณฑ์ต่างๆ เพื่อแสดงชื่อของนักเรียนและ รหัสประจำตัว และ เครื่องหมาย สำหรับนักเรียน เจฟเฟอร์สัน , เอมิลี่ และ ซาร่า

เนื้อหาที่เกี่ยวข้อง: VBA เพื่อย้ายอาร์เรย์ใน Excel (3 วิธี)

วิธีที่ 7: กรองตารางที่มีหลายเกณฑ์ในอาร์เรย์

ที่นี่ เรามี ตาราง ต่อไปนี้ซึ่งมีชื่อว่า Table1 และใช้ Excel VBA เราจะพยายามกรองตารางนี้ตามชื่อ เอมิลี่ , แดเนียล และ กาเบรียล เป็นหลายเกณฑ์ในอาร์เรย์

ขั้นตอน :

➤ ทำตาม ขั้นตอน-01 ของ วิธีการ-1 .

➤ เขียนโค้ดต่อไปนี้

6450

ที่นี่ ListObjects(“Table1”) ใช้สำหรับกำหนดตาราง Table1 , Field:=2 สำหรับตั้งค่าคอลัมน์ที่สองของช่วงนี้เป็นฐานของกระบวนการกรอง และสุดท้าย เราได้กำหนดอาร์เรย์ มีหลายชื่อสำหรับ Criteria1 .

➤ กด F5 .

ในที่สุด คุณจะมีชุดข้อมูล กรองตามเกณฑ์ต่างๆ เพื่อแสดงชื่อของนักเรียนและ รหัส และ เครื่องหมาย สำหรับนักเรียน ที่เกี่ยวข้อง>เอมิลี่ , แดเนียล และ กาเบรียล

อ่านเพิ่มเติม: Excel VBA: กรองตารางตามค่าเซลล์ (6 วิธีง่ายๆ)

ส่วนการปฏิบัติ

สำหรับทำแบบฝึกหัดโดย ด้วยตัวคุณเอง เราได้จัดเตรียมส่วน แบบฝึกหัด ดังด้านล่างในชีตที่ชื่อว่า แบบฝึกหัด โปรดทำด้วยตัวเอง

สรุป

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

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