Excel VBA: Cách lọc với nhiều tiêu chí trong mảng (7 cách)

  • Chia Sẻ Cái Này
Hugh West

Nếu bạn đang tìm cách lọc với nhiều mảng tiêu chí trong Excel VBA , thì bạn đang ở đúng nơi. Việc lọc tập dữ liệu lớn dựa trên nhiều tiêu chí có thể được thực hiện dễ dàng hơn với sự trợ giúp của mã VBA thay vì sử dụng tính năng thông thường của Excel.

Vì vậy, hãy bắt đầu bài viết chính của chúng ta.

Tải xuống Workbook

Lọc với nhiều tiêu chí.xlsm

7 cách để lọc với nhiều tiêu chí trong mảng bằng Excel VBA

Trong tập dữ liệu sau đây, chúng tôi có một số bản ghi điểm tương ứng với tên của sinh viên và id của họ. Chúng tôi sẽ cố gắng lọc tập dữ liệu này dựa trên các tiêu chí khác nhau dưới dạng một mảng bằng cách sử dụng một số mã.

Chúng tôi đã sử dụng phiên bản Microsoft Excel 365 tại đây, bạn có thể sử dụng bất kỳ phiên bản nào khác tùy theo sự thuận tiện của bạn.

Phương pháp-1: Lọc với nhiều tiêu chí dưới dạng văn bản trong mảng

Ở đây, chúng tôi sẽ cố gắng lọc tập dữ liệu sau dựa trên Tên học sinh cột cho nhiều tiêu chí chứa các chuỗi Emily , Daniel Gabriel trong một mảng.

Bước-01 :

➤ Truy cập Nhà phát triển Tab >> Tùy chọn Visual Basic.

Sau đó, Trình chỉnh sửa Visual Basic sẽ mở ra.

➤ Đi tới Chèn Tab >> Mô-đun Tùy chọn.

Sau đó, Mô-đun sẽ làđã tạo.

Bước-02 :

➤ Viết đoạn mã sau

3009

Ở đây, chúng tôi đã khai báo tên tiêu đề trong phạm vi B3:D3 trong đó chúng tôi sẽ áp dụng bộ lọc và Field:=2 là số cột của phạm vi này dựa vào đó chúng tôi sẽ thực hiện quá trình lọc này.

Cuối cùng ta đặt tiêu chí là mảng để khai báo tên nhiều sinh viên như Emily , Daniel Gabriel .

➤ Nhấn F5 .

Sau đó, bạn sẽ lọc tập dữ liệu theo nhiều tiêu chí để hiển thị tên của học sinh và Id Điểm tương ứng của học sinh Emily , Daniel Gabriel .

Đọc thêm: Lọc nhiều tiêu chí trong Excel (4 cách phù hợp)

Phương pháp-2: Lọc với nhiều tiêu chí số trong mảng bằng cách sử dụng Excel VBA

Ở đây, chúng tôi sẽ lọc tập dữ liệu sau cho các id 101135 , 10 1137 101138 bằng cách sử dụng các số này làm nhiều tiêu chí trong một mảng.

Các bước :

➤ Thực hiện theo Bước-01 của Phương pháp-1 .

➤ Viết đoạn mã sau

7699

Ở đây, chúng tôi đã khai báo tên tiêu đề trong phạm vi B3:D3 trong đó chúng tôi sẽ áp dụng bộ lọc và Field:=2 là số cột của phạm vi này dựa vào đó chúng tôi sẽ thực hiện việc lọc nàyquá trình.

Cuối cùng, chúng tôi đã đặt tiêu chí là một mảng để khai báo id của nhiều sinh viên, chẳng hạn như 101135 , 101137 101138 và chúng tôi đã đặt chúng bên trong dấu phẩy đảo ngược để chỉ định chúng là chuỗi vì AutoFilter sẽ chỉ hoạt động đối với một mảng chuỗi.

➤ Nhấn F5 .

Sau đó sẽ ra tên và điểm của các học sinh có id 101135 , 101137 101138 .

Đọc thêm: VBA để lấy các giá trị duy nhất từ ​​cột thành mảng trong Excel (3 tiêu chí)

