Categoría: Web
¿Qué hace la función XMLFILTRO?
La función XMLFILTRO devuelve datos específicos del contenido XML usando la expresión XPath especificada.
Disponibilidad
- Excel 365: Si
- Excel 2019: Si
- Excel 2016: Si
- Excel 2013: Si
- Excel 2010: No
- Excel 2007: No
- Excel 2003: No
Sintaxis
XMLFILTRO(Xml, Rutax)

Argumento | Obligatorio | Descripción |
---|---|---|
Xml | Si | Es una cadena con un formato XML válido. |
Rutax | Si | Es una cadena con un formato XPath estándar. |
Observaciones importantes sobre la función XMLFILTRO:
- Si el argumento Xml no es válido, devolverá el error #¡VALOR!
- Si el argumento Xml contiene un espacio de nombres con un prefijo que no es válido, se devolverá el error #¡VALOR!
Nombre en otros idiomas
- Inglés: FILTERXML
- Portugués: FILTROXML
- Francés: FILTRE.XML
- Italiano: FILTRO.XML
- Alemán: XMLFILTERN
Ejemplo de la función XMLFILTRO
La función XMLFILTRO nos devuelve datos específicos de un texto en formato XML y eso la convierte en una función ideal para usarse en conjunto con la función SERVICIOWEB.
Esta función requiere de dos argumentos, el primero son los datos en formato XML y el segundo es la consulta que haremos a los datos y que es conocida como el XPath.
El XPath es la ruta que ayudará a la función XMLFILTRO a identificar la ubicación del dato que queremos extraer.
Por ejemplo, supongamos que tenemos los siguientes datos en formato XML:
<respuesta><distancia>373.12</distancia></respuesta>
El XPath que debemos usar para obtener el elemento distancia es el siguiente:
//respuesta/distancia
En la siguiente imagen se muestra el resultado de la función XMLFILTRO sobre los datos XML anteriores:

Ahora analizaremos la situación cuando los datos XML tienen más de un elemento hijo, en cuyo caso podremos indicar el índice de nuestro interés encerrado en corchetes [ ].
En el siguiente ejemplo, los datos XML se encuentran en la celda A1 donde se observa que el elemento lista tiene 3 elementos resultado.

Para obtener el simbolo del primer elemento resultado, debemos usar el siguiente XPath:
//lista/resultado[1]/símbolo
El índice [1] le indicará a la función XMLFILTRO que devuelva la información del primer elemento resultado. En la siguiente imagen puedes observar el valor devuelto por la funcón en la celda D2:

Si por el contrario, no usamos un índice para indicar el elemento que necesitamos, entonces Excel devolverá todos los elementos disponibles tal como se observa en la siguiente imagen:

Considera que, si tienes una versión reciente de Excel (Microsoft 365), será suficiente con ingresar la fórmula anterior en cualquier celda de la hoja y pulsar la tecla Enter.
=XMLFILTRO(A1,"//lista/resultado/simbolo")
Por el contrario, si tienes una versión previa de Excel, la fórmula anterior deberá ingresarse como una fórmula matricial, lo cual implica seleccionar previamente el rango de salida e ingresar la fórmula con la combinación de teclas Ctrl+Alt+Enter.
Finalmente mostraré como obtener un atributo con la función XMLFILTRO. Considera los siguientes datos, donde el elemento libro tiene el atributo id:

Para obtener el atributo id del segundo elemento libro usaremos el siguiente XPath:
=XMLFILTRO(A1,"//catalogo/libro[2]/@id")
Lo importante es recordar el uso del carácter @ seguido del nombre del atributo. En la siguiente imagen se muestra el resultado de la fórmula anterior:

Atículos relacionados
- Nuevas funciones en Excel 2013: Descubre las nuevas funciones introducidas en Excel 2013 las cuales incluyen a la función XMLFILTRO.