从表中的查询编辑器中添加新列

问题描述 投票:1回答:2

我是PowerBI部分的新手,我需要一些帮助。

到目前为止,我所做的是从两张桌子中合并查询,现在我得到了一张新的库存“ROUTE DATA”(如下图所示)

并在每一行theres表(我打开其中一个表,你可以在图片中看到)

所以我不知道如何为表中的每一行的每个ID创建一个新列。就像你可以在图片中看到的那样(我添加的红细胞)。

enter image description here希望你能帮助我。

谢谢Daniel。

编辑星期日6/10/18:@Marc Pincince Marc非常感谢你!所以问题现在是具有空值的单元格:我对你的帖子的评论:(你好马克。再次谢谢你!所以我试着按照你的指示进行操作,最后一个工作效果不好。我会添加一张图片告诉你什么错了,但我不能把图片添加到这里,所以我会把它们添加到主帖抱歉打扰你。问题是所有“空”单元格。我可以删除它们并只获取数据吗?image.ibb.co /cHncHo/Capture.png和image.ibb.co/c4prco/Capture1.png)

enter image description here

enter image description here

database merge powerbi
2个回答
1
投票

---首先出现原始答案,然后是基于讨论的更新版本---

这是一种可行的方法......

从这开始:enter image description here

执行@Alexis建议的操作:单击ROUTE DATA列右上角的展开图标,然后选择展开所有列(Select All Columns)并单击OK:

enter image description here

是的,您会看到所有四行都展开了:

enter image description here

现在,选择ROUTE NAME,START TIME和COMPLETE TIME列,然后单击Transform选项卡,然后单击Unpivot Columns下拉箭头和Unpivot Only Selected Columns:

enter image description here

你会看到这样的事情:

enter image description here

现在,通过单击“添加列”选项卡和“索引列”添加索引列。索引应该从零开始,看起来像这样。

enter image description here

现在添加一个模数。您可以通过选择索引列并单击“添加列”选项卡,然后单击“标准”,然后单击“模数”,然后键入3并单击“确定”来执行此操作。

enter image description here

你应该看到这样的东西:

enter image description here

现在单击“添加列”选项卡,然后单击“自定义列”,添加自定义列;只需将列名保持为Custom,在公式框中键入[Attribute] & " " & Text.From(([Index]-[Modulo])/3),然后单击“确定”。这会创建唯一的列名称,您需要立即使用新列:

enter image description here

enter image description here

通过选择所有列,然后选择“主页”选项卡,然后选择“删除列”,删除“属性”,“索引”和“模块”列。

enter image description here

enter image description here

现在选择Custom列,然后单击Transform选项卡,然后单击Pivot Column:

enter image description here

然后为Values Column条目选择Value,单击Advanced options,然后单击下拉箭头以选择Do not Aggregate,并单击OK。你应该看到这样的东西:

enter image description here

这是高级编辑器的M代码:

let
Source = QuerySource,
#"Expanded Custom" = Table.ExpandTableColumn(Source, "ROUTE DATA", {"UTID", "ROUTE NAME", "START TIME", "COMPLETE TIME"}, {"UTID", "ROUTE NAME", "START TIME", "COMPLETE TIME"}),
#"Unpivoted Only Selected Columns" = Table.Unpivot(#"Expanded Custom", {"ROUTE NAME", "START TIME", "COMPLETE TIME"}, "Attribute", "Value"),
#"Added Index" = Table.AddIndexColumn(#"Unpivoted Only Selected Columns", "Index", 0, 1),
#"Inserted Modulo" = Table.AddColumn(#"Added Index", "Modulo", each Number.Mod([Index], 3), type number),
#"Added Custom1" = Table.AddColumn(#"Inserted Modulo", "Custom", each [Attribute] & " " & Text.From(([Index]-[Modulo])/3)),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom1",{"Attribute", "Index", "Modulo"}),
#"Pivoted Column" = Table.Pivot(#"Removed Columns", List.Distinct(#"Removed Columns"[Custom]), "Custom", "Value")
in
#"Pivoted Column"

---更新每次讨论---

开头:enter image description here

并将其扩展到......

enter image description here

选择ROUTE NAME,START TIME和COMPLETE TIME列,然后单击Transform选项卡,然后单击Unpivot Columns下拉箭头和Unvivot Only Selected Columns,如前所示:

enter image description here

现在,选择UTID列,然后选择Transform选项卡,然后选择Group by,并设置如下对话框,然后单击OK:

enter image description here

你会看到这样的事情:

enter image description here

单击添加列选项卡,然后单击自定义列并将其设置如下:

enter image description here

然后展开新的自定义列以查看如下内容:

enter image description here

然后添加另一个自定义列(添加列选项卡>自定义列)设置如下:

enter image description here

你应该看到这样的东西:

enter image description here

展开Custom.1列中的记录。它应该看起来像这样:

enter image description here

单击Custom列,然后单击Add Column选项卡和Standard按钮的下拉箭头,选择Modulo。键入3并单击“确定”。你会看到这样的事情:

enter image description here

添加另一个自定义列,设置如下:

enter image description here

你应该看到这样的东西:

enter image description here

删除不再需要的列(即Count,AllData,Custom,UTID.1,Attribute和Modulo)以获得如下内容:

enter image description here

然后单击Custom2列,然后单击Transform选项卡和Pivot Column,然后为Values Column条目选择Value,单击Advanced options,然后选择下拉箭头以选择Do Not Aggregate,并单击OK。你应该看到这样的东西:

enter image description here

这是代码:

let
Source = QuerySource,
#"Expanded Custom" = Table.ExpandTableColumn(Source, "ROUTE DATA", {"UTID", "ROUTE NAME", "START TIME", "COMPLETE TIME"}, {"UTID", "ROUTE NAME", "START TIME", "COMPLETE TIME"}),
#"Unpivoted Only Selected Columns" = Table.Unpivot(#"Expanded Custom", {"ROUTE NAME", "START TIME", "COMPLETE TIME"}, "Attribute", "Value"),
#"Grouped Rows" = Table.Group(#"Unpivoted Only Selected Columns", {"UTID"}, {{"Count", each Table.RowCount(_), type number}, {"AllData", each _, type table}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "Custom", each {0..[Count]-1}),
#"Expanded Custom1" = Table.ExpandListColumn(#"Added Custom", "Custom"),
#"Added Custom2" = Table.AddColumn(#"Expanded Custom1", "Custom.1", each [AllData]{[Custom]}),
#"Expanded Custom.1" = Table.ExpandRecordColumn(#"Added Custom2", "Custom.1", {"Column1", "UTID", "Attribute", "Value"}, {"Column1", "UTID.1", "Attribute", "Value"}),
#"Inserted Modulo1" = Table.AddColumn(#"Expanded Custom.1", "Modulo", each Number.Mod([Custom], 3), type number),
#"Added Custom1" = Table.AddColumn(#"Inserted Modulo1", "Custom2", each [Attribute] & " " & Text.From(([Custom]-[Modulo])/3)),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom1",{"Count", "AllData", "Custom", "UTID.1", "Attribute", "Modulo"}),
#"Pivoted Column" = Table.Pivot(#"Removed Columns", List.Distinct(#"Removed Columns"[Custom2]), "Custom2", "Value")
in
#"Pivoted Column"

0
投票

单击表格右上角的展开图标,然后选择所需的行。

© www.soinside.com 2019 - 2024. All rights reserved.