Power Query dax avec référence

bennp

XLDnaute Occasionnel
Bonjour,

je n'arrive pas à récupérer une valeur sur une autre partie du tableau une ligne fait référence à une autre ligne de mon tableau pour indiquer une valeur, quelqu'un pourrait regarder mon fichier svp ?
tableau.png

if Code = "RSET_0151" and [#"Referentiel en usage - Copier"] = "RSET_0150" then .....



rechercher la même correspondance "Code" et [identifiant de la liaoson] et afficher la [valeur] qui est 1 pour mon exemple.

J'espère être assez clair :)

Merci d'avance pour tous les problèmes résolus sur ce forum, d'une grande aide pour comprendre et apprendre !!

Ben

ps: j'ai dû enlever un ] sinon il comprend que je veux saisir un code et non une variable qui s'appelle "Code"
 

Pièces jointes

  • rset.xlsx
    88.6 KB · Affichages: 9

bennp

XLDnaute Occasionnel
Bonjour,

pourtant si, il faut aller dasn Power Query, puis sur la requête Fusionner1, on voit bien le tableau avec toutes les colonnes.
Pour info, je souhaite que ma demande soit réalisée dans Power Query et non directement dans Excel.

Merci

Benoit
rset1.png
 

xUpsilon

XLDnaute Accro
Bonjour,

Plutôt que d'appeler les 5 lignes de "type paroi" en haut de ta query avec une fusion, j'aurais fonctionné avec une jointure.
D'un côté une table qui contient les "valeurs" associées aux "identifiant de liaison", de l'autre la table à compléter.
Via une jointure sur l'identifiant de liaison, tu peux importer la valeur pour chaque ligne, et appliquer un critère sur "Code" et "Référentiel en usage - copier"

Bonne journée,
 

bennp

XLDnaute Occasionnel
let
Source = Dictionnaire,
#"Lignes filtrées" = Table.SelectRows(Source, each (
Code:
 = "RSET_0151")),
    #"Autres colonnes supprimées" = Table.SelectColumns(#"Lignes filtrées",{"Référentiel en usage"}),
    #"Type modifié" = Table.TransformColumnTypes(#"Autres colonnes supprimées",{{"Référentiel en usage", type text}}),
    #"Fractionner la colonne par position" = Table.ExpandListColumn(Table.TransformColumns(#"Type modifié", {{"Référentiel en usage", Splitter.SplitTextByPositions({3, 27, 31, 55, 59, 83, 87, 111, 115, 139, 143, 167, 171, 196, 200, 225, 229, 254}), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Référentiel en usage"),
    #"Lignes filtrées1" = Table.SelectRows(#"Fractionner la colonne par position", each Text.StartsWith([Référentiel en usage], "RSET")),
    #"Texte inséré avant le délimiteur" = Table.AddColumn(#"Lignes filtrées1", "Texte avant le délimiteur", each Text.BeforeDelimiter([Référentiel en usage], "="), type text),
    #"Texte inséré entre les délimiteurs" = Table.AddColumn(#"Texte inséré avant le délimiteur", "Texte entre les délimiteurs", each Text.BetweenDelimiters([Référentiel en usage], "=", " "), type text),
    #"Texte inséré après le délimiteur" = Table.AddColumn(#"Texte inséré entre les délimiteurs", "Texte après le délimiteur", each Text.AfterDelimiter([Référentiel en usage], "Alors "), type text)
in
    #"Texte inséré après le délimiteur"
 

xUpsilon

XLDnaute Accro
c'est pour ça que je pense qu'il faut faire des tableaux RSET_0150 avant pour pouvoir s'en servir
Mais enfin tu pars d'un RSET_0151 ici pas RSET_0150 ...
Et tu dis RSET_0150=4 mais ce n'est pas vrai ... Tu as un identifiant unique (probablement identifiant d'opération) qui dit qu'on associe à cet identifiant le code RSET_0150 et la valeur 4. Mais ça ne veut pas dire que RSET_0150 = 4 ...

Je suis désolé, vraiment j'essaye de comprendre mais ça n'a pas de sens.
 

bennp

XLDnaute Occasionnel
oui mais dans la colonne Référentiel en usage" de Dictionnaire, la ligne RSET_0151 fait référence à la ligne RSET_0150, il faut donc utiliser l'identifiant de liaison et la ligne rset_150 pour trouver la valeur.
je pense pouvoir bidouiller quelque chose et je reviens vers toi
 

xUpsilon

XLDnaute Accro
Bon, donc si "Code" = RSET_0151 alors on s'intéresse à la "Valeur" c'est bien ça ?
Donc ce que j'en comprends c'est
VB:
Si Code = RSET_0151 et Valeur = 1 Alors REF058
Si Code = RSET_0151 et Valeur = 2 Alors REF059
Si Code = RSET_0151 et Valeur = 3 Alors REF060
Si Code = RSET_0151 et Valeur = 4 Alors REF061

C'est bien ça ?
 

bennp

XLDnaute Occasionnel
non, je ne pense pas :)
J'ai réussi à faire quelque chose, le pb est que j'appelle le tableau RSET_0150 mais j'aimerai pourvoir appeler n'importe quelle des 4 tableaux créé. J'ai pensé appeler les 4 tableaux à la suite et ensuite les regrouper puisque certaines cellules seront vide..

ps: j'ai préalablement trié l'identifiant de liaison à 6538580 et 6538581 pour ne pas emcombré (2 ref pour éviter les erreurs de tri) idem avec RSET_150, d'autres m'interresseront.

ici donc, on a pour un même id opération une :

- paroi sur locaux non chauffés de type porte
- paroi sur locaux non chauffés de type autres

Merci
Benoit
 

Discussions similaires

Réponses
7
Affichages
285

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 812
dernier inscrit
abdouami