在 PowerBi 中将 Table 中的数据从行转换为列
Convert data in Table from Row to Column in PowerBi
我有以下 table 格式的数据,其中在 Column1 中,名称每 4 行重复一次。
Column1 Column2
Date 11:10:20
Mem usage 44%
CPU usage 35%
Disk usage 20%
Date 11:11:20
Mem usage 40%
CPU usage 34%
Disk usage 24%
Date 11:12:20
Mem usage 34%
CPU usage 20%
Disk usage 18%
我想将其转换成以下 table 格式。
我尝试 pivot/unpivot 但没有成功。有什么办法可以做到吗?
Date Mem Usage CPU Usage Disk Usage
11:10:20 44% 35% 20%
11:11:20 40% 34% 24%
11:12:20 34% 20% 18%
按照以下步骤进行电源查询
Select 来自自定义 Table
的 column2 和索引列
诀窍是使用额外的分组列:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WckksSVXSUTI0tDI0sDIyUIrViVbyTc1VKC1OTAdJmJiogsWcA0LhYsamEDGXzOJsuKCRAVQQYaAhVgMNsBhogs1AEwwDjbAZaIzFhXDHIBtoaAEUjAUA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t]),
#"Changed Type" = Table.TransformColumnTypes(
Source,{{"Column1", type text}, {"Column2", type text}}),
#"Added Index" = Table.AddIndexColumn(
#"Changed Type", "Index", 0, 1, Int64.Type),
#"Integer-Divided Column" = Table.TransformColumns(
#"Added Index", {{"Index", each Number.IntegerDivide(_, 4), Int64.Type}}),
#"Pivoted Column" = Table.Pivot(
Table.TransformColumnTypes(#"Integer-Divided Column", {{"Index", type text}}, "en-US"),
List.Distinct(Table.TransformColumnTypes(#"Integer-Divided Column", {{"Index", type text}}, "en-US")[Index]),
"Index",
"Column2"),
#"Transposed Table" = Table.Transpose(
#"Pivoted Column"),
#"Promoted Headers" = Table.PromoteHeaders(
#"Transposed Table", [PromoteAllScalars=true]),
#"Changed Type1" = Table.TransformColumnTypes(
#"Promoted Headers",{
{"CPU usage", Percentage.Type},
{"Date", type time},
{"Disk usage", Percentage.Type},
{"Mem usage", Percentage.Type}
}
)
in
#"Changed Type1"
我有以下 table 格式的数据,其中在 Column1 中,名称每 4 行重复一次。
Column1 Column2 Date 11:10:20 Mem usage 44% CPU usage 35% Disk usage 20% Date 11:11:20 Mem usage 40% CPU usage 34% Disk usage 24% Date 11:12:20 Mem usage 34% CPU usage 20% Disk usage 18%
我想将其转换成以下 table 格式。 我尝试 pivot/unpivot 但没有成功。有什么办法可以做到吗?
Date Mem Usage CPU Usage Disk Usage 11:10:20 44% 35% 20% 11:11:20 40% 34% 24% 11:12:20 34% 20% 18%
按照以下步骤进行电源查询
Select 来自自定义 Table
的 column2 和索引列诀窍是使用额外的分组列:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WckksSVXSUTI0tDI0sDIyUIrViVbyTc1VKC1OTAdJmJiogsWcA0LhYsamEDGXzOJsuKCRAVQQYaAhVgMNsBhogs1AEwwDjbAZaIzFhXDHIBtoaAEUjAUA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t]),
#"Changed Type" = Table.TransformColumnTypes(
Source,{{"Column1", type text}, {"Column2", type text}}),
#"Added Index" = Table.AddIndexColumn(
#"Changed Type", "Index", 0, 1, Int64.Type),
#"Integer-Divided Column" = Table.TransformColumns(
#"Added Index", {{"Index", each Number.IntegerDivide(_, 4), Int64.Type}}),
#"Pivoted Column" = Table.Pivot(
Table.TransformColumnTypes(#"Integer-Divided Column", {{"Index", type text}}, "en-US"),
List.Distinct(Table.TransformColumnTypes(#"Integer-Divided Column", {{"Index", type text}}, "en-US")[Index]),
"Index",
"Column2"),
#"Transposed Table" = Table.Transpose(
#"Pivoted Column"),
#"Promoted Headers" = Table.PromoteHeaders(
#"Transposed Table", [PromoteAllScalars=true]),
#"Changed Type1" = Table.TransformColumnTypes(
#"Promoted Headers",{
{"CPU usage", Percentage.Type},
{"Date", type time},
{"Disk usage", Percentage.Type},
{"Mem usage", Percentage.Type}
}
)
in
#"Changed Type1"