BUSCARV, BUSCARH y BUSCARX en Excel (Segunda parte)


BUSCARX, es como el primo de Zumosol (referencia para mayores de 40) de BUSCARV y BUSCARH.

El hermano mayor, la fórmula capaz de dejar a las otras dos en knock out

Con BUSCARX podemos hacer auténticas virguerías, pero hay que conocerla bien para sacarle todo el provecho que tiene.

Como comenté el último día, hoy nos metemos de lleno en ella para que nunca más se te vuelva a resistir.

¿Te apetece?

Pues, venga. Al lío…

BUSCARX

Antes de empezar con la función BUSCARX, tengo que explicarte que esta función no está disponible en todas las versiones de Excel.

Se introdujo a partir de la versión 1910 y eso quiere decir que, si tienes un Excel 2016 o una de las primeras versiones del 2019, probablemente no la vas a tener.

De todas formas, saber si tu versión de Excel incluye el BUSCARX, es tan sencillo como ir a la barra de fórmulas y escribir =BUSCAR, si BUSCARX no aparece entre las opciones que te muestra Excel, querrá decir que tu versión no la tiene.

Cómo saber qué versión de Excel tienes

Al margen de que puedes saber si dispones o no de la fórmula BUSCAX escribiendo en la barra de fórmulas, si quieres ver qué versión de Excel tienes, puedes averiguarlo yendo al menú “Archivo” y en “Cuenta” podrás verla:

Versión de Excel

Para qué sirve BUSCARX

BUSCARX es como la “digievolución” (aquí ya pillo a los más treinteros) de BUSCARV y BUSCARH.

Es una fórmula muchísimo más flexible que las dos anteriores y tiene tal cantidad de opciones de búsqueda, que no te lo puedes ni imaginar.

Hoy verás que es una fórmula muy potente, pero tampoco hay que tenerle miedo, ya que, una vez entendida, no es complicada.

Estas son unas cuantas cosas de lo que se puede hacer con BUSCARX:

  • Puedes buscar un dato.
  • Puedes buscar varios datos.
  • Puedes buscar datos exactos.
  • Puedes decirle que si no encuentra el dato exacto, que te devuelva un valor fijo (por ejemplo “No tá”)
  • Puedes decirle que si no encuentra el dato exacto, que te devuelva el siguiente valor mayor.
  • Puedes decirle que si no encuentra el dato exacto, que te devuelva el siguiente valor menor.
  • Puedes buscar en dos tablas de datos.
  • Puedes buscar por solo una parte del dato, no por el dato entero.
  • Puedes buscar por dos criterios de búsqueda.
  • Puedes decirle que empiece a buscar por la primera fila.
  • Puedes decirle que empiece a buscar por la última fila.

Casi cualquier cosa que quieras buscar, lo puedes hacer con BUSCARX.

Entiendo que todas estas opciones, sin su correspondiente explicación, pueden abrumar un poco, pero tranqui…

Para que puedas entenderlas mejor, lo haré con varios ejemplos.

No sé si voy a poder explicar todas las opciones porque esto no se acabaría nunca, sin embargo, intentaré abarcar el máximo de posibilidades para que puedas aprovechar todo su potencial.

Argumentos de la fórmula BUSCARX

Como ya te puedes imaginar, los argumentos de BUSCARX son algunos más de los que tienen BUSCARV y BUSCARH, pero no muchos más, solo dos y, además, opcionales.

Estos son los argumentos de BUSCARX:

=BUSCARX(valor_buscado; matriz_buscada; matriz_devuelta; [si_no_se_encuentra]; [modo_de_coincidencia]; [modo_de_búsqueda])

Como que el resultado que vayamos a obtener de la fórmula BUSCARX va a depender mucho de lo que hagamos con los argumentos, sobre todo en los opcionales, primero vamos a hablar un poco sobre los argumentos y más adelante, del efecto que tienen sobre el resultado que vamos a obtener, dependiendo de qué pongamos en su interior.

Argumentos obligatorios

Tal y como su nombre indica, estos argumentos los vamos a tener que utilizar sí o sí para que la fórmula nos devuelva un resultado.

Los argumentos obligatorios de la fórmula BUSCARX son los tres siguientes:

valor_buscado

El valor buscado, igual que en BUSCARV y BUSCARH, corresponde al dato que estamos buscando.

Aquí no hay secreto.

En el ejemplo que voy a usar para empezar, tenemos una lista de países y el valor buscado corresponderá a Canadá.

BUSCARX. Valor buscado

