MS Power Query: Partage des requêtes entre les classurs et le xlam?

Dans Power Query, est-il possible de créer une requête dans un classur et de l'accéder à un autre? En particulier, puis-je créer un set de requêtes dans une sorte de bibliothèque? Je pense, disons, à un file .xlam, puis j'ai plusieurs files .xlsx, chargez le .xlam et utilisez les requêtes

Je veux vraiment restr loin de copyr et coller les définitions de requête d'un classur à l'autre. Il n'est pas maintenable même pour des projets de taille moyenne.

J'ai lu cette publication et j'ai vraiment apprécié la fonction @ dfresh22 pour automatiser la copy des requêtes. Mais ce n'est toujours pas là.

J'ai essayé de créer une requête dans un classur, en l'enregistrant en tant que .xlam, et en référençant le xlam à partir d'un deuxième classur. Mais je n'ai trouvé aucun moyen d'accéder à la requête.

J'exécute Excel 2013.

Est-ce que je pense juste à ce problème?

Une approche est de stocker les requêtes dans un file quelque part, utiliser File.Contents pour accéder à ce file, puis utiliser Expression.Evaluate sur le contenu de ce file, comme mentionné dans cette publication du blog. L'étape ressemblerait à ceci:

Expression.Evaluate(Text.FromBinary(File.Contents(file_path_to_file_with_queries)), #shared)

#shared est une valeur spéciale qui renvoie un logging de toutes les requêtes et des fonctions de la bibliothèque.

Il y a quelques problèmes avec cette approche:

  • Certains types d'parsing statique, tels que ceux utilisés pour find des sources de données dans le file actuel, ne fonctionneront pas pour les requêtes chargées à partir du file
  • Le contenu du file peut changer, ce qui peut interrompre vos requêtes ou se connecter à des sources que vous ne connaissez pas.
  • Le classur est less portable car les requêtes ne se déplacent pas avec lui. Quiconque vous partagez votre classur doit avoir access au file text avec vos requêtes.

Vous pouvez également stocker des requêtes et des fonctions chez github. voir l'exemple ici: https://github.com/tycho01/pquery (file nommé Load.m)