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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从表中的查询编辑器中添加新列相关的知识,希望对你有一定的参考价值。

我是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

答案

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

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

从这开始: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 descripti<p>以上是关于从表中的查询编辑器中添加新列的主要内容,如果未能解决你的问题,请参考以下文章</p> 
<p > <a style=如何向视图添加列?

如果期望的行为是让查询自动添加新列,可以选择 * 吗? [复制]

如何将 SELECT 的结果添加为现有表中的新列?

向表中添加了新列并减慢了整个数据库的速度。为啥?

使用查找表中的 withColumn 动态添加新列

如何编写 SQL 查询以从表中提取 50% 的记录?