Excel VBA: como filtrar con varios criterios en matriz (7 xeitos)

  • Comparte Isto
Hugh West

Se estás a buscar formas de filtrar cunha matriz de criterios múltiples en Excel VBA , estás no lugar correcto. Filtrar un conxunto de datos grande en función de varios criterios pódese facer máis doado coa axuda de códigos VBA en lugar de utilizar a función convencional de Excel.

Entón, imos comezar o noso artigo principal.

Descargar libro de traballo

Filtrar con varios criterios.xlsm

7 formas de filtrar con varios criterios en matriz usando Excel VBA

No seguinte conxunto de datos, temos algúns rexistros de notas correspondentes ao nome do alumnado e aos seus DNI. Tentaremos filtrar este conxunto de datos en función de diferentes criterios como unha matriz utilizando algúns códigos.

Utilizamos aquí a versión Microsoft Excel 365 , pode usar calquera outra versión segundo a súa conveniencia.

Método-1: Filtrar con varios criterios como textos na matriz

Aquí tentaremos filtrar o seguinte conxunto de datos baseándose no Columna Nome do alumno para varios criterios que conteñen as cadeas Emily , Daniel e Gabriel nunha matriz.

Paso-01 :

➤ Vaia ao Desenvolvedor Pestana >> Opción de Visual Basic.

A continuación, abrirase o Editor de Visual Basic .

➤ Vaia á opción Inserir Pestaña >> Módulo Opción.

Despois diso, aparecerá un módulo serácreado.

Paso-02 :

➤ Escriba o seguinte código

7653

Aquí, declaramos o nomes de cabeceira no intervalo B3:D3 no que aplicaremos o filtro e Campo:=2 é o número de columna deste intervalo en función do cal faremos este proceso de filtrado.

Por último, establecemos os criterios como unha matriz para declarar os nomes de varios estudantes, como Emily , Daniel , e Gabriel .

➤ Prema F5 .

Entón, filtrará o conxunto de datos segundo varios criterios para mostrar o nome dos estudantes e os seus correspondentes Ids e marcas dos estudantes Emily , Daniel e Gabriel .

Ler máis: Filtrar varios criterios en Excel (4 xeitos adecuados)

Método 2: filtrar con varios criterios de número en matriz usando Excel VBA

Aquí filtraremos o seguinte conxunto de datos para os ids 101135 , 10 1137 e 101138 utilizando estes números como criterios múltiples nunha matriz.

Pasos :

➤ Siga o Paso-01 de Método-1 .

➤ Escriba o seguinte código

9487

Aquí declaramos os nomes de cabeceira no intervalo B3:D3 no que aplicaremos o filtro e Campo:=2 é o número de columna deste intervalo en función do cal fará este filtradoproceso.

Por último, establecemos os criterios como unha matriz para declarar ID de varios estudantes como 101135 , 101137 e 101138 e puxémolas entre comas para especificalas como cadeas porque AutoFilter só funcionará para unha matriz de cadeas.

➤ Preme F5 .

Despois diso, obterás os nomes e as notas dos estudantes que teñen ID 101135 , 101137 e 101138 .

Ler máis: VBA para obter valores únicos da columna á matriz en Excel (3 criterios)

Método 3: establecer varios criterios nun intervalo para usar como matriz

Aquí enumeramos os criterios na columna Lista que contén os ids 101134 , 101135 e 101136 en base ao que faremos o noso proceso de filtrado.

Pasos :

➤ Siga o Paso-01 de Método-1 .

➤ Escriba o seguinte código

4110

Aquí , temos decl ared ID_range , k como Variant e ID_range é a matriz que almacenará varios criterios, e k é o incremento que vai dende o límite inferior ata o límite superior desta matriz. Para ter o límite inferior e o límite superior utilizamos a función LBOUND e a función UBOUND respectivamente.

O bucle FOR úsase para converter o valores distintos das cadeasna matriz en cadeas coa axuda da función CStr . Finalmente, utilizamos esta matriz como Criterio1 .

➤ Prema F5 .

Despois, obterá os nomes e as cualificacións dos alumnos que teñan ID 101134 , 101135 e 101136 .

Ler máis: Filtrar diferentes columnas por varios criterios en Excel VBA

Lecturas similares

  • Como filtrar valores únicos en Excel (8 xeitos sinxelos)
  • Realizar un filtro personalizado en Excel (5 Formas)
  • Calcular a media dunha matriz con VBA (Macro, UDF e formulario de usuario)
  • Atallo para o filtro de Excel (3 usos rápidos) con exemplos)

Método 4: Usando funcións SPLIT e JOIN para crear matrices con varios criterios