Phương pháp-3: Đặt nhiều tiêu chí trong một phạm vi để sử dụng dưới dạng Mảng

Ở đây, chúng tôi đã liệt kê các tiêu chí trong cột Danh sách chứa các id 101134 , 101135 101136 dựa vào đó chúng tôi sẽ thực hiện quy trình lọc của mình.

Các bước :

➤ Thực hiện theo Bước-01 của Phương pháp-1 .

➤ Viết mã sau đây

2567

Tại đây , chúng tôi đã khai báo ared ID_range , k as Variant and ID_range là mảng sẽ lưu trữ nhiều tiêu chí và k is mức tăng từ giới hạn dưới đến giới hạn trên của mảng này. Để có giới hạn dưới và giới hạn trên, chúng tôi đã sử dụng Hàm LBOUND Hàm UBOUND tương ứng.

Vòng lặp FOR được sử dụng để chuyển đổi các giá trị khác với chuỗitrong mảng thành các chuỗi với sự trợ giúp của Hàm CStr . Cuối cùng, chúng tôi đã sử dụng mảng này dưới dạng Criteria1 .

➤ Nhấn F5 .

Sau đó, bạn sẽ nhận được tên và điểm của các sinh viên có id 101134 , 101135 101136 .

Đọc thêm: Lọc các cột khác nhau theo nhiều tiêu chí trong Excel VBA

Bài đọc tương tự

  • Cách lọc các giá trị duy nhất trong Excel (8 cách dễ dàng)
  • Thực hiện bộ lọc tùy chỉnh trong Excel (5 Cách)
  • Tính giá trị trung bình của một mảng bằng VBA (Macro, UDF và UserForm)
  • Phím tắt cho Bộ lọc Excel (3 cách sử dụng nhanh với các ví dụ)

Phương pháp-4: Sử dụng hàm SPLIT và JOIN để tạo mảng với nhiều tiêu chí

Ở đây, chúng ta sẽ sử dụng danh sách sau trong Danh sách cột dưới dạng một mảng và để lọc đúng tập dữ liệu, chúng tôi cũng sẽ sử dụng hàm SPLIT , hàm THAM GIA hàm TRANSPOSE trong Mã VBA .

Các bước :

➤ Fol thấp Bước-01 của Phương pháp-1 .

➤ Viết đoạn mã sau

5129

Tại đây, TRANSPOSE sẽ chuyển đổi mảng 2D thành mảng 1D nếu không thì AutoFilter sẽ không hoạt động, JOIN sẽ nối từng giá trị thành một mảng chuỗi, và cuối cùng, SPLIT sẽ chia nhỏ từng chuỗi để cung cấp đầu vàochúng một cách riêng biệt làm tiêu chí để lọc tập dữ liệu.

➤ Nhấn F5 .

Cuối cùng, bạn sẽ nhận được tên và điểm của các sinh viên có id 101134 , 101135 101136 .

Đọc thêm: Cách tách chuỗi thành mảng trong VBA (3 cách)

Phương pháp-5 : Lọc với nhiều tiêu chí trong một vòng lặp cho mảng bằng VBA

Trong phần này, chúng tôi sẽ lọc tập dữ liệu sau tùy thuộc vào cột Id sinh viên cho nhiều tiêu chí tiêu chí như được liệt kê trong cột Danh sách .

Các bước :

➤ Thực hiện theo Bước- 01 of Method-1 .

➤ Viết đoạn mã sau

7688

Ở đây, chúng tôi đã khai báo k Integer , ID_range(100) dưới dạng Chuỗi trong đó ID_range là một mảng sẽ lưu trữ tối đa 100 giá trị. Để xác định các giá trị cho mảng này ở đây, chúng ta đã sử dụng vòng lặp FOR for k từ 4 đến 6 làm số hàng của Danh sách cột và F là tên cột.

Cuối cùng, chúng ta đã sử dụng mảng này làm Criteria1 cho AutoFilter .

➤ Nhấn F5 .

