Une fonction personnalisée utilise le langage de formule M, prend un ensemble de valeurs d’entrée, puis renvoie une valeur de sortie unique. Si vous avez la logique que vous souhaitez réutiliser plusieurs fois ou appliquer le même jeu de transformations à une autre requête ou valeur, envisagez de créer une fonction personnalisée, puis d’appeler la fonction où et quand vous en avez besoin. Il existe plusieurs façons de créer une fonction personnalisée :
- Utilisez l’Éditeur avancé pour ajouter votre propre instruction let et commencer à zéro.
- Utilisez la commande Appeler une fonction personnalisée .
- Il existe d’autres façons de créer des fonctions qui ne sont pas abordées dans cette rubrique d’aide, notamment les commandes Créer une fonction et Ajouter comme requête . Pour une discussion plus approfondie, voir Présentation des fonctions M de Power Query et Utilisation des fonctions personnalisées.
Créer et appeler une fonction personnalisée simple avec l’Éditeur avancé
L’exemple suivant illustre une fonction personnalisée simple qui suit une tradition de programmation de longue date.
Créez une requête vide :
Excel Sélectionner des données>Obtenir des données>à partir d’autres sources>Requête vide.
Power Query Cliquez avec le bouton droit sur un emplacement vide dans le volet Requêtes à gauche, puis sélectionnez Nouvelle requête>Autres sources>Requête vide.
Dans le volet Requêtes à gauche, double-cliquez sur le nom, puis renommez la nouvelle requête vide en
HelloWorld.Sélectionnez la nouvelle requête, puis sélectionnez Accueil> :Éditeur avancé.
Remplacez le code de démarrage du modèle par le code suivant :
let
HelloWorld = () => ("Hello World")
in
HelloWorldSélectionnez Terminé.
Vous avez remplacé la requête par
HelloWorldune fonction personnalisée. Notez l’icône de fonction
à gauche de celle-ci.Pour appeler la fonction, sélectionnez-la, puis sélectionnez Appeler dans l’aperçu des données.
Les résultats de la fonction apparaissent dans Aperçu des données et sont ajoutés au volet Requêtes en tant que requête dont le nom par défaut est Invoked Function. Vous pourriez le renommer en quelque chose de plus significatif, comme
HelloWorldResult.Sélectionnez cette requête, puis sélectionnez Accueil>Fermer & charger pour afficher les résultats dans une feuille de calcul.
Résultats
Créer et appeler une fonction personnalisée avec un paramètre avec l’Éditeur avancé
L’exemple suivant montre comment transmettre un paramètre à une fonction personnalisée pour convertir un nombre décimal en nombre hexadécimal.
Créez une requête vide :
Excel Sélectionner des données>Obtenir des données>à partir d’autres sources>Requête vide.
Power Query Cliquez avec le bouton droit sur un emplacement vide dans le volet Requêtes à gauche, puis sélectionnez Nouvelle requête>Autres sources>Requête vide.
Dans le volet Requêtes à gauche, renommez la nouvelle requête vide en
MyHex.Sélectionnez la nouvelle requête, puis sélectionnez Accueil> :Éditeur avancé.
Remplacez le code de démarrage du modèle par le code suivant :
let
MyHex = (parameter1) => Number.ToText(parameter1,"X")
in
MyHexSélectionnez Terminé.
Vous avez remplacé la requête par
MyHexune fonction personnalisée. Notez l’icône de fonction
à gauche de celle-ci.Pour appeler la fonction, sélectionnez-la. Dans Aperçu des données, entrez un nombre dans la zone paramètre1 , puis sélectionnez Appeler.
Les résultats de la fonction s’affichent dans Aperçu des données. Power Query ajoute les résultats au volet Requêtes en tant que requête dont le nom par défaut, Fonction invoquée. Vous pourriez le renommer en quelque chose de plus significatif, comme
MyHexResult.Sélectionnez cette requête, puis sélectionnez Accueil>Fermer & charger pour afficher les résultats dans une feuille de calcul.
Résultats
Ajouter une colonne en appelant une fonction personnalisée
Si vous créez une fonction avec au moins un paramètre, vous pouvez l’appeler en tant que fonction personnalisée pour créer une nouvelle colonne et une nouvelle valeur pour chaque ligne d’un tableau.
Pour ouvrir une requête, localisez-en une précédemment chargée à partir de l’Éditeur Power Query, sélectionnez une cellule dans les données, puis sélectionnezModification de la requête>. Pour plus d’informations, voir Créer, modifier et charger une requête dans Excel (Power Query).
Remarque
Pour cet exemple, votre requête nécessite au moins une colonne de type Nombre entier .
Créez la
MyHexfonction personnalisée comme expliqué dans la section, Créer et appeler une fonction personnalisée qui a un paramètre avec l’Éditeur avancé.Dans la requête, sélectionnez Ajouter une colonne>Appeler une fonction personnalisée. La boîte de dialogue Appeler une fonction personnalisée s’affiche.
Entrez le nom de la nouvelle colonne, par
HexConvertexemple, dans la zone Nom de la nouvelle colonne .Sélectionnez le nom d’une fonction personnalisée prédéfinie dans la liste déroulante de la requête Fonction. Dans cet exemple, sélectionnez
MyHex.Étant donné que la fonction personnalisée référence un paramètre, le paramètre est maintenant affiché.
Sélectionnez une colonne de type de données Nombre entier en tant que paramètre de la fonction.
Sélectionnez OK.
Résultat
Une nouvelle colonne est créée et affiche la valeur hexadécimale de la colonne Nombre entier entrée en paramètre.
Voir aussi
Créer une requête avec paramètres (Power Query)
Gérer les requêtes (Power Query)