สารบัญ
หากคุณกำลังมองหาวิธีการ กรอง ด้วยอาร์เรย์หลายเกณฑ์ใน 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 ได้อย่างง่ายดาย หวังว่าคุณจะพบว่ามีประโยชน์ หากคุณมีข้อเสนอแนะหรือคำถามใดๆ โปรดแบ่งปันในส่วนความคิดเห็น