Por qué la función BUSCARX está revolucionando las búsquedas
¿Recuerdas cuál fue la primera función de Excel que aprendiste y con la que sentiste que serías capaz de todo?
La mía, como la de muchas otras personas fue BUSCARV. Parecía que todo se podría arreglar con esa función… y era casi cierto. Fue durante mucho tiempo la “mejor función de Excel”.
En aquel entonces jamás me habría imaginado que mi fascinación por BUSCARV fuera a ser sustituida por la que promete ser su sucesora: BUSCARX. Hace relativamente pocos días Microsoft la liberó por fin para todos los usuarios que usan Office 365 y no me he podido resistir a comenzar a utilizarla desde ya (algo que más abajo te contaré por qué es un error).
Pero… ¿por qué me fascina?
Pues simplemente porque es capaz de todo lo que antes hacía BUSCARV y mucho más:
- BUSCARX puede buscar hacia la izquierda sin fórmulas complejas.
- BUSCARX sigue funcionando aunque se inserten o eliminen columnas en la matriz de búsqueda.
- BUSCARX es capaz de encontrar la última coincidencia de una búsqueda.
- BUSCARX tiene por defecto la opción de coincidencia exacta. De esta forma los usuarios que no estén habituados a utilizarla no obtendrán resultados incorrectos.
- BUSCARX puede devolver una celda o un rango de ellas, igual que la función INDICE.
- BUSCARX puede devolver un valor diferente en caso de que no se encuentre el valor de búsqueda. De esta forma nos olvidamos de la función SI.ERROR.
Y claro, todas estas nuevas características vienen acompañadas de nuevos argumentos:
=BUSCARX(valor_buscado;matriz_buscada;matriz_devuelta;[si_no_se_encuentra];[modo_de_coincidencia];[modo_de_búsqueda])
Parece complicado ¿verdad? No te preocupes, en la mayoría de los casos únicamente utilizaremos tres argumentos y ahora comprobarás que es igual de fácil de utilizar que BUSCARV.
Argumento | Descripción |
---|---|
valor_buscado | El valor que queremos buscar o la referencia a la celda que contiene el valor que queremos buscar. |
matriz_buscada | El rango de celdas donde se ha de hacer la búsqueda. |
matriz_devuelta | El rango de celdas que contiene el valor (o valores) que se quieren devolver. |
[si_no_se_encuentra] | El texto o valor que se devolverá en caso de que no se encuentre el valor. En caso de omisión, la función devolverá un error. |
[modo_de_coincidencia] | Por defecto se establece en FALSO (0) para una coincidencia exacta. |
[modo_de_búsqueda] | Por defecto se establece en 1 para buscar del primero al último. |
Como es habitual, los argumentos encerrados entre corchetes corresponden a los que son opcionales.
Atención:
- La matriz_buscada y la matriz_devuelta deben tener siempre el mismo tamaño. En caso contrario obtendremos el error #¡VALOR!
- Si se hace referencia a un libro de Excel cerrado, la función devolverá el error #¡REF!
- Si no cuentas con Excel 365 y no puedes esperar más para utilizar BUSCARX, puedes usar la versión Online.
Descarga el libro con los ejemplos para que puedas seguirlos a continuación.
Ejemplos con la función BUSCARX
Ejemplo 1 – Vertical
Es el ejemplo más sencillo que puedo poner. En él, BUSCARX busca en un rango de celdas y devuelve la primera coincidencia que encuentra.
En este ejemplo la matriz_buscada no necesita ordenarse porque BUSCARX devolverá la coincidencia exacta (por defecto).
Básicamente la fórmula de la imagen busca el valor en la celda G9 (Tomate) en las celdas B8:B21 y devuelve el valor de la fila correspondiente de las celdas C8;C21. Si no hubiera encontrado el valor exacto, habría devuelto un error.
La gran ventaja de utilizar BUSCARX en vez de BUSCARV es que si inserto una columna entre B y C, la fórmula continuaría funcionando.
Ejemplo 2 – Horizontal
Aunque hasta ahora he estado comparando BUSCARX con BUSCARV, también es capaz de reemplazar a BUSCARH.
Atención: La matriz_buscada debe contener el mismo número de columnas que la matriz_devuelta. En caso contrario obtendremos un error.
Ejemplo 3 – BUSCARX en tabla de dos entradas
Hasta ahora, una de las formas que teníamos de buscar en una tabla de doble entrada era con las funciones INDICE + COINCIDIR.
Imagina que deseamos encontrar la cantidad de ventas de fruta que hubo en el mes de febrero:
Si evaluamos la fórmula nos daremos cuenta de que la función BUSCARX interior devuelve un rango.
El hecho de que devuelva un rango nos sirve para anidarlo en el argumento matriz_devuelta.
Visto así quizá sea algo complejo de entender. Se puede comparar con el funcionamiento de INDICE + COINCIDIR:
=INDICE(C7:E18;COINCIDIR(G7;B7:B18;0);COINCIDIR(G8;C6:E6;0))
O incluso con la función COINCIDIRX, que es más corta porque no hace falta introducir el argumento del tipo de coincidencia:
=INDICE(C7:E18;COINCIDIRX(G7;B7:B18);COINCIDIRX(G8;C6:E6))
COINCIDIRX es otra de las funciones que de momento solo se pueden usar con Excel 365.
Ejemplo 4 – Resultado de matriz
En la fórmula de la siguiente imagen, vemos que la matriz_devuelta es un rango de dos columnas (C y D).
Actualmente el motor de cálculo de Excel solo puede varias columnas en una dirección, ya sea en columnas, como el ejemplo de la imagen anterior, o en filas (como en la siguiente imagen:
Cuando sucede que los resultados se deben mostrar hacia dos direcciones a la vez, únicamente se muestra la primera.
Otra posibilidad de devolución de varias columnas es cuando las que queremos devolver son son contiguas. En ese caso utilizaríamos una fórmula similar a la de la siguiente imagen:
Ejemplo 5 – Con rangos dinámicos
Ahora que sabemos que la función BUSCARX es capaz de devolver un rango de celdas, podemos utilizarla para devolver un rango dinámico. Se acabó usar DESREF o INDICE + COINCIDIR para generar rangos dinámicos con nombre:
En el siguiente ejemplo vamos a sumar las ventas del mes de febrero. Sí, ya sé que para esto hay otra función mejor como SUMAR.SI.CONJUNTO pero hoy estamos poniendo ejemplos de BUSCARX.
Utilizamos dos BUSCARX para hallar la primera y la última celda del rango que después sumaremos con SUMA.
Observa la evaluación de la fórmula en la siguiente imagen. Cada una de las funciones BUSCARX devuelve una referencia a una celda, que se utilizará para crear el rango de suma:
Hasta ahora hemos visto que BUSCARX ha sido capaz de sustituir a BUSCARV, BUSCARH, INDICE + COINCIDIR y DESREF. … ¡y únicamente hemos utilizados sus tres primeros argumentos!
Ejemplo 6 – Gestión de errores
Todavía recuerdo cuando comencé a utilizar Excel. Cuando quería ocultar los errores tenía que utilizar =SI(ESNOD(BUSCARV…. Un poco más tarde vino SI.ERROR para facilitarnos las cosas. Ahora con BUSCARX no necesitamos funciones auxiliares para gestionar los errores porque el cuarto argumento [si_no_se_encuentra] nos permite especificar el valor a devolver cuando la función BUSCARX no encuentre ninguna coincidencia.
En el siguiente ejemplo he introducido el valor “No se encuentra”. También podemos utilizar números, otra fórmula, una matriz o una referencia a una celda.
Atención: como habrás descubierto a estas alturas, si se omite este argumento, la función devuelve el error #N/A.
Ejemplo 7 – La última coincidencia
Por defecto BUSCARX busca desde arriba hacia abajo (del primer al último elemento). Este es el modo de búsqueda “1”. Utilizar el valor “-1” en el argumento [modo_de_búsqueda] hace que la búsqueda se haga de abajo hacia arriba encontrando así el último valor coincidente. La siguiente imagen muestra BUSCARX devolviendo el último valor de la categoría “Hortalizas”.
Como puedes observar, también podemos buscar estableciendo los valores 2 y -2, que sirven para hacer búsquedas binarias, pero requieren que los datos estén ordenados.
Ejemplo 8 – BUSCARX con comodines
BUSCARX facilita la búsqueda parcial de un valor especificando comodines dentro del valor de búsqueda.
Presta atención cuando utilices BUSCARX
Al principio del artículo he comentado que no deberías lanzarte a utilizar BUSCARX porque puede que te lleves una decepción.
Mientras se va extendiendo el uso de Office 365 no todos los usuarios dispondrán de esta función ni de COINCIDIRX por lo que si vas a enviar el archivo a otras personas, pregúntales antes qué versión de Excel utilizan.
Espero que este tutorial te haya servido para conocer más en profundidad la función. Compártelo con quien creas que lo puede necesitar (es lo que he hecho yo al escribirlo… y tú lo has leido).
buen dia Sergio,
increible esta very nice, solo que como consigo esa formula para agregarla a excel?
mil saludos
¡Hola Juan!
Necesitas tener Office 365. Eso será suficiente
Con Excel Online la podrás utilizar.