如何将EXCEL表格编号相同的多行合并到同一行?
提供一种powerquery的解决思路:
let
源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
更改的类型 = Table.TransformColumnTypes(源,{{"列1", Int64.Type}, {"列2", type text}}),
分组的行 = Table.Group(更改的类型, {"列1"}, {{"data", each _, type table [列1=number, 列2=text]}}),
自定义1 = Table.TransformColumns(分组的行,{"data",each Text.Combine(_[列2],",")}),
按分隔符拆分列 = Table.SplitColumn(自定义1, "data", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"data.1", "data.2"}),
更改的类型1 = Table.TransformColumnTypes(按分隔符拆分列,{{"data.1", type text}, {"data.2", type text}})
in
更改的类型1
用法:
1.确保原始数据在Sheet1且被转换成了table格式(如下图所示,我的已经是表格,所以显示为灰色)
2.在【数据】选项卡上新建一个空白查询,如下图所示
把前面的代码复制粘贴进去,然后点击【全部刷新】,数据就自动加载到sheet2上了。
3.如果只操作一次且数据不多,建议用前面大神提供的数组公式,这样更快。
4.如果需要经常这么操作,或者数据量达到几十万上百万乃至更多的级别,那么建议用上面的步骤建立一个powerquery模板,以后就只需要覆盖sheet1的数据然后刷新即可。甚至可以将数据源改造为来自于文件夹的文件,这样以后重复操作就只需要把原始文件丢进那个文件夹,然后打开模板文件刷新就得到最新结果了。