Excel VBA: Filtro Avanzado con Múltiples Criterios en un Rango (5 Métodos) -

  • Compartir Este
Hugh West

Cuando se trabaja con grandes cantidades de datos y es necesario establecer varios filtros a la vez, Filtrado avanzado en Excel También se puede aplicar para limpiar los datos eliminando copias. Mientras se aplica el programa Filtro avanzado El VBA es mucho más fácil de ejecutar. En este tutorial, le mostraremos cómo aplicar Filtro avanzado VBA para el rango de criterios múltiples en Excel .

Descargar el cuaderno de prácticas

Descárgate este cuaderno de prácticas para ejercitarte mientras lees este artículo.

VBA Filtro Avanzado.xlsm

5 métodos eficaces para VBA filtro avanzado con múltiples criterios en un rango en Excel

En las siguientes secciones, hablaremos de 5 métodos a utilizar Filtro avanzado VBA para múltiples criterios. Al principio, es posible que necesite conocer la sintaxis de la función Filtro avanzado VBA .

Sintaxis de filtros avanzados de VBA:

  • Filtro avanzado: se refiere a un objeto de rango. Puede establecer el rango donde desea aplicar el Filtro.
  • Acción: es un argumento obligatorio que tiene dos opciones, xlFilterInPlace o xlFilterCopy . xlFilterInPlace se utiliza para filtrar el valor en el lugar donde se encuentra el conjunto de datos. xlFilterCopy se utiliza para obtener el valor del filtro en otra ubicación deseada.
  • CriteriosRango: representa los criterios por los que se filtrará el valor.
  • CopyToRange: es la ubicación donde guardará los resultados del filtro.
  • Única: es un argumento opcional. Verdadero para filtrar sólo los valores únicos. De lo contrario, por defecto, se considera como Falso .

En la imagen inferior, se proporciona un conjunto de datos de ejemplo para aplicar todos los filtros que queramos realizar.

1. Aplicar Filtro Avanzado VBA para el Criterio OR en un Rango en Excel

En el primer método, aplicaremos el O criterios utilizando el Filtro avanzado VBA Digamos que queremos filtrar los datos por el nombre del producto. Cookies y Chocolate Para aplicar el O Para ello, siga los pasos que se indican a continuación.

Paso 1:

  • Pulse Alt + F11 para abrir el Macro VBA .
  • Haga clic en el botón Insertar.
  • Elija el Módulo.

Segundo paso:

  • A continuación, pegue lo siguiente VBA para aplicar el O.
 Sub Apply_VBA_Advanced_Filter_for_OR_Criteria() 'Declara la variable para el rango del conjunto de datos y para el rango de criterios Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Establece la localización y el rango del conjunto de datos y el rango de criterios Set Dataset_Rng = Sheets("Sheet1").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet1").Range("B14:E16") 'Aplica el filtro avanzado para filtrar el conjunto de datos usando los criteriosDataset_Rng.AdvancedFilter Acción:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Paso 3:

  • A continuación, guarde el programa y pulse F5 para correr.
  • Por lo tanto, obtendrá los resultados filtrados como se muestra en la siguiente imagen.

Notas. Para invertir el proceso o eliminar toda la pasta filtrante y ejecutar el VBA programa.

 Sub Remove_All_Filter() On Error Resume Next 'comando para eliminar todo el filtro para mostrar el conjunto de datos anterior ActiveSheet.ShowAllData End Sub 

  • Como resultado, obtendrá la versión anterior de su conjunto de datos.

Read More: Excel VBA Ejemplos de Filtro Avanzado con Criterios (6 Criterios)

2. Realizar Filtro Avanzado VBA para los Criterios AND en un Rango en Excel

De forma similar al método anterior, ahora realizaremos el VBA Filtro avanzado para el Y Supongamos que queremos conocer las galletas con el precio de $0.65 como se muestra en la siguiente captura de pantalla. Para aplicar el O debe colocar el valor en columnas diferentes. Para aplicar el criterio Y siga las instrucciones que figuran a continuación.

Primer paso:

  • Para abrir Macro VBA pulse Alt + F11
  • Tras abrir el Macro VBA pegue lo siguiente VBA en un nuevo módulo.
 Sub Apply_VBA_Advanced_Filter_for_AND_Criteria() 'Declara la variable para el rango del conjunto de datos y para el rango de criterios Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Establece la localización y el rango del conjunto de datos y el rango de criterios Set Dataset_Rng = Sheets("Sheet2").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet2").Range("B14:E15") 'Aplica el filtro avanzado para filtrar el conjunto de datos usando los criteriosDataset_Rng.AdvancedFilter Acción:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Segundo paso:

  • Pulse F5 para ejecutar el programa después de haberlo guardado.
  • Por último, obtenga los resultados filtrados.

Más información: VBA para copiar datos a otra hoja con filtro avanzado en Excel

3. Utilizar el Filtro Avanzado VBA para los Criterios OR con AND en un Rango en Excel

También puede aplicar el O y el Y ambos en combinación. Por ejemplo, desea obtener los valores de Cookies o Chocolates pero para el Galletas, hay otro criterio precio $0.65 Siga los procedimientos que se indican a continuación para conseguirlo.

