Logo de Torre de Babel
Portada Libros Diseño web Artículos Glosario RSS
Buscar

Nuevas funciones en Excel 2013: SERVICIOWEB y FILTROXML

El nuevo Excel 2013 incorpora múltiples opciones nuevas en la interfaz de usuario, pero también hay novedades menos obvias como son el medio centenar de funciones añadidas a la ya extensa biblioteca con que contaba este producto. Muchas de esas nuevas funciones extienden categorías ya existentes: para operar con fechas, manipular textos, etc. También se ha creado una nueva categoría: la de las funciones web.

La función SERVICIOWEB permite recuperar en una celdilla información ofrecida por un servicio web. Toma como único parámetro el URL completo, incluyendo los parámetros que pudiesen necesitarse, y al calcularse lo que hace es ponerse en contacto con el servicio, enviando la solicitud facilitada, y almacenar en la celdilla la respuesta que se obtenga. En la imagen inferior puede verse parte del resultado obtenido cuando se usa esta función para acceder a la lista de últimos artículos publicados en el conocido sitio Slashdot.

En principio esto podría no parecer excesivamente interesante para un usuario de Excel. Alojar un documento XML completo en una celdilla no es precisamente la vía más cómoda para interpretar la información que contiene. Aquí es donde entra en escena la función FILTROXML, también nueva en Excel 2013. Su objetivo es tomar un documento XML, haya sido obtenido con SERVICIOWEB o no, y extraer la información obtenida a partir de una consulta XPath. XPath es un sencillo lenguaje de consulta. Puedes encontrar una introducción rápida al mismo en W3Schools.com.

FILTROXML es una función de tipo matricial. Esto significa que no devuelve un único resultado sino un conjunto de resultados. Por ello no se introduce individualmente en una celdilla, sino en un rango de celdillas que es preciso seleccionar de antemano. Una vez marcado el rango, escribimos la fórmula y pulsamos Control-Mayúsculas-Intro para introducir cada uno de los resultados en una celdilla del rango.

Asumiendo que tenemos en una celdilla de la hoja de cálculo el resultado antes devuelto por la función SERVICIOWEB, podríamos usar la expresión XPath //item/title para obtener el título de todas las entradas y colocarlo en las celdillas del rango seleccionado, como se ve en la imagen siguiente.

De manera similar podríamos obtener el enlace que nos llevaría a la noticia correspondiente a cada título, cambiando la consulta XPath anterior por //item/link. El resultado podríamos colocarlo una columna más a la derecha, de forma que cada título tuviese a continuación el enlace que le corresponde. De esta forma sería muy sencillo unir ambos datos, con la función HIPERVINCULO, para tener en la hoja de cálculo una lista de títulos que, a su vez, son enlaces que abrirían la entrada completa. Es lo que se ha hecho en la imagen siguiente.

Las celdillas en las que se han usado las funciones SERVICIOWEB y FILTROXML podrían trasladarse a otra hoja del mismo libro, dejando en la hoja con la que trabajaría el usuario solamente la lista de hipervínculos. Esta se actualizaría automáticamente al recalcular el libro o bien a demanda, pulsando F9, de forma que popdemos tener siempre la lista de últimas noticias sin necesidad de abandonar Excel y abrir el navegador web. Obviamente este es solo un ejemplo demostrativo, las aplicaciones prácticas de la obtención de información desde un servicio web y extracción de datos concretos son mucho más interesantes que la inserción de un feed en una hoja de cálculo.


Publicado el 15/2/2013

Curso de shaders

Torre de Babel - Francisco Charte Ojeda - Desde 1997 en la Web