=FILTERXML
Web Avancé Excel

FILTERXML Excel : Extraire des données d'XML

Maîtrisez FILTERXML dans Excel : syntaxe, exemples pratiques et astuces pour extraire des données XML. Guide complet pour débutants et experts.

Syntaxe

=FILTERXML(xml, xpath)
  • xml: La chaîne de caractères contenant le contenu XML.
  • xpath: La chaîne de caractères contenant l'expression XPath qui spécifie les nœuds à extraire.

Explication détaillée

FILTERXML dans Excel : Guide Complet

Introduction

La fonction FILTERXML d'Excel est un outil puissant pour extraire des données spécifiques à partir de documents XML. Elle utilise des expressions XPath pour naviguer et sélectionner les informations souhaitées. Cette fonction est particulièrement utile lorsque vous travaillez avec des flux de données XML, des API ou des fichiers de configuration.

Syntaxe

La syntaxe de la fonction FILTERXML est la suivante :

=FILTERXML(xml, xpath)

Où :

  • xml : La chaîne de caractères contenant le contenu XML.
  • xpath : La chaîne de caractères contenant l'expression XPath qui spécifie les nœuds à extraire.

Fonctionnement

FILTERXML prend une chaîne XML et une expression XPath en entrée. L'expression XPath est utilisée pour localiser des nœuds spécifiques dans le document XML. La fonction renvoie ensuite les valeurs de ces nœuds sous forme de tableau. Si aucun nœud correspondant n'est trouvé, elle renvoie une erreur #VALUE!.

Cas d'utilisation

Voici quelques exemples concrets d'utilisation de FILTERXML :

  • Analyse de données financières : Extraire des taux de change à partir d'un flux XML fourni par une banque.
  • Gestion des ressources humaines : Récupérer les informations d'employés (nom, adresse, salaire) à partir d'un fichier XML contenant les données RH.
  • Suivi de projet : Extraire les statuts des tâches à partir d'un fichier XML généré par un outil de gestion de projet.
  • E-commerce: Récupérer le prix, la description et les images d'un produit depuis un flux XML fourni par un fournisseur.

Exemple concret (Finance): Supposons que vous ayez un flux XML contenant des informations sur les taux de change :

<taux>
 <EUR>1.10</EUR>
 <GBP>1.25</GBP>
</taux>

La formule =FILTERXML("<taux><EUR>1.10</EUR><GBP>1.25</GBP></taux>", "//EUR") renverra 1.10.

Bonnes pratiques

  • Valider le XML : Assurez-vous que le contenu XML est valide avant d'utiliser FILTERXML. Un XML mal formé peut entraîner des erreurs.
  • Utiliser des expressions XPath précises : Une expression XPath précise garantit que vous extrayez les données souhaitées et évitez les résultats inattendus.
  • Gérer les erreurs : Utilisez la fonction SIERREUR pour gérer les erreurs potentielles renvoyées par FILTERXML si aucun nœud n'est trouvé.
  • Optimiser les performances : Pour les documents XML volumineux, envisagez d'utiliser d'autres méthodes d'analyse XML, car FILTERXML peut être lente.

Combinaisons

  • SIERREUR(FILTERXML(xml, xpath), "Introuvable") : Renvoie "Introuvable" si aucun nœud correspondant n'est trouvé.
  • INDEX(FILTERXML(xml, xpath), 1) : Extrait la première valeur d'un ensemble de nœuds correspondants.
  • CONCATENER(FILTERXML(xml, xpath)) : Concatène les valeurs de plusieurs nœuds XML.
  • TEXTE(FILTERXML(xml, xpath), "0.00") : Formate le résultat numérique avec deux décimales.

Cas d'utilisation

Extraire des données financières à partir de flux XML.

Récupérer des informations d'employés à partir de fichiers XML.

Analyser des données de projets stockées au format XML.

Exemples pratiques

Extraire le prix d'un produit

Données : <produit><nom>Ordinateur portable</nom><prix>1200</prix></produit>

=FILTERXML("<produit><nom>Ordinateur portable</nom><prix>1200</prix></produit>", "//prix")

Extrait le prix (1200) du produit à partir de la chaîne XML.

Résultat : 1200
Extraire le nom d'un employé

Données : <employe><nom>Jean Dupont</nom><poste>Développeur</poste></employe>

=FILTERXML("<employe><nom>Jean Dupont</nom><poste>Développeur</poste></employe>", "//nom")

Extrait le nom (Jean Dupont) de l'employé à partir de la chaîne XML.

Résultat : Jean Dupont
Extraire le taux de change EUR

Données : <taux><EUR>1.10</EUR><USD>1.00</USD></taux>

=FILTERXML("<taux><EUR>1.10</EUR><USD>1.00</USD></taux>", "//EUR")

Extrait le taux de change EUR (1.10) de la chaîne XML.

Résultat : 1.10

Conseils et astuces

Utilisez un validateur XML en ligne pour vérifier la validité de votre document XML avant d'utiliser FILTERXML.

Testez vos expressions XPath avec un outil de test XPath pour vous assurer qu'elles renvoient les résultats attendus.

Utilisez la fonction Sierreur pour gérer les erreurs potentielles lorsque FILTERXML ne trouve aucun nœud correspondant.

Pour les documents XML volumineux, envisagez d'utiliser d'autres méthodes d'analyse XML plus performantes.

Erreurs courantes

#VALUE!

L'expression XPath est invalide ou ne correspond à aucun nœud dans le document XML.

Vérifiez la syntaxe de votre expression XPath et assurez-vous qu'elle correspond aux nœuds existants dans le XML.

#VALUE!

Le document XML n'est pas valide ou est mal formé.

Validez votre document XML à l'aide d'un validateur XML en ligne ou d'un éditeur XML pour corriger les erreurs de syntaxe.

Formules associées