转换电源查询分组数据中的数据
Transform data in power query grouping data
我在电源查询中有以下 table:
我想按两列动物分组,一列被接受,另一列被拒绝,用逗号分隔:
我尝试连接 animals - status 列,然后使用函数 group by,获得以下结果:
试过的电源查询码:
let
Origen = Excel.Workbook(File.Contents("C:\Users\user\Desktop\example_animals_status.xlsx"), null, true),
Example_Sheet = Origen{[Item="Example",Kind="Sheet"]}[Data],
#"Encabezados promovidos" = Table.PromoteHeaders(Example_Sheet, [PromoteAllScalars=true]),
#"Tipo cambiado" = Table.TransformColumnTypes(#"Encabezados promovidos",{{"code number", Int64.Type}, {"animal", type text}, {"status", type text}}),
#"Columnas combinadas" = Table.CombineColumns(#"Tipo cambiado",{"animal", "status"},Combiner.CombineTextByDelimiter("-", QuoteStyle.None),"combined"),
#"Tipo cambiado1" = Table.TransformColumnTypes(#"Columnas combinadas",{{"code number", type text}}),
#"Filas agrupadas" = Table.Group(#"Tipo cambiado1", {"code number"}, {{"Recuento", each Text.Combine([combined],";"), type text}}) in #"Filas agrupadas"
但我不知道如何拆分和创建包含被拒绝和接受的动物的两列。提前谢谢你
首先,这是 Power Query Language (M),不是 DAX。
现在,您可以按代码和状态分组,并为每个组合组合不同的动物;
#"Grouped Rows" = Table.Group(#"Tipo cambiado", {"code number", "status"}, {{"animals", each Text.Combine(List.Sort(List.Distinct(_[animal]),Order.Ascending),", "), type text}}),
然后你可以在状态上旋转 table;
#"Pivoted Status" = Table.Pivot(#"Grouped Rows", List.Distinct(#"Grouped Rows"[status]), "status", "animals")
因此您的新查询变为:
let
Origen = Excel.Workbook(File.Contents("C:\Users\user\Desktop\example_animals_status.xlsx"), null, true),
Example_Sheet = Origen{[Item="Example",Kind="Sheet"]}[Data],
#"Encabezados promovidos" = Table.PromoteHeaders(Example_Sheet, [PromoteAllScalars=true]),
#"Tipo cambiado" = Table.TransformColumnTypes(#"Encabezados promovidos",{{"code number", Int64.Type}, {"animal", type text}, {"status", type text}}),
#"Grouped Rows" = Table.Group(#"Tipo cambiado", {"code number", "status"}, {{"animals", each Text.Combine(List.Sort(List.Distinct(_[animal]),Order.Ascending),", "), type text}}),
#"Pivoted Status" = Table.Pivot(#"Grouped Rows", List.Distinct(#"Grouped Rows"[status]), "status", "animals")
in
#"Pivoted Status"
输出如下所示:
我在电源查询中有以下 table:
我想按两列动物分组,一列被接受,另一列被拒绝,用逗号分隔:
我尝试连接 animals - status 列,然后使用函数 group by,获得以下结果:
试过的电源查询码:
let
Origen = Excel.Workbook(File.Contents("C:\Users\user\Desktop\example_animals_status.xlsx"), null, true),
Example_Sheet = Origen{[Item="Example",Kind="Sheet"]}[Data],
#"Encabezados promovidos" = Table.PromoteHeaders(Example_Sheet, [PromoteAllScalars=true]),
#"Tipo cambiado" = Table.TransformColumnTypes(#"Encabezados promovidos",{{"code number", Int64.Type}, {"animal", type text}, {"status", type text}}),
#"Columnas combinadas" = Table.CombineColumns(#"Tipo cambiado",{"animal", "status"},Combiner.CombineTextByDelimiter("-", QuoteStyle.None),"combined"),
#"Tipo cambiado1" = Table.TransformColumnTypes(#"Columnas combinadas",{{"code number", type text}}),
#"Filas agrupadas" = Table.Group(#"Tipo cambiado1", {"code number"}, {{"Recuento", each Text.Combine([combined],";"), type text}}) in #"Filas agrupadas"
但我不知道如何拆分和创建包含被拒绝和接受的动物的两列。提前谢谢你
首先,这是 Power Query Language (M),不是 DAX。
现在,您可以按代码和状态分组,并为每个组合组合不同的动物;
#"Grouped Rows" = Table.Group(#"Tipo cambiado", {"code number", "status"}, {{"animals", each Text.Combine(List.Sort(List.Distinct(_[animal]),Order.Ascending),", "), type text}}),
然后你可以在状态上旋转 table;
#"Pivoted Status" = Table.Pivot(#"Grouped Rows", List.Distinct(#"Grouped Rows"[status]), "status", "animals")
因此您的新查询变为:
let
Origen = Excel.Workbook(File.Contents("C:\Users\user\Desktop\example_animals_status.xlsx"), null, true),
Example_Sheet = Origen{[Item="Example",Kind="Sheet"]}[Data],
#"Encabezados promovidos" = Table.PromoteHeaders(Example_Sheet, [PromoteAllScalars=true]),
#"Tipo cambiado" = Table.TransformColumnTypes(#"Encabezados promovidos",{{"code number", Int64.Type}, {"animal", type text}, {"status", type text}}),
#"Grouped Rows" = Table.Group(#"Tipo cambiado", {"code number", "status"}, {{"animals", each Text.Combine(List.Sort(List.Distinct(_[animal]),Order.Ascending),", "), type text}}),
#"Pivoted Status" = Table.Pivot(#"Grouped Rows", List.Distinct(#"Grouped Rows"[status]), "status", "animals")
in
#"Pivoted Status"
输出如下所示: