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
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 (< pour <, > pour >, & pour &).
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.
| A | B | C | |
|---|---|---|---|
| 1 | URL Flux RSS | Formule | Résultat |
| 2 | https://blog-tech.com/rss | =FILTRXML(SERVICEWEB(A2);"//item/title") | Les tendances IA 2025 |
| 3 | Cloud computing : guide complet | ||
| 4 | Cybersécurité pour PME |
=FILTRXML(SERVICEWEB(A2);"//item/title")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.
| A | B | C | |
|---|---|---|---|
| 1 | Données XML (cellule A1) | Expression XPath | Résultat |
| 2 | <products><product stock="15">Laptop</product><product stock="0">Souris</product><product stock="8">Clavier</product></products> | //product[@stock>0] | Laptop |
| 3 | Clavier |
=FILTRXML(A1;"//product[@stock>0]")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.
| A | B | C | |
|---|---|---|---|
| 1 | Configuration XML | Paramètre à extraire | Résultat |
| 2 | <config><server><hostname>srv-prod-01</hostname><port>8080</port><status>active</status></server></config> | //hostname | srv-prod-01 |
| 3 | //port | 8080 | |
| 4 | //status | active |
=FILTRXML(A2;"//hostname")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.
| A | B | C | |
|---|---|---|---|
| 1 | Source données | Expression | Résultat |
| 2 | API Taux BCE | //currency[@code="USD"]/rate | 1.0845 |
| 3 | API Taux BCE | //currency[@code="GBP"]/rate | 0.8521 |
| 4 | API Taux BCE | //currency[@code="JPY"]/rate | 161.23 |
=FILTRXML(SERVICEWEB("url-api-bce");"//currency[@code=\"USD\"]/rate")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 (< pour <, > pour >, & 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ère | FILTRXML | SERVICEWEB | ENCODEURL |
|---|---|---|---|
| Usage principal | Parser du XML | Récupérer données web | Encoder 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