Cuối cùng, bạn sẽ nhận được tên và điểm của các học sinh có id 101134 , 101135 101136 .

Đọc thêm: Lọc nhiều tiêu chí trong Excel bằng VBA (Cả AND và ORType)

Phương pháp-6: Sử dụng Phạm vi được Đặt tên cho Nhiều Tiêu chí

Ở đây, chúng tôi đã liệt kê một số tên của học sinh trong cột Danh sách và đặt tên này phạm vi là Sinh viên . Sử dụng phạm vi được đặt tên này, chúng tôi sẽ xác định một mảng sẽ chứa nhiều tiêu chí cho tính năng Tự động lọc .

Các bước :

➤ Thực hiện theo Bước-01 của Phương pháp-1 .

➤ Viết đoạn mã sau

4609

Ở đây, chúng tôi đã khai báo Student_range , k làm Variant và sử dụng hàm TRANSPOSE để chuyển đổi mảng 2D của dải ô đã đặt tên Student vào một mảng 1D rồi lưu trữ nó trong Student_range . Sau đó, nó được sử dụng làm Criteria1 cho phương pháp AutoFilter .

➤ Nhấn F5 .

Sau đó, bạn sẽ lọc tập dữ liệu theo nhiều tiêu chí để hiển thị tên của sinh viên và Id Marks <10 tương ứng của họ> dành cho học sinh Jefferson , Emily Sara .

Nội dung liên quan: VBA để chuyển mảng trong Excel (3 phương pháp)

Phương pháp-7: Bảng lọc có nhiều tiêu chí trong một mảng

Ở đây, chúng ta có Bảng sau đây có tên là Table1 và sử dụng Excel VBA chúng tôi sẽ cố gắng lọc xuống bảng này dựa trên các tên Emily , Daniel Gabriel làm nhiều tiêu chí trong một mảng.

Các bước :

➤ Thực hiện theo Bước-01 của Phương thức-1 .

➤ Viết mã sau đây

4885

Tại đây, ListObjects(“Table1”) được sử dụng để xác định bảng Table1 , Field:=2 để thiết lập cột thứ hai của phạm vi này làm cơ sở của quy trình lọc và cuối cùng chúng tôi đã xác định một mảng chứa nhiều tên cho Criteria1 .

➤ Nhấn F5 .

Cuối cùng, bạn sẽ có tập dữ liệu được lọc xuống cho nhiều tiêu chí để hiển thị tên của học sinh và Id Marks tương ứng của học sinh Emily , Daniel Gabriel .

Đọc thêm: Excel VBA: Bảng lọc dựa trên giá trị ô (6 phương pháp dễ dàng)

Phần thực hành

Để thực hành bằng cách chính bạn, chúng tôi đã cung cấp phần Thực hành như bên dưới trong trang tính có tên Thực hành . Vui lòng tự làm.

Kết luận

Trong bài viết này, chúng tôi đã cố gắng đề cập đến các cách lọc với nhiều tiêu chí dưới dạng một mảng bằng Excel VBA một cách dễ dàng. Hy vọng bạn sẽ thấy nó hữu ích. Nếu bạn có bất kỳ đề xuất hoặc câu hỏi nào, vui lòng chia sẻ chúng trong phần bình luận.

Hugh West là một nhà phân tích và huấn luyện viên Excel giàu kinh nghiệm với hơn 10 năm kinh nghiệm trong ngành. Ông có bằng Cử nhân Tài chính Kế toán và bằng Thạc sĩ Quản trị Kinh doanh. Hugh có niềm đam mê giảng dạy và đã phát triển một phương pháp giảng dạy độc đáo, dễ hiểu và dễ theo dõi. Kiến thức chuyên môn về Excel của ông đã giúp hàng nghìn sinh viên và chuyên gia trên toàn thế giới cải thiện kỹ năng và xuất sắc trong sự nghiệp của họ. Thông qua blog của mình, Hugh chia sẻ kiến ​​thức của mình với mọi người, cung cấp các hướng dẫn Excel miễn phí và đào tạo trực tuyến để giúp các cá nhân và doanh nghiệp phát huy hết tiềm năng của họ.