2017-08-22 4 views
0

In Power-Abfrage möchte ich meine Tabelle basierend auf einer Bedingung aufheben: pivot alle Spalten außer denen, die mit "IP_Adresse" oder "Bitte geben Sie Ihre".Bedingte Unpivot in PowerQuery

Ist das möglich?

Antwort

0

Hier ist eine Art und Weise:

Wenn Sie mit einer Tabelle wie folgt beginnen:

enter image description here

Sie die enter image description here links von der Bearbeitungsleiste klicken und ersetzen, was in der Bearbeitungsleiste erscheint mit diesem:

#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(Source, List.RemoveNulls(List.Generate(
()=>[A=Table.ColumnNames(Source), Index=0], 
each [Index] < List.Count([A]), 
each [A=[A],Index =[Index]+1], 
each if Text.Start([A]{[Index]},10) = "IP_Address" then [A]{[Index]} 
    else if Text.Start([A]{[Index]},18) = "Please state your" then [A]{[Index]} 
    else null 
)), "Attribute", "Value") 

Um dies zu erhalten:

enter image description here

Hier ist meine komplette Abfrage-Code:

let 
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], 
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(Source, List.RemoveNulls(List.Generate(
()=>[A=Table.ColumnNames(Source), Index=0], 
each [Index] < List.Count([A]), 
each [A=[A],Index =[Index]+1], 
each if Text.Start([A]{[Index]},10) = "IP_Address" then [A]{[Index]} 
    else if Text.Start([A]{[Index]},18) = "Please state your" then [A]{[Index]} 
    else null 
)), "Attribute", "Value") 
in 
#"Unpivoted Other Columns" 

ich gerade bemerkte ich "IP_Address" (mit einem Kapital A) anstelle von "IP_address" (mit einem kleinen A) verwendet wird, so dass Sie Ich muss mich darauf einstellen.