Aquí, utilizaremos a seguinte lista na Lista columna como matriz e para filtrar o conxunto de datos correctamente tamén usaremos a función SPLIT , a función JOIN e a función TRANSPOSE nun Código VBA .

Pasos :

➤ Fol baixo Paso-01 de Método-1 .

➤ Escribe o seguinte código

4880

Aquí, TRANSPOSE converterá a matriz 2D nunha matriz 1D se non, o AutoFilter non funcionará, JOIN unirá cada un dos valores nunha matriz de cadeas, e, finalmente, SPLIT descompondrá cada cadea para dar entradapor separado como criterios para filtrar o conxunto de datos.

➤ Prema F5 .

Finalmente, obterá os nomes e marcas de os estudantes que teñan ID 101134 , 101135 e 101136 .

Ler máis: Como dividir unha cadea nunha matriz en VBA (3 xeitos)

Método 5 : Filtrar con varios criterios nun bucle para matriz con VBA

Nesta sección, filtraremos o seguinte conxunto de datos dependendo da columna Identificación do alumno para varios criterios como se indican na columna Lista .

Pasos :

➤ Siga o Paso- 01 de Método-1 .

➤ Escribe o seguinte código

4483

Aquí declaramos k como Enteiro , ID_range(100) como String onde ID_range é unha matriz que almacenará ata 100 valores. Para determinar os valores desta matriz aquí usamos o bucle FOR para k de 4 a 6 como números de fila do Lista columna e F é o nome da columna.

Finalmente, usamos esta matriz como Criterio1 para Filtro automático .

➤ Preme F5 .

Ao final, obterás os nomes e as notas dos alumnos que teñan ID 101134 , 101135 e 101136 .

Ler máis: Filtrar varios criterios en Excel con VBA (E e OUTipos)

Método 6: Usar un intervalo nomeado para varios criterios

Aquí enumeramos algúns nomes dos estudantes na columna Lista e nomeamos isto rango como Estudante . Usando este intervalo denominado definiremos unha matriz que conterá varios criterios para a función AutoFilter .

Pasos :

➤ Siga o Paso-01 de Método-1 .

➤ Escriba o seguinte código

1988

Aquí, declaramos Intervalo_estudante , k como Variante e utilizou a función TRANSPOSE para converter a matriz 2D do intervalo nomeado Estudante nunha matriz 1D e despois almacenouse en Intervalo_estudante . Despois, úsase como Criterio1 para o método AutoFilter .

➤ Prema F5 .

A continuación, filtrarase o conxunto de datos segundo varios criterios para mostrar o nome dos estudantes e os seus correspondentes Ids e Marcas para os estudantes Jefferson , Emily e Sara .

Contido relacionado: VBA para transpoñer matriz en Excel (3 métodos)

Método 7: Filtrar a táboa con varios criterios nunha matriz

Aquí temos a seguinte Táboa cuxo nome é Táboa1 e usando Excel VBA tentaremos filtrar esta táboa en función dos nomes Emily , Daniel e Gabriel como varios criterios nunha matriz.

Pasos :

➤ Siga o Paso-01 de Método-1 .

➤ Escriba o seguinte código

8005

Aquí, ListObjects(“Táboa1”) úsase para definir a táboa Táboa1 , Campo:=2 para configurar a segunda columna deste intervalo como base do proceso de filtrado e, finalmente, definimos unha matriz que contén varios nomes para Criterios1 .

➤ Prema F5 .

Ao final, terá o conxunto de datos filtrado para varios criterios para mostrar o nome dos estudantes e os seus correspondentes Ids e Marcos para os estudantes Emily , Daniel e Gabriel .

Ler máis: Excel VBA: táboa de filtros baseada no valor da cela (6 métodos sinxelos)

Sección de práctica

Para practicar mediante proporcionamos unha sección Práctica como a continuación nunha folla chamada Práctica . Faino por ti mesmo.

Conclusión

Neste artigo intentamos cubrir as formas de filtrar con varios criterios como unha matriz usando Excel VBA facilmente. Espero que che resulte útil. Se tes algunha suxestión ou dúbida, non dubides en compartilas na sección de comentarios.

Hugh West é un adestrador e analista de Excel altamente experimentado con máis de 10 anos de experiencia na industria. É Licenciado en Contabilidade e Finanzas e Máster en Administración de Empresas. Hugh ten unha paixón polo ensino e desenvolveu un enfoque docente único que é fácil de seguir e comprender. O seu coñecemento experto de Excel axudou a miles de estudantes e profesionais de todo o mundo a mellorar as súas habilidades e a destacar nas súas carreiras. A través do seu blog, Hugh comparte os seus coñecementos co mundo, ofrecendo titoriais de Excel gratuítos e formación en liña para axudar ás persoas e ás empresas a alcanzar todo o seu potencial.