matriz_buscada

La matriz buscada corresponde al rango de celdas que contiene los datos donde Excel tiene que ir a buscar.

En este caso, serían las celdas comprendidas entre A3 y A11, donde se encuentran los nombres de los países en nuestra tabla.

BUSCARX. Matriz buscada

Aquí ya encontramos la primera diferencia respecto a BUSCARV y BUSCARH.

BUSCARX usa una matriz de búsqueda y una matriz de vuelta, mientras que BUSCARV y BUSCARH usan una matriz de tabla única, seguida del número de columna o fila que devuelve el resultado.

Es decir, aunque el argumento es equivalente (allá dónde se debe realizar la búsqueda), en BUSCARV y BUSCARH el argumento se llama matriz_tabla, porque el rango de búsqueda corresponde a toda la tabla que contiene los datos y busca en la primera columna o fila.

Sin embargo, en BUSCARX, se llama matriz_buscada porque la búsqueda se puede hacer en rangos distintos, es decir, podemos buscar en cualquier columna de la tabla, no necesariamente en la primera.

Si, en este ejemplo, en lugar de buscar Canadá buscáramos CA para que nos devolviera Canadá, podríamos cambiar la matriz_buscada de A3:A11 a D3:D11.

En definitiva, que el orden de búsqueda no tiene por qué ser de izquierda a derecha, puede ser en cualquier sentido. Puedes buscar un dato en la columna D para que te devuelva lo que se encuentra en la columna A.

matriz_devuelta

Aquí la cosa cambia por completo.

Como te he comentado, BUSCARX puede devolver uno o más datos, por tanto, ya no nos sirve solo el número de la columna en la que están esos datos como era en el caso de BUSCARV.

Si queremos que solo nos devuelva un único dato, la matriz devuelta será una columna, pero si queremos que nos devuelva más de un dato, entonces esa matriz serán varias columnas.

Lo veremos en más detalle más adelante.

Argumentos opcionales

Cuando en una fórmula de Excel te encuentras con argumentos entre corchetes, quiere decir que esos argumentos son opcionales, por tanto, el comportamiento de la fórmula variará en función de si los rellenas o no.

La fórmula BUSCARX tiene tres argumentos opcionales, [si_no_se_encuentra], [modo_de_coincidencia] y [modo_de_búsqueda]

Los resultados que vamos a obtener variarán dependiendo de si utilizamos o no estos argumentos y de lo que pongamos en su interior.

[si_no_se_encuentra]

Tal y como te estás imaginando, lo que pongamos dentro de este argumento será lo que BUSCARX nos va a devolver en el caso que no encuentre el valor que está buscando.

[modo_de_coincidencia]

El modo de coincidencia es el que utilizamos para decirle a BUSCARX como tiene que ser la coincidencia que tiene que encontrar respecto al valor buscado.

Tiene cuatro posibles valores:

  • 0: Coincidencia exacta
  • -1: Coincidencia exacta o el siguiente elemento menor
  • 1: Coincidencia exacta o el siguiente elemento mayor
  • 2: Coincidencia de caracteres comodín.
BUSCARX. Modo de coincidencia

[modo_de_búsqueda]

El modo de búsqueda, que también tiene cuatro posibles valores, sirve para decirle a BUSCARX cómo debe realizar la búsqueda.

Los posibles valores, en este caso, son:

  • 1: Búsqueda del primero al último.
  • -1: Búsqueda del último al primero.
  • 2: Búsqueda binaria (orden ascendente).
  • -2: Búsqueda binaria (orden descendente).
BUSCARX. Modo de búsqueda

Resultados que podemos obtener con BUSCARX dependiendo del valor de sus argumentos

Tal y como te he comentado, dependiendo del valor que le asignemos a los argumentos opcionales, variará el resultado que nos devuelva la fórmula BUSCARX.

Pero no solo de los opcionales, también de lo que pongamos en el argumento matriz_devuelta.

matriz_devuelta

Tenemos dos posibles resultados que dependerán de lo que indiquemos en la matriz devuelta.

Un único dato

Si, en el ejemplo, queremos que BUSCARX nos devuelva la población de Canadá, la matriz corresponderá a todas las celdas que contienen los datos de las poblaciones, las que están comprendidas entre la B3 y la B11

Buscar un único dato

Más de un dato

En caso que queramos que BUSCARX nos devuelva toda la información que tenemos sobre Canadá, población, esperanza de vida y abreviatura, la matriz devuelta serán todas las columnas que contengan esos datos, es decir, las celdas comprendidas entre la B3 y la D11.

Buscar más de un dato

En este caso, cuando cliquemos intro y confirmemos la fórmula, los datos de las tres columnas correspondientes a Canadá, población esperanza de vida y abreviatura, se rellenarán en celdas contiguas, de manera automática.

Si te fijas en la imagen, estamos poniendo la fórmula en la celda G6, sin embargo, las celdas H6 y I6 también están afectadas por la misma.

Una vez confirmada, si te sitúas en cualquiera de estas dos celdas, H6 y I6, podrás ver en la barra de fórmulas que tienen la misma fórmula, pero en un tono gris pálido y verás que ésta no es editable.

La fórmula solo la vamos a poder editar en la celda en la que ha sido creada, es decir, en la celda G6.

Además, las tres celdas afectadas, tienen un reborde sombreado en azul que nos indica eso, que las tres celdas forman parte del resultado de la misma fórmula.

Buscar más de un dato. Resultado

[si_no_se_encuentra]

Para mostrarte el efecto que este argumento tiene en BUSCARX sobre el resultado, he creado una búsqueda con Uruguay, un país que no se encuentra en la tabla.

BUSCARX. Si no se encuentra

Devuelve un valor fijo

Como puedes ver en la imagen, cuando no ponemos nada en este cuarto argumento, si el valor a buscar no se encuentra, BUSCARX nos devuelve un error.

Para evitarlo, tenemos tres posibles opciones:

  1. Poner un texto entre comillas.
  2. Poner un espacio en blanco representado por dos comillas dobles.
  3. Poner un número, en este caso, sin comillas.

En la imagen he puesto las cuatro fórmulas para que veas el resultado que devuelve cada una de estas opciones.

[modo_de_coincidencia]

Para entender mejor el modo de coincidencia, vamos a cambiar el ejemplo, porque con la tabla que hemos usado hasta ahora, es más complicado de explicar.

Vamos a usar una tabla en la que se muestran unos porcentajes de descuento que dependen de un importe vendido.

Modo de coincidencia. Tabla

Vamos a ver los resultados que vamos a obtener, dependiendo de la opción que escojamos para este quinto argumento.

Buscar datos exactos

Para ello, usaremos la opción 0: Coincidencia exacta.

La coincidencia exacta es el valor por defecto y con él le estamos diciendo a BUSCARX que busque exactamente lo que hemos puesto en el primer argumento.

Es decir, en la tabla de ejemplo, debería ser cualquiera de los valores que se encuentran en la columna “Importe ventas”.

Modo de coincidencia exacta

Buscar el siguiente valor menor

Usaremos -1: Coincidencia exacta o el siguiente elemento menor

Con este tipo de coincidencia, le decimos a BUSCARX que busque el valor exacto y, en caso de no encontrarlo, que nos devuelva el siguiente menor.

En el ejemplo estamos buscando el valor 46.520.

Esta cifra no existe en la columna de los importes, por tanto, cuando BUSCARX vea que no está, buscará el importe inmediatamente inferior y nos devolverá el porcentaje que le corresponde a ese importe.

Modo de coincidencia. Siguiente valor menor

Buscar el siguiente valor mayor

Usaremos 1: Coincidencia exacta o el siguiente elemento mayor

Este caso es como el anterior, pero en lugar de devolvernos el porcentaje que corresponde al importe inmediatamente inferior, BUSCARX nos devolverá el que corresponde al inmediatamente superior, en este caso, sería el 20%.

Modo de coincidencia. Siguiente valor mayor

Buscar por solo una parte del dato

Usaremos 2: Coincidencia de caracteres comodín.

Este tipo de coincidencia se utiliza cuando, en el valor buscado, utilizamos unos caracteres específicos que se pueden usar como comodín.

Estos caracteres son el asterisco *, el signo de interrogación de cierre ? y la virgulilla ~ y cada uno de ellos sirve para casos diferentes.

Asterisco *

El asterisco es el comodín que se añade al valor buscado que se puede utilizar tanto al principio como al final y al principio y al final del mismo.

Me explico.

Si ponemos el asterisco delante de los caracteres a buscar, BUSCARX encontrará todas las coincidencias que contengan ese valor buscado a la derecha, al margen de lo que tengan a la izquierda.

Es decir, si en el valor buscado ponemos *este, BUSCARX encontrará Este, Sureste, Nordeste, Oeste, Celeste, …

Si ponemos el asterisco detrás de los caracteres a buscar, BUSCARX encontrará todas las coincidencias que contengan ese valor buscado a la izquierda, al margen de lo que tengan a la derecha.

Es decir, si en el valor buscado ponemos este*, BUSCARX encontrará Este, Estefanía, Esteban, Estela, Ester, …

Si ponemos el asterisco delante y detrás de los caracteres a buscar, BUSCARX encontrará todas las coincidencias que contengan ese valor buscado, al margen si a la izquierda o a la derecha tienen otros caracteres.

Si ponemos *este*, BUSCARX encontrará todos los ejemplos que he puesto antes y también, Desterrado, Destete, Destellar, Destemplar, …

Creo que se entiende, ¿no?

Interrogación de cierre ?

El concepto de la interrogación de cierre es similar al del asterisco, solo que en medio del valor buscado.

Por ejemplo, imaginemos que estamos buscando “María”, pero no sabemos si en la tabla está escrito con tilde o sin ella.

En este caso, podemos poner en el valor buscado “Mar?a” y BUSCARX encontrará tanto una  María, como una Maria, o una Marta, una Marla, o una Marea…

La diferencia respecto al asterisco es que el signo de interrogación de cierre sustituye a un único carácter, es decir, no va a encontrar Marcha…

Virgulilla ~

La virgulilla (que, por cierto, se escribe a través de ALT+126) sirve para anular el valor de comodín que tienen el asterisco y el signo de interrogación de cierre.

Es decir, si el valor buscado contiene un asterisco o un signo de interrogación de cierre y queremos que BUSCARX no los entienda como comodines sino como lo que son, tenemos que poner delante esa virgulilla.

Ejemplo.

El valor buscado es “¿Cómo?”.

Si ponemos sólo “¿Cómo?”, BUSCARX encontrará “¿Cómor”.

Para evitarlo, tenemos que poner en el valor buscado “¿Cómo~?” para que encuentre “¿Cómo?”.

Queda claro, ¿verdad~?

[modo_de_búsqueda]

Vamos a ver uno a uno lo que significan cada uno de los valores que podemos dar a este argumento, pero antes, vamos a entender qué significa que las dos primeras opciones utilicen un sistema de búsqueda lineal y las dos últimas utilizan un sistema de búsqueda binaria.

Sistema de búsqueda lineal

El sistema de búsqueda lineal significa que, en un rango de datos, la búsqueda empieza por el que está en la primera posición, si el dato no concuerda con lo que estamos buscando, pasa al que está en segunda posición, si este no concuerda, al que está en tercera posición y así sucesivamente hasta que encuentra el dato que estaba buscando.

Esta búsqueda lineal, tiene el coste de que, si el dato que buscamos está en última posición, tenemos que recorrer todo el rango hasta encontrarlo.

La búsqueda binaria funciona de otra manera.

Sistema de búsqueda binaria

Este tipo de búsqueda necesita que los datos estén ordenados y para entender el por qué, será mejor que te lo explique con un ejemplo.

Vamos a imaginar que hacemos una búsqueda en las páginas de un libro. Imaginemos que este libro tiene 100 páginas y buscamos la página 43.

El método binario, lo que haría es abrir el libro por la mitad. Ver que está en la página 50 y desechar las páginas de la 51 a la 100.

Con las páginas de la 1 a la 50, volvería a hacer lo mismo. En este caso, desecharía las páginas de la 1 a la 25 y se quedaría con las páginas de la 26 a la 50, y así, sucesivamente hasta que encuentra la página que está buscando.

Por tanto, este método evita las iteraciones del método lineal, pero evidentemente, como te decía antes, para que funcione necesita que los datos estén ordenados.

Ahora sí, vamos a ver las cuatro opciones que nos ofrece el argumento [modo_de_búsqueda].

Empezar a buscar por la primera fila

Opción 1: Búsqueda del primero al último.

Este valor es el predeterminado, es decir, BUSCARX tendrá el mismo comportamiento si no ponemos nada en el argumento que si ponemos un 1.

Tal y como indica la ayuda inteligente de la fórmula BUSCARX, realiza la búsqueda empezando por el primer elemento, es decir, va de arriba a abajo.

Empezar a buscar por la última fila

Opción -1: Búsqueda del último al primero.

Poco a decir respecto a esta opción.

Es igual que la anterior, pero realizando una búsqueda inversa, es decir, empieza por el último elemento y va hacia arriba.

Datos ordenados de forma ascendente A-Z

Opción 2: Búsqueda binaria (orden ascendente)

Esta opción realiza la búsqueda binaria basándose en que el rango de búsqueda esté ordenado de forma ascendente.

