Tipo de cambio actualizado en Excel

He analizado repetidamente formas de importar datos a Excel desde Internet con la posterior actualización automática. En particular:

  • En versiones anteriores de Excel 2007-2013, esto se podía hacer con una solicitud web directa.
  • A partir de 2010, esto se puede hacer de manera muy conveniente con el complemento Power Query.

A estos métodos en las últimas versiones de Microsoft Excel, ahora puede agregar otro: importar datos de Internet en formato XML usando funciones integradas.

XML (eXtensible Markup Language = Extensible Markup Language) es un lenguaje universal diseñado para describir cualquier tipo de datos. De hecho, es texto sin formato, pero con etiquetas especiales añadidas para marcar la estructura de datos. Muchos sitios ofrecen flujos gratuitos de sus datos en formato XML para que cualquiera los descargue. En el sitio web del Banco Central de Nuestro País (www.cbr.ru), en particular, con la ayuda de una tecnología similar, se brindan datos sobre los tipos de cambio de varias monedas. Desde el sitio web de la Bolsa de Moscú (www.moex.com) puede descargar cotizaciones de acciones, bonos y mucha otra información útil de la misma manera.

Desde la versión 2013, Excel tiene dos funciones para cargar directamente datos XML de Internet en las celdas de la hoja de cálculo: SERVICIO WEB (SERVICIO WEB) и FILTRO.XML (FILTROXML). Trabajan en parejas – primero la función SERVICIO WEB ejecuta una solicitud al sitio deseado y devuelve su respuesta en formato XML, y luego usa la función FILTRO.XML "analizamos" esta respuesta en componentes, extrayendo los datos que necesitamos de ella.

Veamos el funcionamiento de estas funciones utilizando un ejemplo clásico: importar el tipo de cambio de cualquier moneda que necesitemos para un intervalo de fechas determinado desde el sitio web del Banco Central de Nuestro País. Usaremos la siguiente construcción como un espacio en blanco:

Tipo de cambio actualizado en Excel

Aquí:

  • Las celdas amarillas contienen las fechas de inicio y finalización del período que nos interesa.
  • El azul tiene una lista desplegable de monedas usando el comando Datos – Validación – Lista (Datos — Validación — Lista).
  • En las celdas verdes, usaremos nuestras funciones para crear una cadena de consulta y obtener la respuesta del servidor.
  • La tabla de la derecha es una referencia a los códigos de moneda (la necesitaremos un poco más adelante).

¡Vamonos!

Paso 1. Formar una cadena de consulta

