IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

PowerQuery - Passer des arguments d'un tableau excel dans des fonctions M [XL-2016]


Sujet :

Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2002
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 23
    Points : 18
    Points
    18
    Par défaut PowerQuery - Passer des arguments d'un tableau excel dans des fonctions M
    Bonjour,

    je cherche à passer, soit une expression directement, soit des arguments pour décoder une réf en fonction d'une famille (voir exemple ci-dessous) :
    Nom : 2019-04-10 14_01_04-DecodageRef.xlsx - Excel.png
Affichages : 359
Taille : 19,0 Ko

    Que ce soit par le "Décodeur 1", le "Décodeur 2" ou quelque chose de proche, je n'y arrive pas.

    Pour l’approche suivant le décodeur 1, la fonction "Expression.Evaluate" me donne systématiquement des messages d'erreur.
    Pour l'approche suivant le décodeur 2, j'arrive à créer une liste des arguments de mon décodeur, mais je ne vois pas comment convertir la liste en action dans M.

    Si vous avez une autre solution 100% Power Query, je suis preneur.

    Ci-joint, le fichier Excel DecodageRef.xlsx avec les datas.

    Merci d'avance pour votre aide

    Cordialement
    Newbies de chez Newbies

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2002
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 23
    Points : 18
    Points
    18
    Par défaut Aleluya !!!
    Bonjour,

    solution trouvée. +

    Ressource qui m'a aidé : https://ssbi-blog.de/technical-topic...esktop-part-3/

    Code M pour réaliser solutionner mon problème (Requête fusion pour avoir la clé dans ma table puis interpretation de la clé) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    let
        Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
        TypeModif = Table.TransformColumnTypes(Source,{{"Famille", type text}, {"Ref", type text}}),
        RequêteFusion = Table.NestedJoin(TypeModif,{"Famille"},Cle,{"Famille"},"Cle",JoinKind.LeftOuter),
        DecodeurImport = Table.ExpandTableColumn(RequêteFusion, "Cle", {"Decodeur 1"}, {"Cle.Decodeur 1"}),
        CleConfig = Table.AddColumn(DecodeurImport, "Personnalisé", each Expression.Evaluate([Cle.Decodeur 1], Record.Combine({[_=_], #shared}))),
        SupCol = Table.RemoveColumns(CleConfig,{"Cle.Decodeur 1"})
    in
        SupCol
    La subtilité est dans Record.Combine({[_=_], #shared}) -> voir explication dans la ressource, partie "Expression.Evaluate with combined global and non global environments" et "Expression.Evaluate in a calculated column".

    Ci-joint le fichier modifié avec la solution : DecodageRef_v2.xlsx

    Au plaisir.
    Newbies de chez Newbies

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Référence des colonnes d'un tableau excel dans une macro
    Par BigBill_125 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 02/11/2017, 12h05
  2. Réponses: 2
    Dernier message: 08/08/2016, 10h04
  3. [Débutant] tracer des données d'un tableau Excel dans la même page
    Par skander12 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 26/01/2016, 17h32
  4. tableau excel dans un état ou formulaire access?
    Par flower dans le forum Access
    Réponses: 5
    Dernier message: 12/05/2006, 10h27
  5. [VBA] insérer un tableau Excel dans un formulaire
    Par Alexj51 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 08/02/2006, 13h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo