powerquery中的有条件Unpivot

时间:2017-08-22 07:49:02

标签: excel powerpivot powerquery

在电源查询中,我想根据条件忽略我的表:取消所有列,除了那些以" IP_address"开头的列。或"请说明您的"。

这可能吗?

1 个答案:

答案 0 :(得分:0)

这是一种方式:

如果您从这样的表开始:

enter image description here

您可以点击公式栏左侧的enter image description here,然后用以下内容替换公式栏中显示的内容:

#"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")

要得到这个:

enter image description here

这是我的完整查询代码:

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"

我刚注意到我使用了“IP_Address”(使用大写字母A)而不是“IP_address”(小写字母A),所以你需要调整它。