La función SERVICIOWEB de Excel se utiliza para recuperar datos de un servicio web en Internet o en una intranet. Un servicio web es una forma estandarizada de intercambiar información entre aplicaciones a través de la red. Esta función permite conectar hojas de cálculo con fuentes de datos externas, como APIs (Interfaces de Programación de Aplicaciones), para obtener información en tiempo real directamente en una celda.
Es especialmente potente cuando se combina con la función FILTROXML para analizar y extraer datos específicos de la respuesta XML devuelta por el servicio web.
Sintaxis
=SERVICIOWEB(url)
La función SERVICIOWEB tiene un único argumento:
- url: La URL del servicio web del que se desean obtener los datos. Obligatorio.
Ejemplos
Ejemplo 1: Obtener un chiste aleatorio de una API pública
Este ejemplo utiliza una API pública (icndb.com) que devuelve chistes en formato JSON. Aunque SERVICIOWEB funciona mejor con XML, también puede devolver otros formatos de texto plano como JSON. La siguiente fórmula recupera la respuesta completa del servicio.
=SERVICIOWEB("http://api.icndb.com/jokes/random?limitTo=[nerdy]")
Resultado esperado (el texto puede variar en cada ejecución):
{ "type": "success", "value": { "id": 483, "joke": "The class object is the base class for all classes. It is the only class that does not have a superclass. Chuck Norris is the only class that has a subclass of the class object.", "categories": ["nerdy"] } }
Ejemplo 2: Extraer datos específicos de un servicio XML con FILTROXML
Supongamos que tenemos un servicio web ficticio en la URL http://api.miservidor.com/datos.xml que devuelve la siguiente estructura XML con datos de productos:
<?xml version="1.0" encoding="UTF-8"?>
<productos>
<producto id="101">
<nombre>Portátil Pro</nombre>
<stock>50</stock>
</producto>
<producto id="102">
<nombre>Monitor Curvo</nombre>
<stock>120</stock>
</producto>
</productos>
Podemos usar SERVICIOWEB junto con FILTROXML para extraer el stock del «Monitor Curvo».
=FILTROXML(SERVICIOWEB("http://api.miservidor.com/datos.xml"), "//producto[nombre='Monitor Curvo']/stock")
Resultado esperado:
120
Esta fórmula primero obtiene todo el contenido XML con SERVICIOWEB y luego FILTROXML busca la ruta XPath especificada para devolver el valor del nodo <stock> correspondiente.
Observaciones
Una de las limitaciones más importantes de la función SERVICIOWEB es que no admite direcciones URL con el protocolo seguro HTTPS. Solo funciona con direcciones HTTP. Dado que la mayoría de los servicios web modernos han migrado a HTTPS por seguridad, la utilidad de esta función en escenarios reales se ha visto considerablemente reducida.
Para conectarse a servicios web modernos (HTTPS), la herramienta recomendada en Excel es Power Query (disponible en la pestaña «Datos» > «Obtener y transformar datos» > «Desde la web»).
La longitud de la URL no puede superar los 2048 caracteres. El contenido devuelto por el servicio web no puede superar el límite de 32,767 caracteres de una celda; si lo supera, la función devolverá un error.
Errores comunes
- #¡VALOR!: Se produce si:
- La URL no es una cadena de texto válida.
- El protocolo de la URL no es soportado (por ejemplo,
https://,ftp://). - La URL no es válida o el servicio no devuelve una respuesta correcta.
- Los datos devueltos por el servicio web superan el límite de caracteres de la celda.
- #¿NOMBRE?: Ocurre si el nombre de la función está mal escrito, por ejemplo,
=SERVICOWEB().
Disponibilidad por versión de Excel
La función SERVICIOWEB está disponible en Microsoft Excel a partir de la versión 2013.
Compatibilidad
| Software | Compatibilidad | Notas | Alternativa |
|---|---|---|---|
| Microsoft Excel | ✔️ | Disponible desde Excel 2013. | |
| Google Sheets | ❌ | Google Sheets no tiene la función SERVICIOWEB. | IMPORTXML, IMPORTDATA |
| LibreOffice Calc | ✔️ | Funciona de manera similar a Excel. | |
| OpenOffice Calc | ❌ | No disponible. | |
| WPS Office Spreadsheets | ✔️ | No confirmado. | |
| Apple Numbers | ❌ | No disponible. |
Funciones Relacionadas
- FILTROXML: Analiza datos XML y extrae información específica mediante expresiones XPath. Es el complemento ideal para SERVICIOWEB.
- CODIFICARURL: Convierte una cadena de texto en un formato de codificación URL, útil para construir URLs de servicios web que incluyen caracteres especiales.
