WebAvancé

Fonction FILTRXML ExcelGuide Complet 2026 avec Exemples

FILTRXML (FILTERXML en anglais) est la fonction Excel qui te permet d'extraire des données depuis du contenu XML en utilisant des requêtes XPath. Si tu travailles avec des flux RSS, des API web ou des fichiers de configuration XML, cette fonction transforme Excel en véritable outil d'analyse de données structurées.

Dans ce guide, tu vas découvrir comment utiliser FILTRXML pour automatiser l'extraction de données XML, avec des exemples concrets tirés du monde professionnel. Fini les copier-coller manuels depuis des fichiers XML !

Syntaxe de la fonction FILTRXML

=FILTRXML(xml; xpath)

La fonction FILTRXML accepte deux paramètres : le contenu XML à analyser et l'expression XPath qui définit quelles données extraire. C'est comme une requête de recherche ultra-précise dans un document structuré.

Comprendre chaque paramètre de la fonction FILTRXML

1

xml

(obligatoire)

C'est le contenu XML que tu veux analyser. Ça peut être une chaîne de texte contenant du XML valide (comme "<items><item>Valeur</item></items>"), une référence à une cellule contenant du XML, ou le résultat d'une fonction SERVICEWEB qui récupère du XML depuis une API.

Le XML doit être parfaitement formaté : toutes les balises doivent être fermées correctement, et les caractères spéciaux doivent être échappés (&lt; pour <, &gt; pour >, &amp; pour &).

2

xpath

(obligatoire)

C'est l'expression XPath qui définit ce que tu veux extraire du XML. XPath est un langage de requête pour naviguer dans les structures XML, similaire à SQL pour les bases de données.

Exemples d'expressions courantes : "//item" trouve tous les éléments nommés "item", "//product[@prix>100]" trouve les produits dont l'attribut prix est supérieur à 100, ou "//article/titre" trouve tous les titres dans les éléments article.

Astuce : Teste toujours ton XML dans un validateur en ligne avant de l'utiliser dans FILTRXML. Un seul caractère mal placé peut faire échouer toute la formule. Les outils en ligne t'aident à identifier rapidement les erreurs de structure.

Exemples pratiques pas à pas

Exemple 1 – Data Analyst : extraire des données depuis un flux RSS

Tu es data analyst et tu dois surveiller les derniers articles publiés sur les blogs sectoriels pour alimenter ta veille concurrentielle. Plutôt que de visiter chaque site manuellement, tu utilises leurs flux RSS.

La formule récupère le XML du flux RSS et extrait tous les titres d'articles. Le tableau dynamique affiche automatiquement tous les résultats.

ABC
1URL Flux RSSFormuleRésultat
2https://blog-tech.com/rss=FILTRXML(SERVICEWEB(A2);"//item/title")Les tendances IA 2025
3Cloud computing : guide complet
4Cybersécurité pour PME
Formule :=FILTRXML(SERVICEWEB(A2);"//item/title")
Résultat :Les tendances IA 2025

Combine avec "//item/pubDate" dans une autre colonne pour obtenir les dates de publication et créer un tableau de veille complet.

Exemple 2 – E-commerce Manager : parser les réponses d'API produits

Tu es e-commerce manager et ton système de gestion de catalogue expose une API XML qui liste les produits. Tu veux extraire automatiquement les produits en stock pour mettre à jour ton fichier Excel de suivi.

L'expression XPath filtre uniquement les produits dont l'attribut stock est supérieur à 0. Tu obtiens directement la liste des produits disponibles.

ABC
1Données XML (cellule A1)Expression XPathRésultat
2<products><product stock="15">Laptop</product><product stock="0">Souris</product><product stock="8">Clavier</product></products>//product[@stock>0]Laptop
3Clavier
Formule :=FILTRXML(A1;"//product[@stock>0]")
Résultat :Laptop

