2017-09-15 3 views
0

Ich habe eine Abfrage wie folgt aus:Table.Group gibt Nachschlüssel

let 
    Source = Table.Combine({#"T1", #"T2", #"T3"}), 
#"Grouped Rows" = Table.Group(Source, {"Name"}, { 
    {"T1.Col", each List.Min([T1Col]), type text}, 
    {"T2.Col", each List.Min([T2Col]), type text}, 
    {"T3.Col", each List.Min([T3Col]), type text} 
    }) 
in 
    #"Grouped Rows" 

ich es verwenden, um eindeutige Werte von „Name“ in allen drei Quellentabellen T1..T3 und dann einen Wert auswählen zu finden Überprüfen Sie anhand der drei verschiedenen Quellentabellen, ob für diesen spezifischen Namen Daten aus den Originaltabellen vorhanden sind.

Nach dem Ausführen dieser Operation erwarte ich, dass die eindeutigen Werte von "name" enden, aber ich erhalte tatsächlich ein Duplikat.

Was ist der Grund für dieses seltsame Verhalten? Fixieren Sie Werttypen in Quelltabellen nicht? Bat Zeichencodierung? Die verschiedenen Tabellen werden von Excel-Arbeitsblättern auf verschiedenen Sharepoint-Sites geladen, so dass schlechte Daten ein Problem sein können, aber ich habe nicht die Erfahrung von PowerQuery, um zu wissen, welche Art von schlechten Eingaben zu suchen sind.

Und noch wichtiger: Wie bekomme ich eindeutige Werte von Name beim Aggregieren der ursprünglichen Tabelle?

Antwort

0

Das Problem war, dass ein abschließender Leerraum PowerQuery verursachte, zwei verschiedene Zeilen unter Table.group zu erstellen, aber die neuen Tabellenzeilen enthielten keine abschließenden Leerzeichen, wodurch sie zu doppelten Namen wurden.

fixiert ich das Problem, indem Sie das Skript in

Umwandlung
let 
    Source = Table.Combine({#"T1", #"T2", #"T3"}), 
    #"Trimmed Text" = Table.TransformColumns(Source,{{"Name", Text.Trim}}), 
    #"Grouped Rows" = Table.Group(#"Trimmed Text", {"Name"}, { 
     {"T1.Col", each List.Min([T1Col]), type text}, 
     {"T2.Col", each List.Min([T2Col]), type text}, 
     {"T3.Col", each List.Min([T3Col]), type text} 
    }) 
in 
    #"Grouped Rows" 

Der Nachteil ist, dass ich das Skript tatsächlich Datenqualität nutzen und die Namen richtige Verwendung für die Beurteilung, so möchte ich die beiden Namen auf verschiedenen finden Zeilen mit eindeutigen Namen nach der Gruppierung. Ein längerfristiger Fix könnte für mich sein, Namen mit abschließenden Leerzeichen in einen anderen Namen mit einem Suffix wie "_TRAIL" zu transformieren, aber nur das Trimmen von Leerzeichen ist jetzt gut genug.

Verwandte Themen