Primer paso:

  • Pegue lo siguiente VBA códigos después de abrir el Macro VBA .
 Sub Apply_VBA_Advanced_Filter_for_OR_with_AND_Criteria() 'Declara la variable para el rango del conjunto de datos y para el rango de criterios Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Establece la localización y el rango del conjunto de datos y el rango de criterios Set Dataset_Rng = Sheets("Sheet3").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet3").Range("B14:E16") 'Aplica el filtro avanzado para filtrar el conjunto de datos usando los criteriosDataset_Rng.AdvancedFilter Acción:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Segundo paso:

  • A continuación, guarde primero el programa pulsando F5 para ejecutarlo.
  • En consecuencia, encontrará los valores con determinadas Y y O.

Read More: Aplicar Filtro Avanzado Basado en Múltiples Criterios en una Columna en Excel

Lecturas similares:

  • Filtro Avanzado con Criterios Múltiples en Excel (15 Ejemplos Adecuados)
  • Filtro Dinámico Avanzado Excel (VBA & Macro)
  • Cómo Utilizar el Filtro Avanzado en VBA (Una Guía Paso a Paso)
  • Filtro Avanzado con Rango de Criterios en Excel (18 Aplicaciones)
  • El Filtro Avanzado de Excel No Funciona (2 Razones & Soluciones)

4. Usar Filtro Avanzado VBA para Valores Únicos con Criterios Múltiples en Excel

Además, si tiene duplicados en su conjunto de datos, puede eliminarlos al filtrar. Añadiremos el campo Único argumento para Verdadero para obtener sólo los valores únicos y eliminar los duplicados. Siga las instrucciones indicadas.

Paso 1:

  • En primer lugar, abra el VBA Macro pulsando Alt + F11.
  • Pegue lo siguiente VBA en un nuevo módulo.
 Sub Apply_VBA_Advanced_Filter_for_Unique_Values() 'Declara la variable para el rango del conjunto de datos y para el rango de criterios Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Establece la localización y el rango del conjunto de datos y el rango de criterios Set Dataset_Rng = Sheets("Sheet4").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet4").Range("B14:E16") 'Aplica el filtro avanzado para filtrar el conjunto de datos usando los criteriosDataset_Rng.AdvancedFilter Acción:=xlFilterInPlace, CriteriaRange:=Criteria_Rng, Unique:=True End Sub 

Segundo paso:

  • A continuación, pulse F5 para ejecutar el programa después de guardarlo.
  • Por lo tanto, obtendrá valores sólo para los únicos.

Read More: Cómo usar el filtro avanzado para registros únicos en Excel

5. Realizar Filtro Avanzado VBA para Caso Condicional

Además de los métodos anteriores, también se pueden aplicar condiciones con fórmulas. Por ejemplo, queremos encontrar el Precios totales que sean mayores que $100 Para conseguirlo, sólo tienes que seguir estos pasos.

Primer paso:

  • En primer lugar, para abrir el Macro VBA pulse Alt + F11 .
  • Seleccione un nuevo Módulo y pegue lo siguiente Códigos VBA .
 Sub Apply_VBA_Advanced_Filter_for_Formula() 'Declara la variable para el rango del conjunto de datos y para el rango de criterios Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Establece la localización y el rango del conjunto de datos y el rango de criterios Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Aplica el filtro avanzado para filtrar el conjunto de datos usando los criteriosDataset_Rng.AdvancedFilter Acción:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Segundo paso:

  • En segundo lugar, guarde el programa y pulse la tecla F5 para ver los resultados.

Notas. Además, puede obtener los resultados en un espacio favorable ya sea en un nuevo rango o en una nueva hoja de cálculo aplicando la función xlFilterCopy Simplemente, pegue el archivo VBA y ejecutarlos para obtener los resultados en Hoja6 al alcance B4:E11 .

 Declare la variable para el rango del conjunto de datos y para el rango de criterios Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Establezca la ubicación y el rango del conjunto de datos y el rango de criterios Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Aplique el filtro avanzado para filtrar el conjunto de datos utilizando los criterios Dataset_Rng.AdvancedFilter Action:=xlFilterCopy,CriteriaRange:=Criteria_Rng, CopyToRange:=Hojas("Hoja6").Range("B4:E11") End Sub 

  • En consecuencia, vea el resultado final en una nueva hoja de cálculo Hoja6 .

Read More: Cómo usar el filtro avanzado si el rango de criterios contiene texto en Excel

Conclusión

Para resumir, espero que ahora entiendas cómo utilizar la función VBA filtro avanzado en Excel para filtrar múltiples rangos de criterios. Todos estos métodos deben utilizarse para enseñar y practicar con sus datos. Consulte el libro de prácticas y ponga en práctica lo aprendido. Gracias a su vital apoyo, nos sentimos inspirados para seguir presentando seminarios como éste.

Si tiene alguna pregunta, no dude en ponerse en contacto con nosotros. Háganos saber su opinión en la sección de comentarios más abajo.

En Exceldemy responderá a sus preguntas lo antes posible.

Quédate con nosotros y sigue aprendiendo.

Hugh West es un capacitador y analista de Excel altamente experimentado con más de 10 años de experiencia en la industria. Tiene una Licenciatura en Contabilidad y Finanzas y una Maestría en Administración de Empresas. Hugh tiene una pasión por la enseñanza y ha desarrollado un enfoque de enseñanza único que es fácil de seguir y comprender. Su conocimiento experto de Excel ha ayudado a miles de estudiantes y profesionales en todo el mundo a mejorar sus habilidades y sobresalir en sus carreras. A través de su blog, Hugh comparte su conocimiento con el mundo, ofreciendo tutoriales gratuitos de Excel y capacitación en línea para ayudar a las personas y empresas a alcanzar su máximo potencial.