Pour extraire aussi les quantités en stock, utilise =FILTRXML(A1;"//product[@stock>0]/@stock") dans une colonne adjacente.

Exemple 3 – Administrateur système : analyser des fichiers de configuration XML

Tu es administrateur système et tu dois extraire les paramètres de configuration depuis plusieurs fichiers XML de serveurs pour créer un tableau de bord de supervision.

Tu peux créer une ligne par serveur avec plusieurs colonnes qui extraient différents paramètres du même XML.

ABC
1Configuration XMLParamètre à extraireRésultat
2<config><server><hostname>srv-prod-01</hostname><port>8080</port><status>active</status></server></config>//hostnamesrv-prod-01
3//port8080
4//statusactive
Formule :=FILTRXML(A2;"//hostname")
Résultat :srv-prod-01

Cette technique te permet de centraliser les informations de configuration de dizaines de serveurs dans un seul fichier Excel, mis à jour automatiquement.

Exemple 4 – Analyste financier : récupérer des données de taux de change depuis une API

Tu es analyste financier et tu dois récupérer quotidiennement les taux de change depuis une API financière qui retourne du XML pour mettre à jour tes modèles de prévision.

La formule récupère les données en temps réel et extrait le taux de change pour une devise spécifique. Tu peux automatiser ce processus avec une actualisation planifiée.

ABC
1Source donnéesExpressionRésultat
2API Taux BCE//currency[@code="USD"]/rate1.0845
3API Taux BCE//currency[@code="GBP"]/rate0.8521
4API Taux BCE//currency[@code="JPY"]/rate161.23
Formule :=FILTRXML(SERVICEWEB("url-api-bce");"//currency[@code=\"USD\"]/rate")
Résultat :1.0845

Les erreurs fréquentes et comment les corriger

#VALEUR! - XML mal formé

C'est l'erreur la plus fréquente. Le XML doit être parfaitement structuré : chaque balise ouvrante doit avoir sa balise fermante, les attributs doivent être entre guillemets, et les caractères spéciaux doivent être échappés correctement (&lt; pour <, &gt; pour >, &amp; pour &).

Solution : Copie ton XML dans un validateur en ligne (cherche "XML validator" sur Google). Il te montrera exactement où se trouve l'erreur de structure. Vérifie aussi que tu n'as pas de caractères invisibles (copier depuis Word peut causer ça).

#VALEUR! - Expression XPath incorrecte

Une faute dans la syntaxe XPath génère cette erreur. Les erreurs courantes : oublier les guillemets autour des valeurs, utiliser de mauvais opérateurs, ou mal orthographier les noms d'éléments (XPath est sensible à la casse).

Solution : Commence par une expression simple comme "//element" pour vérifier que le XML est valide. Ajoute ensuite progressivement tes filtres. Teste chaque modification pour identifier ce qui ne fonctionne pas.

Aucun résultat trouvé (erreur #VALEUR!)

Si ton expression XPath ne trouve aucun élément correspondant, FILTRXML retourne #VALEUR!. Ça arrive souvent avec des XML qui utilisent des espaces de noms (namespace) comme <ns:element>.

Solution : Pour les XML avec espaces de noms, utilise //*[local-name()='element'] au lieu de "//element". Cette syntaxe ignore les préfixes de namespace et trouve l'élément par son nom local.

Caractères < et > dans les formules

Quand tu utilises des comparaisons dans XPath (comme @prix>100), Excel peut mal interpréter les chevrons < et > s'ils sont dans une chaîne de formule complexe.

Solution : Mets ton expression XPath dans une cellule séparée et référence-la dans ta formule : =FILTRXML(A1;B1) où B1 contient //item[@prix>100]. C'est plus lisible et évite les problèmes d'échappement.

Astuces de pro pour maîtriser FILTRXML

Tableaux dynamiques automatiques avec Excel 365

Si ton expression XPath trouve plusieurs éléments, FILTRXML retourne automatiquement un tableau dynamique qui se déverse verticalement. Si tu trouves 50 éléments, les 50 valeurs s'affichent sans que tu aies à copier la formule. Super pratique !

Combine FILTRXML avec SERVICEWEB pour des données en temps réel

La formule =FILTRXML(SERVICEWEB("url-api");"//element") crée une connexion live vers une API XML. Tes données se mettent à jour automatiquement quand tu actualises le classeur. C'est parfait pour les dashboards temps réel.

Utilise CONCAT pour construire des expressions XPath dynamiques

Tu peux rendre tes requêtes XPath dynamiques : =FILTRXML(A1;CONCAT("//product[@id='";B1;"']")) où B1 contient l'ID recherché. Ça te permet de créer des recherches paramétrables sans réécrire la formule.

Extraire plusieurs attributs d'un même élément

Pour récupérer plusieurs attributs, crée plusieurs colonnes avec des XPath différents : =FILTRXML(A1;"//product/@id") pour les IDs et =FILTRXML(A1;"//product/@nom") pour les noms. Tu construis ainsi un tableau complet depuis un XML.

Apprends les expressions XPath les plus courantes

//element trouve tous les éléments, /racine/enfant suit un chemin précis, //element[@attr="valeur"] filtre par attribut, //element[position()=1] prend le premier uniquement. Ces 4 patterns couvrent 90% des cas.

FILTRXML vs SERVICEWEB vs ENCODEURL

CritèreFILTRXMLSERVICEWEBENCODEURL
Usage principalParser du XMLRécupérer données webEncoder URLs
Nécessite connexion internet❌ Non✅ Oui❌ Non
Retourne tableau dynamique✅ Oui❌ Non❌ Non
Filtrage avancé✅ XPath puissant❌ Retourne tout❌ Encodage uniquement
Niveau de complexité⭐⭐⭐

Ces trois fonctions sont complémentaires. Utilise SERVICEWEB pour récupérer le XML depuis une API, ENCODEURL pour construire l'URL si elle contient des paramètres spéciaux, et FILTRXML pour extraire les données pertinentes du XML récupéré.

Questions fréquentes

Dois-je connaître XPath pour utiliser FILTRXML ?

Pas besoin d'être expert ! Quelques expressions de base comme '//item' ou '//product[@id>5]' suffisent pour 90% des cas. Tu peux apprendre au fur et à mesure en testant tes expressions directement dans Excel.

FILTRXML fonctionne-t-elle avec des API web en temps réel ?

Oui ! Combine FILTRXML avec SERVICEWEB pour récupérer et analyser des données XML depuis une API. Par exemple : =FILTRXML(SERVICEWEB("url-api");"//prix"). C'est super puissant pour automatiser la récupération de données.

Quelle est la limite de taille XML que FILTRXML peut traiter ?

FILTRXML gère des fichiers XML jusqu'à environ 1 Mo sans problème. Au-delà, les performances se dégradent. Pour des fichiers plus volumineux, utilise plutôt Power Query qui est conçu pour ça.

Comment extraire plusieurs valeurs simultanément ?

FILTRXML retourne automatiquement un tableau dynamique avec Excel 365. Si ton expression XPath trouve 10 éléments, tu obtiens 10 résultats qui se déversent verticalement dans les cellules. Super pratique pour analyser des listes !

FILTRXML fonctionne-t-elle avec les flux RSS ?

Absolument ! Les flux RSS sont du XML. Tu peux extraire les titres d'articles avec =FILTRXML(SERVICEWEB("url-rss");"//item/title"). C'est parfait pour créer une veille automatisée dans Excel.

Les fonctions similaires à FILTRXML

Deviens un pro d'Excel

Tu maîtrises maintenant FILTRXML ! Rejoins Le Dojo Club pour découvrir les autres fonctions web avancées et automatiser tes analyses de données.

Essayer pendant 30 jours