Tabla de contenido
Mientras trabajamos en Excel, tenemos que hacer esto a menudo. Tenemos que buscar un valor particular en un conjunto de datos que satisfaga uno o más criterios. Hoy voy a mostrar cómo se puede buscar uno o más valores que satisfagan múltiples criterios en un conjunto de datos en Excel.
Descargar el cuaderno de prácticas
Descárgate este cuaderno de prácticas para ejercitarte mientras lees este artículo.
Búsqueda con criterios múltiples.xlsx2 Formas Adecuadas de Buscar con Múltiples Criterios en Excel
Observe el conjunto de datos siguiente. Tenemos el ID de empleados, nombres de empleados, fechas de incorporación, y Salarios de una empresa llamada Grupo Jupyter Buscaremos valores con múltiples criterios utilizando la función INDEX, MATCH, XLOOKUP, y Funciones de FILTRO He aquí un resumen del conjunto de datos para nuestra tarea de hoy.
Ahora intentaremos buscar valores que cumplan varios tipos de criterios múltiples a partir de este conjunto de datos.
Método 1: Búsqueda de múltiples criterios de tipo AND
En primer lugar, intentemos buscar algunos criterios múltiples de Y tipo. Aquí, Y significa que un valor tiene que satisfacer todos los criterios para ser seleccionado. Intentemos encontrar un empleado con un valor de ID superior a 400 y un salario superior a $40000 Puede realizar la tarea en 3 diferentes maneras.
1.1 Combinar las funciones INDEX y MATCH en filas y columnas
Antes de pasar al punto principal, puede echar un vistazo al ÍNDICE y MATCH de Excel. Averiguaremos el empleado con un ID superior a 400 y un salario superior a $40000 utilizando el INDEX-MATCH fórmula. Sigamos las instrucciones siguientes:
Pasos:
- En primer lugar, seleccione la celda G7 y escribe la siguiente fórmula.
=INDEX(C5:C16,MATCH(1,(B5:B16>400)*(E5:E16>40000),0),1)
- A continuación, pulse Entre en en su teclado. Como resultado, hemos encontrado un empleado con un ID superior a 400 y un salario superior a $40000 , Richard Samuelson .
- B5:B16>400 pasa por todos los Identificaciones en columna B y devuelve una matriz de TRUE y FALSO , TRUE cuando un ID es mayor que 400 de lo contrario FALSO .
- E5:E16>40000 pasa por todos los salarios en columna E y devuelve una matriz de TRUE y FALSO , TRUE cuando un salario es superior a $40,000 de lo contrario FALSO.
- (B5:B16>400)*(E5:E16>40000) multiplica las dos matrices de TRUE y FALSO y devuelve un 1 cuando el ID es mayor que 400 y el salario es superior a $40,000 En caso contrario, devuelve 0 .
- MATCH(1,(B5:B16>400)*(E5:E16>40000),0) recorre la matriz (B5:B16>400)*(E5:E16>40000) y devuelve el número de serie del primer 1 que encuentra.
- En este caso, devuelve 5 porque el primer 1 está en el número de serie 5.
- Por fin, INDEX(C5:C16,MATCH(1,(B5:B16>400)*(E5:E16>40000),0),1) devuelve el nombre del empleado del intervalo C5:C16 con un número de fila igual a la salida de la función MATCH y número de columna igual a 1 .
- Se trata del empleado requerido con un ID superior a 400 y un salario superior a $40,000 Ahora, si entiendes esto, ¿puedes decirme la fórmula para averiguar el empleado que entró en antes del 31 de diciembre de 2009 pero sigue recibiendo un salario menos de 25.000 .
- A continuación, escriba la siguiente fórmula en la celda G7 .
=INDEX(C5:C16,MATCH(1,(D5:D16
- Por lo tanto, golpe Entre en Además, obtendrá Angela Hopkins como retorno de la fórmula.
Más información: 7 tipos de búsqueda que puede utilizar en Excel
1.2 Utilización de la función XLOOKUP
Podemos realizar la tarea anterior utilizando la función XLOOKUP de Excel. Pero recuerda, XLOOKUP sólo está disponible en Office 365 Antes de pasar al punto principal, puede echar un vistazo a la XLOOKUP de Excel. Ahora, averiguamos el empleado con un ID superior a 400 y un salario superior a $40,000 utilizando el XLOOKUP Sigamos las siguientes instrucciones para aprender.
Pasos:
- En primer lugar, escriba la siguiente fórmula en la celda G7 .
=XLOOKUP(1,(B5:B16>400)*(E5:E16>40000),C5:C16)
- Como resultado, tenemos el mismo empleado que antes, Richard Samuelson Este es el nombre del empleado con un ID superior a 400 y un salario superior a $40,000 .
- (B5:B16>400)*(E5:E16>40000) devuelve una matriz de 1 y 0 , 1 cuando el ID es mayor que 400 y el salario es superior a $40,000 . 0 de lo contrario.
- XLOOKUP(1,(B5:B16>400)*(E5:E16>40000),C5:C16) busca primero 1 en la matriz (B5:B16>400)*(E5:E16>40000). Cuando encuentra uno, devuelve el valor de su celda adyacente en el rango C5:C16 .
Más información: Cómo Usar la Función LOOKUP en Excel (4 Ejemplos Adecuados)
1.3 Aplicación de la función FILTRO
En INDEX-MATCH y el XLOOKUP tienen una limitación: si más de un valor cumple los criterios dados, sólo devuelven el primer valor. Por ejemplo, en el ejemplo anterior, si se fijan bien, verán que hay dos empleados con un ID superior a 400 y un salario superior a $40,000 Son Richard Samuelson y Usman Malik. Pero el INDEX-MATCH y el XLOOKUP fórmulas retorno sólo la primera empleado, Richard Samuelson Para obtener todos los valores que satisfacen los criterios dados, puede utilizar la función FILTRO Pero recuerde que la función FILTRO sólo está disponible en Office 365 .
Pasos:
- Para conocer los empleados con un ID superior a 400 y un salario superior a $40,000 el FILTRO fórmula será:
=FILTER(C5:C16,(B5:B16>400)*(E5:E16>40000))
- Después, esta vez hemos conseguido que todos los empleados mantengan todos los criterios, Richard Samuelson y Usman Malik .
- (B5:B16>400)*(E5:E16>40000) devuelve una matriz de 1 y 0 , 1 cuando el ID es superior a 400 y el salario es superior a 40.000 dólares. 0 en caso contrario (Véase el INDEX-MATCH sección).
- FILTER(C5:C16,(B5:B16>400)*(E5:E16>40000)) recorre todos los valores de la matriz (B5:B16>400)*(E5:E16>40000), y cuando encuentra un 1 devuelve el valor adyacente del intervalo C5:C16 .
- Así obtenemos todos los empleados con un ID superior a 400 y un salario superior a $40,000 .
- Ahora bien, si entiendes esto, ¿puedes decirme la fórmula para averiguar los empleados que se incorporaron entre el 1 de enero de 2014, y 31 de diciembre de 2016 pero recibía un salario de al menos 30.000 dólares Sí. Tienes razón. La fórmula será:
=FILTER(C5:C16,(D5:D16>=DATE(2014,1,1))*(D5:D16=30000))
Más información: Cómo buscar múltiples valores en Excel (10 maneras)
Método 2: Búsqueda de múltiples criterios de tipo OR
Ahora, intentaremos buscar algunos valores que satisfagan múltiples criterios de O Tipo. Aquí, O significa que un valor tiene que satisfacer al menos un criterio de entre todos los criterios para ser seleccionado. Intentemos averiguar el empleado que se incorporó antes de 1 Ene, 2010 o recibe un salario superior a $30,000 .
2.1 Combinar las funciones INDEX y MATCH en un intervalo de fechas
Haga clic aquí para visitar la ÍNDICE y haga clic aquí para visitar la MATCH antes de continuar, si lo desea.
Pasos:
- En INDEX-MATCH será como se muestra en el siguiente cuadro de fórmulas.
=INDEX(C5:C16,MATCH(TRUE,((D5:D1630000))>0,0),1)
- Mira, tenemos Jack Simpson el primer empleado con fecha de incorporación antes del 1 de enero de 2010 o un salario superior a 30.000 Pero hay muchos más empleados. INDEX-MATCH, obtenemos sólo la primera.
- Más adelante reuniremos a todos los empleados utilizando el método FILTRO Este es el empleado necesario que cumple al menos un criterio.
- D5:D16
="" strong=""> devuelve una matriz de TRUE y FALSO . TRUE cuando la fecha de incorporación en la columna D es inferior al 1 de enero de 2010. FALSO de lo contrario. - E5:E16>30000 también devuelve una matriz de TRUE y FALSO . TRUE cuando el salario sea superior a 30.000 dólares. FALSO de lo contrario.
- (D5:D1630000) suma las dos matrices y devuelve otra matriz de 0, 1, o 2 . 0 cuando no se cumple ningún criterio, 1 cuando sólo se cumple un criterio y 2 cuando se cumplan ambos criterios.
- ((D5:D1630000))>0 recorre todos los valores de la matriz (D5:D1630000) y devuelve TRUE si el valor es superior a 0 ( 1 y 2 ), y FALSO de lo contrario ( 0 ).
- MATCH(TRUE,((D5:D1630000))>0,0) recorre todos los valores de la matriz ((D5:D1630000))>0 y devuelve el primer número de serie en el que obtiene un TRUE .
- En este caso, devuelve 3 porque la primera TRUE está en serie 3 .
- Por fin, INDEX(C5:C16,MATCH(TRUE,((D5:D1630000))>0,0),1) devuelve el nombre del empleado del intervalo C5:C16 con el número de serie devuelto por el MATCH función.
Ahora, si entiendes esto, ¿puedes decirme la fórmula para averiguar el empleado con un ID menos de 300, o una fecha de incorporación inferior a enero 1, 2012, o un salario superior a $30,000 ?
Sí. Tienes razón. La fórmula será:
=INDEX(C5:C16,MATCH(TRUE,((B5:B16<200)+(D5:D1630000))>0,0),1)
Más información: Cómo buscar texto en Excel (7 métodos adecuados)
2.2 Aplicación de la función XLOOKUP
Puede realizar la misma tarea utilizando la función XLOOKUP en Excel. XLOOKUP sólo está disponible en Office 365 .
Pasos:
- La fórmula para encontrar al empleado con una fecha de incorporación anterior a enero 1, 2010, o un salario superior a $30,000 será:
=XLOOKUP(TRUE,((D5:D1630000))>0,C5:C16)
- Mira, tenemos el mismo empleado que antes, Jack Simpson Pero al igual que con el INDEX-MATCH fórmula, más empleados cumplen los criterios dados. Sólo tenemos el primero.
- ((D5:D1630000))>0 devuelve TRUE cuando se cumpla al menos uno de los dos criterios, en caso contrario FALSO Véase la sección anterior.
- XLOOKUP(TRUE,((D5:D1630000))>0,C5:C16) devuelve el nombre del empleado de la columna C5:C16 donde obtiene el primer TRUE .
Más información: Cómo buscar un valor de otra hoja en Excel (3 métodos sencillos)
2.3 Utilización de la función FILTRO
Por último, realizaremos la misma tarea utilizando la función FILTRO en Excel. La función FILTRO sólo está disponible en Office 365 Esta vez vamos a conseguir todos los empleados que se unieron antes de 1 de enero de 2010, o percibían salarios superiores a $30,000 .
Pasos:
- La fórmula será la misma que se muestra en el siguiente cuadro de fórmulas.
=FILTER(C5:C16,((D5:D1630000))>0)
- Así, devuelve todos los empleados que cumplen al menos uno de los criterios dados.
- Esta vez tenemos a todos los empleados que cumplen nuestros criterios, fecha de incorporación anterior a 1 de enero de 2010, o salario superior a $30,000 .
- ((D5:D1630000))>0 devuelve TRUE cuando se cumpla al menos uno de los dos criterios, en caso contrario FALSO Ver el INDEX-MATCH sección.
- FILTER(C5:C16,((D5:D1630000))>0) recorre todas las celdas del rango C5:C16 pero sólo los devuelve cuando encuentra un TRUE .
Más información: Cómo buscar una tabla en Excel (8 métodos)
Conclusión
Con estos métodos, puedes buscar algún valor que satisfaga varios criterios a partir de cualquier conjunto de datos. ¿Conoces algún otro método? ¿O tienes alguna duda? No dudes en preguntarnos.