我有以下简化的数据集,我需要从中创建一个唯一列表并同时转置B列中的数据。我认为我需要使用INDEX,但不确定这种情况下的正确语法。
B列中的数据用空格分隔。
这是我的数据:
(New-Version 1 2 3 4).BuildRevision
3.4
必填结果
|---------------------|------------------|
| Column A | Column B |
|---------------------|------------------|
| 1 | AA BB |
|---------------------|------------------|
| 2 | BB CC |
|---------------------|------------------|
| 3 | DD EE |
|---------------------|------------------|
答案 0 :(得分:1)
要在输入表中得到输出表,只需几个步骤,就可以从UI使用Power Query:
space
分隔符分隔B列。unpivot other columns
Attribute
。这是该操作的M
代码
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", Int64.Type}, {"Column2", type text}}),
#"Split Column by Delimiter" = Table.SplitColumn(#"Changed Type", "Column2", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Column2.1", "Column2.2"}),
#"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Column2.1", type text}, {"Column2.2", type text}}),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Changed Type1", {"Column1"}, "Attribute", "Value"),
#"Removed Columns" = Table.RemoveColumns(#"Unpivoted Other Columns",{"Attribute"})
in
#"Removed Columns"
结果:
答案 1 :(得分:0)
Ron Rosenfeld's answer将数据作为所需结果指示的OP取消透视。
如果需要从两列创建数据的所有组合(而不是取消透视),请通过将每组值放置在其自己的列中来规范化数据。在此示例中,列B每个单元具有两个数据条目,可以使用Data > Text to Columns
进行拆分。要使用唯一条目,请使用标准Excel工具Data > Remove Duplicates
,或在Excel Power Query Editor中,右键单击数据列标题,然后单击Remove Duplicates
。
为要包括在组合中的每一列创建单独的查询。通过添加带有引用第一个数据查询的公式的自定义列,Power Query将在两列之间执行 Full Outer Join (完全外部联接)。
(a)选择列B。在功能区中,转到“数据”>“文本到列”。
(b)在适当的定界符(空格,制表符等)上分割数据。
(a)从C列中剪切数据并粘贴到B列中
(b)将C列数据粘贴到B列中。
(c)选择B列,然后单击数据>删除重复项
(d)如果弹出警告,提示您在选择项旁边找到的数据,请单击“继续当前选择项”
(e)选中“ B列”复选框,然后单击“确定”。
(a)选择A列,然后单击数据>来自表/范围
(b)查询设置>属性>名称并输入名称“ ColumnA”
(c)主页>关闭并加载>关闭并加载到...
(d)选择:仅创建连接
(a)选择B列
(b)数据>来自表/范围
(c)查询设置>属性>名称并输入名称“ ColumnB”
(d)添加列>自定义列
(e)新列名称:组合
(f)自定义列公式:= ColumnA
(g)展开新的“组合”列(带有向左/向右箭头的图标)
(h)将“组合”列拖到左侧
(i)主页>关闭并加载