Para obtener la información requerida del sitio, debe solicitarla correctamente. Vamos a www.cbr.ru y abrimos el enlace en el pie de página de la página principal' Recursos técnicos'- Obtener datos usando XML (http://cbr.ru/desarrollo/SXML/). Nos desplazamos un poco más abajo y en el segundo ejemplo (Ejemplo 2) habrá lo que necesitamos: obtener los tipos de cambio para un intervalo de fechas determinado:

Tipo de cambio actualizado en Excel

Como puede ver en el ejemplo, la cadena de consulta debe contener fechas de inicio (fecha_req1) y terminaciones (fecha_req2) del período que nos interesa y el código de moneda (VAL_NM_RQ), la tasa de la que queremos obtener. Puede encontrar los principales códigos de moneda en la siguiente tabla:

Moneda

Código

                         

Moneda

Código

Dólar australiano R01010

Litas lituano

R01435

chelín austríaco

R01015

cupón lituano

R01435

Manat azerbaiyano

R01020

Leu moldavo

R01500

Libra

R01035

РќРμРјРμС † РєР ° СЏ РјР ° СЂРєР °

R01510

Nuevo kwanza angoleño

R01040

florín holandés

R01523

Dram Armenio

R01060

Corona noruega

R01535

Rublo bielorruso

R01090

Zloty polaco

R01565

franco belga

R01095

escudo portugués

R01570

El león búlgaro

R01100

Leu rumano

R01585

Real brasileño

R01115

Dolar de Singapur

R01625

Florín húngaro

R01135

dólar de surinam

R01665

Dolar de Hong Kong

R01200

somoni tayiko

R01670

dracma griego

R01205

rublo tayiko

R01670

Corona danesa

R01215

Lira turca

R01700

Dólar de EE.UU.

R01235

Manat turcomano

R01710

Euro

R01239

Nuevo manat turcomano

R01710

Rupia india

R01270

Suma uzbeka

R01717

Libra irlandesa

R01305

Hryvnia de Ucrania

R01720

corona islandesa

R01310

Karbovanets ucranianos

R01720

peseta española

R01315

marca finlandesa

R01740

lira italiana

R01325

Franco francés

R01750

tenge kazajo

R01335

Corona checa

R01760

Dolar canadiense

R01350

Corona sueca

R01770

som kirguís

R01370

franco suizo

R01775

Yuan chino

R01375

corona estonia

R01795

Dinar kuwaití

R01390

nuevo dinar yugoslavo

R01804

Latts letones

R01405

Rand sudafricano

R01810

Libra libanesa

R01420

República de Corea ganó

R01815

Yen japonés

R01820

Una guía completa de códigos de moneda también está disponible en el sitio web del Banco Central; consulte http://cbr.ru/scripts/XML_val.asp?d=0

Ahora formaremos una cadena de consulta en una celda de una hoja con:

  • el operador de concatenación de texto (&) para unirlo;
  • Caracteristicas VPR (VLOOKUP)para encontrar el código de la moneda que necesitamos en el directorio;
  • Caracteristicas TEXTO (TEXTO), que convierte la fecha según el patrón dado día-mes-año a través de una barra inclinada.

Tipo de cambio actualizado en Excel

="http://cbr.ru/scripts/XML_dynamic.asp?date_req1="&ТЕКСТ(B2;"ДД/ММ/ГГГГ")&  "&date_req2="&ТЕКСТ(B3;"ДД/ММ/ГГГГ")&"&VAL_NM_RQ="&ВПР(B4;M:N;2;0)  

Paso 2. Ejecutar la solicitud

Ahora usamos la función SERVICIO WEB (SERVICIO WEB) con la cadena de consulta generada como único argumento. La respuesta será una larga línea de código XML (es mejor activar el ajuste de línea y aumentar el tamaño de la celda si desea verlo completo):

Tipo de cambio actualizado en Excel

Paso 3. Analizando la respuesta

Para facilitar la comprensión de la estructura de los datos de respuesta, es mejor utilizar uno de los analizadores XML en línea (por ejemplo, http://xpather.com/ o https://jsonformatter.org/xml-parser), que puede formatear visualmente el código XML, agregarle sangrías y resaltar la sintaxis con color. Entonces todo se volverá mucho más claro:

Tipo de cambio actualizado en Excel

Ahora puede ver claramente que los valores del curso están enmarcados por nuestras etiquetas. ...y las fechas son atributos Fecha en etiquetas .

Para extraerlos, seleccione una columna de diez (o más, si se hace con un margen) celdas vacías en la hoja (porque se estableció un intervalo de fechas de 10 días) e ingrese la función en la barra de fórmulas FILTRO.XML (FILTRARXML):

Tipo de cambio actualizado en Excel

Aquí, el primer argumento es un enlace a una celda con una respuesta del servidor (B8), y el segundo es una cadena de consulta en XPath, un lenguaje especial que se puede usar para acceder a los fragmentos de código XML necesarios y extraerlos. Puede leer más sobre el lenguaje XPath, por ejemplo, aquí.

Es importante que después de ingresar la fórmula, no presione Participary el atajo de teclado Ctrl+Shift+Participar, es decir, ingréselo como una fórmula matricial (las llaves que lo rodean se agregarán automáticamente). Si tiene la última versión de Office 365 con soporte para matrices dinámicas en Excel, entonces un simple Participar, y no necesita seleccionar celdas vacías por adelantado: la función en sí tomará tantas celdas como necesite.

Para extraer fechas, haremos lo mismo: seleccionaremos varias celdas vacías en la columna adyacente y usaremos la misma función, pero con una consulta XPath diferente, para obtener todos los valores de los atributos de fecha de las etiquetas de registro:

=FILTRO.XML(B8;”//Registro/@Fecha”)

Ahora, en el futuro, al cambiar las fechas en las celdas B2 y B3 originales o elegir una moneda diferente en la lista desplegable de la celda B3, nuestra consulta se actualizará automáticamente, remitiendo al servidor del Banco Central para obtener nuevos datos. Para forzar una actualización manualmente, también puede usar el atajo de teclado Ctrl+otro+F9.

  • Importar tasa de bitcoin a Excel a través de Power Query
  • Importe tipos de cambio de Internet en versiones anteriores de Excel

Deje un comentario