Power BI Union de deux tables sans dupliquer les lignes

MgLina

XLDnaute Nouveau
Bonjour le Forum!

Suite à la recherche dans les solutions VBA, je trouve que Power Bi est une solution beaucoup plus performante et facile à utiliser.
Mais j'ai rencontré un problème suivant après avoir fait la combinaison de mes deux tables.

J'ai deux tables comme suivantes que je voudrais les combiner ensemble. TABLE2 est une table dynamique de TABLE1.
1617649212220.png

1617649244977.png


Ce que je voudrais obtenir comme résultat après avoir combiné les deux tables TABLE1 et TABLE2,
1617649380435.png


Mais avec mon code DAX suivant, tout fonctionne bien, sauf la ligne où il y a ajout de date dans la colonne "Real End Date", il a crée deux lignes au lieu d'une seule ligne avec l'ajout de date dans la colonne dans la nouvelle TABLE.
1617649573407.png


Code:
Table =
Var UnionTable=UNION(SELECTCOLUMNS('TABLE1';"Client";'TABLE1'[Client];"PartNo";"TABLE1"[PartNo];"Titre";'TABLE1'[Titre];"TYPE";'TABLE1'[TYPE];"Start Date projected";'TABLE1'[StartDate];"End Date projected";'TABLE1'[EndDate];"Real End Date";'TABLE1'[RealEndDate];"Projet Name";'TABLE1'[ProjName]);SELECTCOLUMNS('TABLE2';"Client";'TABLE2'[Client];"PartNo";"TABLE2"[PartNo];"Titre";'TABLE2'[Titre];"TYPE";'TABLE2'[TYPE];"Start Date projected";'TABLE2'[StartDate];"End Date projected";'TABLE2'[EndDate];"Real End Date";'TABLE2'[RealEndDate];"Projet Name";'TABLE2'[ProjName]))
Return
Groupby(UnionTable;[Client];[PartNo];[Titre];[TYPE];[Start Date projected];[End Date projected];[Real End Date];[Projet Name])

J'ai mis le fichier d'exemple attaché.

Quelqu'un sait comment fixer ce problème ?

Merci beaucoup pour vos supports,
 

Pièces jointes

  • 1617649446396.png
    1617649446396.png
    24.9 KB · Affichages: 19
  • ExempleTABLE1TABLE2.xlsx
    9.4 KB · Affichages: 4

Dranreb

XLDnaute Barbatruc
Bonsoir.
Je n'utilise guère ces commandes, mais je pense fortement que le [Real End Date] doit au moins être retiré de la clause Groupby, non ?
Mon outils perso que j'utiliserait pour le sortir me ferait aussi ça si je lui demandais de grouper dessus !
 

MgLina

XLDnaute Nouveau
Bonsoir.
Je n'utilise guère ces commandes, mais je pense fortement que le [Real End Date] doit au moins être retiré de la clause Groupby, non ?
Mon outils perso que j'utiliserait pour le sortir me ferait aussi ça si je lui demandais de grouper dessus !
Merci Dranreb pour la réponse, je vais essayer. J'ai aussi posé la question dans le forum de Community PowerBI, ils m'ont dit que je ne devrais pas faire union de tables dans DAX, il faut le faire dans Power Query. Je vais essayer ça aussi.
 

MgLina

XLDnaute Nouveau
Toujours pas réussi à faire.... 😭

J'ai essayé avec Merge dans Power query, premièrement c'est long à merger, deuxièmement, je n'obtient pas le résultat que je veux.

J'ai aussi essayé de faire sortir [Real End Date] de Groupby, mais si je fais ça, la colonne [Real End Date] disparait de ma table.

Je continue à chercher des solutions, mais rien trouvé...... Quelqu'un pourrait m'aider stp ?
 

Dranreb

XLDnaute Barbatruc
Qu'est-ce qui définit de quelle table doivent être prises les données si, groupées sur d'autres critères, elles sont présentes dans les deux ?
Sur quels critères, par ordre de priorités, voulez vous qu'elles sortent classées et regroupées ?
 
Dernière édition:

MgLina

XLDnaute Nouveau
Qu'est-ce qui définit de quelle table doivent être prises les données si, groupées sur d'autres critères, elles sont présentes dans les deux ?
Sur quels critères, par ordre de priorités, voulez vous qu'elles sortent classées et regroupées ?
Bonjour Dranreb, je voudrais avoir une nouvelle table qui prend toutes les lignes de table 1 et toutes les lignes de table 2, grouper les lignes de ces 2 tables quand les contenus de leurs colonnes 'Client', 'PartNo','Titre','TYPE','Start Date projected', et 'End Date projected' sont identiques, et si la colonne 'Real End Date' est vide dans Table 1, alors prendre le contenu de la colonne 'Real End Date' de table 2.

Est-ce que c'est assez claire ? Sinon, n'hésites pas à me dire, merci
 

MgLina

XLDnaute Nouveau
Un essai avec ma fonction Gigogne.
Merci Dranreb pour la solution proposée, je vois que le code Macro est très complexe, et le résultat c'est ce que je voudrais. Je voudrais savoir est-ce qu'il y a une solution identique dans Power BI ? Parce que mon fichier d'origine contient beaucoup de données et ce sont des fichiers partagés, donc pas facile d'utiliser le Macro dans mes fichiers d'origine.

Merci encore pour ton aide!
 

MgLina

XLDnaute Nouveau
Je ne sais pas faire, désolé. Mais ma solution groupait aussi sur 'Étape' et 'Projet Name'. C'est bon quand même ?
Si c'est seulement groupé sur 'Étape' et 'Projet Name', il pourrait ne pas avoir toutes les lignes. Parce que dans mon fichier d'origine, je pourrai avoir un même projet Name et même étape, mais différentes PartNo ou différents Titre.

Mais merci toujours pour le temps passé sur mon problème.
 

chris

XLDnaute Barbatruc
Bonjour à tous

Je ne sais si c'est toujours d'actualité et si j'ai bien compris

VB:
let
    Source = Table.Combine({Table1, Table2}),
    #"Lignes groupées" = Table.Group(Source, {"Client", "PartNo", "Titre", "TYPE", "Start Date projected", "End Date projected", "Projet Name"}, {{"Real End Date", each List.Max([Real End Date]), type nullable date}})
in
    #"Lignes groupées"
 

Statistiques des forums

Discussions
312 085
Messages
2 085 196
Membres
102 814
dernier inscrit
JLGalley