Si este rango no está ordenado, devuelve resultados no válidos.

Datos ordenados de forma descendente Z-A

Opción -2: Búsqueda binaria (orden descendente)

Esta opción realiza la búsqueda binaria contraria, es decir, basándose en que el rango de búsqueda esté ordenado de forma descendente.

De igual forma, si el rango no está ordenado, devuelve resultados no válidos.

Bueno, después de todo este rollo para conocer los atributos de BUSCARX y sus opciones, ya hemos visto parte de las búsquedas que te he comentado al principio que se podían hacer con esta fórmula.

Hemos visto cómo buscar un dato, cómo buscar varios, cómo buscar datos exactos, cómo puede devolvernos un valor fijo en caso de no encontrar lo que busca, cómo nos puede devolver el valor mayor o menor, también hemos visto como buscar con una parte del dato a buscar, cómo empezar a buscar por la primera o por la última fila.

Con lo cual, sólo nos quedaría la búsqueda en dos tablas de datos y la búsqueda por dos rangos de búsqueda.

Aunque he dicho al principio que no sabía si explicaría todas las opciones, llegados a este punto, dejarme solo estas dos, me parece una tontería, por tanto, vamos a verlas.

Buscar en dos tablas de datos.

La búsqueda en dos tablas de datos diferentes con BUSCARX es muy sencilla.

De la misma manera que cuando sumamos un rango de datos, utilizamos la fórmula SUMA y ponemos la celda de inicio y la celda de fin del rango a sumar, separadas por dos puntos, en BUSCARX haremos lo mismo, pero separando los argumentos matriz_buscada y matriz_devuelta.

Por ejemplo, si tenemos dos tablas como las siguientes:

Buscar en dos tablas de datos. Tablas

Lo que tenemos que hacer es indicar una matriz de búsqueda que haga referencia a todas las celdas que contienen los nombres de los países, es decir, desde A3 a A11 y desde A16 a A24, y una matriz devuelta que haga referencia a todas las celdas que tienen los datos que queremos encontrar, en este caso, desde B3 a D11 y desde B16 a D24.

Para ello, lo que tenemos que hacer es poner dos puntos entre cada una de estos rangos, dentro de cada argumento de la fórmula, por tanto, la fórmula quedaría de la siguiente manera:

=BUSCARX(F2;A3:A11:A16:A24;B3:D11:B16:D24)

Buscar en dos tablas de datos. Resultado

Buscar por dos rangos de búsqueda

Este caso es muy chulo, pero vamos a necesitar anidar una fórmula BUSCARX dentro de otra.

No te asustes, que es muy fácil.

Pongamos el ejemplo siguiente en el que tenemos las ventas de coches en los años 2020, 2021 y 2022 distribuidos por marcas.

Supongamos que queremos obtener las ventas de una marca determinada en un año concreto, por ejemplo, Toyota en 2022.

Buscar por dos rangos de datos

Lo que tenemos que hacer es decirle a BUSCARX lo siguiente:

  1. Que busque el valor que está en la celda F2, que en este caso es Toyota
  2. Le decimos dónde lo tiene que buscar, en el rango entre las celdas A1 y A10, que es donde se encuentran las marcas de coches.
  3. En el tercer argumento, en lugar de darle la matriz devuelta, insertamos un nuevo BUSCARX.
  4. En este segundo BUSCARX le decimos que busque el valor que está en la celda G2, que corresponde al año 2022.
  5. La matriz de búsqueda, en este caso, serán las celdas B1, C1 y D1, por tanto, el rango B1:D1
  6. Ahora sí, le decimos cual es la matriz devuelta que, en este caso, será entre las celdas B1 y D10.

Aceptamos y ya tenemos el resultado.

Buscar por dos rangos de datos. Resultado

Bueno, creo que después de haber leído hasta aquí, será difícil que la fórmula BUSCARX se te vuelva a resistir nunca más.

Soy consciente de que me he extendido mucho, pero mi objetivo era que quedasen claras las inmensas posibilidades que nos ofrece esta fórmula, una de las más potentes que nos ha ofrecido Excel en los últimos tiempos.

Además, si sigues toqueteándola, descubrirás que esto no es todo lo que podemos llegar a conseguir con ella.

Nada nuevo que no sepas

Nombre, email, aceptas y... ¡Sorpresita!

Si quieres saber cómo sacarle el máximo partido a tus libros de Excel, únete a los cientos de miles de millones de de personas que lo están descubriendo día a día.


Deja un comentario