Fórmula de Excel: FILTRO con múltiples criterios OR -

Resumen

Para extraer datos con múltiples condiciones OR, puede utilizar la función FILTRO junto con la función COINCIDIR. En el ejemplo que se muestra, la fórmula en F9 es:

=FILTER(B5:D16, ISNUMBER(MATCH(items,F5:F6,0))* ISNUMBER(MATCH(colors,G5:G6,0))* ISNUMBER(MATCH(cities,H5:H6,0)))

donde los elementos (B3: B16), los colores (C3: C16) y las ciudades (D3: D16) son rangos de nombres.

Esta fórmula devuelve datos donde el artículo es (camisetas O sudadera con capucha) Y el color es (rojo O azul) Y la ciudad es (Denver O Seattle).

Explicación

En este ejemplo, los criterios se ingresan en el rango F5: H6. La lógica de la fórmula es:

el artículo es (camiseta O sudadera con capucha) Y el color es (rojo O azul) Y la ciudad es (Denver O Seattle)

La lógica de filtrado de esta fórmula (el argumento de inclusión) se aplica con las funciones ISNUMBER y MATCH, junto con la lógica booleana aplicada en una operación de matriz.

MATCH se configura "al revés", con los valores de búsqueda que provienen de los datos y los criterios utilizados para la matriz de búsqueda. Por ejemplo, la primera condición es que los artículos deben ser una camiseta o una sudadera con capucha. Para aplicar esta condición, MATCH se configura así:

MATCH(items,F5:F6,0) // check for tshirt or hoodie

Debido a que hay 12 valores en los datos, el resultado es una matriz con 12 valores como este:

(1;#N/A;#N/A;2;#N/A;2;2;#N/A;1;#N/A;2;1)

Esta matriz contiene errores # N / A (sin coincidencia) o números (coincidencia). Los números de aviso corresponden a artículos que son camiseta o sudadera con capucha. Para convertir esta matriz en valores VERDADERO y FALSO, la función COINCIDIR está envuelta en la función ESNÚMERO:

ISNUMBER(MATCH(items,F5:F6,0))

que produce una matriz como esta:

(TRUE;FALSE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE)

En esta matriz, los valores VERDADEROS corresponden a camiseta o sudadera con capucha.

La fórmula completa contiene tres expresiones como las que se usaron anteriormente para el argumento de inclusión de la función FILTRO:

ISNUMBER(MATCH(items,F5:F6,0))* // tshirt or hoodie ISNUMBER(MATCH(colors,G5:G6,0))* // red or blue ISNUMBER(MATCH(cities,H5:H6,0))) // denver or seattle

Después de que se evalúan COINCIDIR e ISNUMERO, tenemos tres matrices que contienen valores VERDADERO y FALSO. La operación matemática de multiplicar estos arreglos coacciona los valores VERDADERO y FALSO a 1 y 0, por lo que podemos visualizar los arreglos en este punto de esta manera:

(1;0;0;1;0;1;1;0;1;0;1;1)* (1;0;1;1;0;1;0;0;0;0;0;1)* (1;0;1;0;0;1;0;1;1;0;0;1)

El resultado, siguiendo las reglas de la aritmética booleana, es una única matriz:

(1;0;0;0;0;1;0;0;0;0;0;1)

que se convierte en el argumento de inclusión en la función FILTRO:

=FILTER(B5:D16,(1;0;0;0;0;1;0;0;0;0;0;1))

El resultado final son las tres filas de datos que se muestran en F9: H11

Con valores codificados

Aunque la fórmula en el ejemplo usa criterios ingresados ​​directamente en la hoja de trabajo, los criterios se pueden codificar como constantes de matriz de la siguiente manera:

=FILTER(B5:D16, ISNUMBER(MATCH(items,("Tshirt";"Hoodie"),0))* ISNUMBER(MATCH(colors,("Red";"Blue"),0))* ISNUMBER(MATCH(cities,("Denver";"Seattle"),0)))

Articulos interesantes...