Cómo crear una consulta web en Excel para obtener datos de un sitio web
Una consulta web en Excel te permite llevar datos de un sitio web a una hoja de cálculo de Excel. Esta función buscará cualquier tabla en la página web y te permitirá seleccionar aquellas que contengan los datos que deseas agregar a tu hoja de cálculo, permitiendo actualizaciones dinámicas desde la página web. Las consultas web no solo son útiles para extraer información de páginas HTML estándar, también pueden ser utilizadas en situaciones donde crear o mantener una conexión ODBC estándar sería difícil o imposible, como una hoja de cálculo utilizada por vendedores en todo el país.
Comenzando
Para entender cómo funcionan las consultas web, vamos a utilizar un ejemplo básico. Luego, veremos algunos trucos que te permitirán trabajar alrededor de las limitaciones de Excel y cómo un poco de código VBA puede darte los resultados que deseas. Puedes descargar este libro de Excel para ver una implementación de muestra de estas técnicas.
Realizando la consulta web
Para crear una consulta web:
- Selecciona la primera celda en la que deseas que aparezcan los resultados.
- Elige Datos | Obtener datos externos | Nueva consulta web para abrir el cuadro de diálogo mostrado en Figura A.
- Ingresa la URL a la que deseas hacer la consulta en el área de dirección y haz clic en el botón "Ir" (Figura B).
- Selecciona la tabla que deseas utilizar para la consulta (Figura C).
- Haz clic en el botón "Importar".
¡Y eso es todo! Los datos ahora están en tu hoja de cálculo (Figura D).
Personalizando la consulta
Después de crear una consulta web, puedes personalizarla para adaptarla a tus necesidades. Para acceder a las propiedades de la consulta web, haz clic derecho en una celda de los resultados de la consulta y elige "Editar consulta" (también puedes hacer clic en "Editar consulta" en la barra de herramientas de Datos externos o elegir Datos | Obtener datos externos | Editar consulta). Cuando aparezca la página web que estás consultando, haz clic en el botón "Opciones" en la esquina superior derecha de la ventana para abrir el cuadro de diálogo mostrado en Figura E. Las opciones aquí te permiten cambiar cómo interactúa la consulta con la página web en sí.
Además, tienes las mismas opciones de rango de datos que tienes con otras consultas de datos externos, como consultas ODBC. Solo tienes que hacer clic derecho en una celda de los resultados de tu consulta y elegir "Propiedades del rango de datos" (o hacer clic en "Editar consulta" en la barra de herramientas de Datos externos o elegir Datos | Obtener datos externos | Propiedades del rango de datos) para abrir el cuadro de diálogo mostrado en Figura F. Probablemente quieras cambiar el nombre del rango de datos por defecto a un nombre al que puedas acceder fácilmente a través de una macro. En este ejemplo, renombraremos el rango de datos a "Precios de acciones".
Parámetros
Desafortunadamente, trabajar con parámetros no es tan sencillo como podría serlo. El asistente que crea la consulta de muestra anterior no te permite ingresar parámetros. Cuando obtiene la página web, escapará los identificadores de parámetros en la URL y devolverá una página sin los resultados correctos. Esto evita que selecciones la tabla que deseas utilizar para la importación, por lo que deberás trabajar alrededor de esta limitación de Excel. Los parámetros de consulta web te permiten usar valores predefinidos, obtener los valores de un rango de una hoja de cálculo, solicitar al usuario una entrada o establecer valores programáticamente a través de macros VBA.
Una solución alternativa es crear tu consulta como se describe anteriormente y luego ejecutar una macro VBA para cambiar dinámicamente la propiedad de conexión de la consulta y así proporcionar la URL correcta para las páginas web que utilizan datos GET. En este ejemplo, podríamos usar un código similar al Listing A.
Para páginas web que utilizan datos GET, esta es una solución perfectamente aceptable. Para páginas web que utilizan datos POST, esto no es una solución. Esos escenarios requerirán un poco de trabajo manual. Deberás abrir un editor de texto y crear un archivo IQY (Consultas por internet) como un archivo de texto plano para utilizarlo como base para tu importación de datos. El archivo IQY debe tener cuatro líneas:
Tipo de consulta
Versión de consulta
URL
Parámetros POST
La línea de Tipo de consulta debe ser simplemente WEB y la versión de consulta puede ser cualquier número que desees (1 está bien). La línea URL debe contener la propia URL. Los parámetros deben tener el siguiente formato:
Parámetro1=Valor1&Parámetro2=["Valor 2", >"Ingresa un valor para el Parámetro 2: "]
6 pasos para crear un universo web y optimizar tu estrategia de marketing en líneaAquí es donde puedes usar algunos trucos. Con esa muestra de línea de parámetros, "Valor1" se enviará como el valor para Parámetro1, pero se le solicitará al usuario que ingrese el valor para Parámetro2 con la frase "Ingresa un valor para el Parámetro 2:". Esto funciona tanto para consultas GET como POST. El texto de la solicitud es opcional.
En este ejemplo, solo necesitamos un parámetro: el símbolo de la acción. Entonces nuestro archivo de consulta web se vería así:
WEB
1
http://finance.yahoo.com/q/hp
s=["Símbolo de Acción"]
Una vez que hayas creado el archivo de consulta, puedes usarlo en la hoja de cálculo. Elige Datos | Obtener datos externos | Importar datos y selecciona el archivo de consulta que creaste en el cuadro de diálogo Abrir. Se te pedirá que especifiques el símbolo de la acción que se utilizará. Los resultados de tu consulta aparecerán entonces en la hoja de cálculo.
Un último truco es utilizar este archivo de consulta para engañar al asistente de importación y permitirte seleccionar la tabla exacta de datos deseados y seguir utilizando parámetros. Una vez que el archivo de consulta se haya cargado, puedes editar la consulta en Excel. La consulta no funcionará porque el editor no pasará nuestros valores correctamente. Sin embargo, te mostrará la página web y desde allí puedes navegar o buscar lo que necesites hacer para ver la página con la tabla seleccionada. Una vez que hayas seleccionado la tabla (como hacer una consulta web a través del asistente), puedes editar los parámetros para utilizar la metodología deseada (solicitudes, valores codificados en duro o datos de un rango de una hoja de cálculo). También puedes establecer estos valores a través de código VBA.
Una vez que la consulta web haya sido creada a partir del archivo, ya no necesitas el archivo. No es necesario distribuirlo con la hoja de cálculo de Excel.
¡Detén el avance del alcance antes de que comience!Trabajando con la consulta a través de VBA
El rango de datos se agrega a la colección de QueryTables en el objeto Worksheet y se puede hacer referencia a él por número de índice o por el nombre del rango de datos. En nuestro ejemplo, ThisWorkbook.Sheets("Consulta web").QueryTables("Precios de acciones") se refiere a nuestra consulta web. El uso más común de VBA con la consulta web es utilizar su método Refresh() para forzar que los datos se actualicen desde la fuente y se vuelvan a cargar en la hoja de cálculo. También puedes utilizar el método SetParam() en la propiedad Parameter del objeto QueryTable para establecer manualmente (o solicitar al usuario que ingrese) el valor del parámetro (la propiedad Value es solo de lectura). El código de ejemplo en Listing B toma el símbolo de la acción como una cadena, lo coloca en el parámetro y luego actualiza los datos de la consulta.
En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Gestión de proyectos, allí encontraras muchos artículos similares a Cómo crear una consulta web en Excel para obtener datos de un sitio web , tenemos lo ultimo en tecnología 2023.
Artículos Relacionados