基于日期列将 Power BI 中的单行转换为多行
Convert single row to multiple rows in Power BI based a date column
我需要在 Power BI 中按照以下要求转换数据:
获取源文件如下:
需要根据每个月的预测月数(第 4 列)将每一行转换为多行。下面的费用月份是每个月的 1 号。然后将费用除以每个月计划费用的预测月份。
如何在 Power BI 中实现这一点?
您可以在强大的查询编辑器中执行此转换。下面是转换代码-
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUXJ0cgaSRgZGhroGlrpGBkCOGQgbKMXqRCsZAZkurm5wFWa6BiBNpkBsDFFhDGRGREbBVVhAVFiAVBgpxcYCAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [ID = _t, Title = _t, #"Project Start Date" = _t, #"Project Months" = _t, Expense = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", Int64.Type}, {"Title", type text}, {"Project Start Date", type date}, {"Project Months", Int64.Type}, {"Expense", Int64.Type}}),
#"Calculated Start of Month" = Table.TransformColumns(#"Changed Type",{{"Project Start Date", Date.StartOfMonth, type date}}),
#"Added Custom" = Table.AddColumn(#"Calculated Start of Month", "Custom", each List.Range({1..[Project Months]},0)),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Custom.1", each [Expense]/[Project Months]),
#"Expanded Custom" = Table.ExpandListColumn(#"Added Custom1", "Custom"),
#"Added Custom2" = Table.AddColumn(#"Expanded Custom", "Custom.2", each Date.AddMonths([Project Start Date],[Custom]-1)),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom2",{"Project Start Date", "Project Months", "Expense", "Custom"}),
#"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Custom.2", "Expense Month"}, {"Custom.1", "Planned Expense"}})
in
#"Renamed Columns"
这里是最终输出-
我需要在 Power BI 中按照以下要求转换数据:
获取源文件如下:
需要根据每个月的预测月数(第 4 列)将每一行转换为多行。下面的费用月份是每个月的 1 号。然后将费用除以每个月计划费用的预测月份。
如何在 Power BI 中实现这一点?
您可以在强大的查询编辑器中执行此转换。下面是转换代码-
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUXJ0cgaSRgZGhroGlrpGBkCOGQgbKMXqRCsZAZkurm5wFWa6BiBNpkBsDFFhDGRGREbBVVhAVFiAVBgpxcYCAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [ID = _t, Title = _t, #"Project Start Date" = _t, #"Project Months" = _t, Expense = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", Int64.Type}, {"Title", type text}, {"Project Start Date", type date}, {"Project Months", Int64.Type}, {"Expense", Int64.Type}}),
#"Calculated Start of Month" = Table.TransformColumns(#"Changed Type",{{"Project Start Date", Date.StartOfMonth, type date}}),
#"Added Custom" = Table.AddColumn(#"Calculated Start of Month", "Custom", each List.Range({1..[Project Months]},0)),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Custom.1", each [Expense]/[Project Months]),
#"Expanded Custom" = Table.ExpandListColumn(#"Added Custom1", "Custom"),
#"Added Custom2" = Table.AddColumn(#"Expanded Custom", "Custom.2", each Date.AddMonths([Project Start Date],[Custom]-1)),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom2",{"Project Start Date", "Project Months", "Expense", "Custom"}),
#"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Custom.2", "Expense Month"}, {"Custom.1", "Planned Expense"}})
in
#"Renamed Columns"
这里是最终输出-