Te voy a mostrar 3 métodos para buscar datos en Excel: mediante el menú de datos, utilizando funciones y con macros. Dependiendo del volumen de información que manejes y de la configuración de tus tablas, puede ser interesante uno u otro. ¿Te interesa? Sigue leyendo.
(La fecha original de publicación de este artículo es el 12 de enero de 2018, por eso tiene tantas visitas. La nueva fecha corresponde al día de actualización del contenido).
Contenido
Buscar datos en Excel
Base de datos
Tomamos como ejemplo una base de datos con información sobre los países del mundo (en inglés), que he descargado de la web http://gsociology.icaap.org/dataupload.html. Son datos de dominio público y no he comprobado si están actualizados o no.
El objetivo
Suponemos que el objetivo es hacer búsquedas por país para obtener su población. ¿Cómo hacemos esto? Vamos a ver 3 métodos diferentes:
- Utilizando filtros de valores.
- Mediante la fórmula BUSCARV.
- Con macros y VBA (Visual Basic para Aplicaciones).
Filtro de valores
La opción Filtro nos sirve, como su nombre indica, para filtrar valores de nuestras tablas que cumplan una serie de condiciones. Aunque ésta es su función principal, también podemos utilizarlo para buscar un valor concreto haciendo un filtrado exclusivo por dicho valor. ¿Cómo se hace?
Seleccionamos el encabezado de nuestra tabla y hacemos clic en -Datos- y -Filtro-. Vemos como aparece en cada uno de los campos un desplegable para filtrar por él.
Vamos al campo que nos interesa (Country), hacemos clic en el desplegable y en lugar de hacer selecciones, escribimos directamente el nombre del país que buscamos: en este caso, Chile.
Pulsamos -Aceptar- y Excel lleva a cabo el filtrado y nos busca los datos que cumplen con el criterio que hemos seleccionado, es decir, países que contienen la cadena ‘Chile’. Sólo hay 1 y al ejecutar el filtrado obtenemos directamente toda su información, incluida su población. ¡Misión cumplida!
Función BUSCARV
Las funciones BUSCARV y BUSCARH se utilizan para buscar valores en un rango de datos. La primera recorre el rango verticalmente, por eso la V, mientras que la segunda lo hace horizontalmente (H).
BUSCARV busca un valor en la primera columna de un rango de celdas y devuelve otro valor situado en la misma fila del valor encontrado y en la columna que indiquemos. Vamos a ver cómo es la sintaxis de esta función:
- valor buscado (obligatorio): dato que queremos encontrar y que se busca en la primera columna de nuestro rango de datos. Puede ser una referencia a una celda o directamente el valor (escrito entre comillas).
- rango de datos (obligatorio): celdas que contienen nuestros datos.
- indicador de columnas: número de columna en la que se encuentra el resultado, es decir, buscamos un valor situado en la columna 1 y queremos que la función nos devuelva el valor ubicado en otra columna.
- tipo de coincidencia (opcional): valor lógico que puede ser FALSO, si queremos una búsqueda exacta, o VERDADERO, si puede ser aproximada. Si se omite, se toma por defecto VERDADERO.
En nuestro ejemplo:
Buscamos el valor de la celda H2 (Chile) en la primera columna del rango A6:T232 (Country) y queremos obtener el dato de la columna 3 (Population). Vemos como el resultado es el número de habitantes de Chile. ¡Genial!
Más información sobre la función BUSCARV en:
- La página de Microsoft.
- La web Excel Total.
Macro con VBA
Por último, vamos a ver cómo se pueden hacer búsquedas de datos con una macro sencilla. Aunque no tengas experiencia en macros y Visual Basic para Aplicaciones, te recomiendo que te quedes y veas este ejemplo: a programar se aprende programando 😉 ¡Ah!, y recuerda visitar también el curso de macros para aprender a dar los primeros pasos con el editor de VBA. Puede que necesites esta información para entender el ejemplo.
Ir al curso de MACROS en Excel
El código de nuestra macro es el siguiente:
Sub BuscarPoblacion()
Dim Pais As String
Dim Poblacion As Variant
Dim Celda As Range
Pais = InputBox("Introduce el país del que deseas conocer su población:")
If Pais = "" Then Exit Sub
Poblacion = 0
For Each Celda In Sheets("Datos").Range("$A$6:$A$232")
If Celda = Pais Then
Poblacion = Celda.Offset(0, 2)
End If
Next Celda
If Poblacion = 0 Then
MsgBox Pais & " tiene " & Format(Poblacion, "#,##0") & " habitantes."
Else
MsgBox "Ese país no existe o no está en mi base de datos..."
End If
End Sub
Vamos a ver qué quieren decir las instrucciones que hemos incluido en nuestro código:
- El nombre de nuestra macro es BuscarPoblacion y se abre con la sentencia -Sub-.
- Definimos con -Dim- las variables Pais, como cadena de texto, Población, como ‘variant’, y Celda, como rango.
- A la variable País le asignamos el valor que introduzca el usuario mediante la instrucción -InputBox-. Por eso hemos definido la variable Pais como ‘variant’, para no obtener errores tras la entrada del usuario.
- Con la instrucción -If- comprobamos si el usuario no ha introducido ningún valor. Si es así, salimos de la macro con -Exit Sub-.
- A continuación asignamos a la variable Poblacion el valor 0 y empezamos la búsqueda.
- Recorremos con el bucle -For / Next- las celdas del rango $A$6:$A$232.
- Si el valor de la Celda es igual al valor de la variable Pais, se asigna a la variable Poblacion el valor que está en la misma fila y desplazado dos columnas, mediante la instrucción Offset(0,2): desplazamiento de 0 filas y 2 columnas.
- Al terminar el bucle -For / Next- comprobamos con -If / End If- si la población es distinta de 0. Si es así, generamos un cuadro de texto con el resultado de la búsqueda. Si no, otro diciendo «Ese país no existe o no está en mi base de datos…». Los cuadros de texto (pop-up) se crean con la instrucción -MsgBox-.
- Cerramos nuestra macro con -End Sub-.
Si no has programado nunca con Visual Basic, este código te sonará a chino, pero verás como si sigues esta web e investigas por ahí, poco a poco irás familiarizándote con el lenguaje y llegarás a programar tus propias macros. ¡Garantizado!
Nos queda crear un botón en nuestra hoja y asignarle la macro que hemos creado. Puedes ver cómo crear el botón en el curso de macros en Excel.
Haciendo clic en el -BUSCAR- aparece el formulario para introducir el país:
Escribimos Chile y pulsamos -Aceptar-. Se cierra el formulario y aparece el cuadro de texto con el resultado. ¡Magia!
Descargar archivo
Os dejo a continuación el archivo para que podáis analizar el código y practicar con este ejemplo. Espero que os resulte útil.
Nos vemos muy pronto con más funciones y macros de Excel.
¡Saludos!
Gerardo Marote