excel中怎样将相同编号的多行一列转换为一行多列?

怎样将图左边转换成图右边的形式?

数据量大,用Power Qurey是非常合适的方法

光标定位到数据区域中任意单元格,数据菜单——获取数据——来自表格/区域,弹出区域转换为表格的对话框,确认“表格含标题”打上了对勾后确定,进入Power Qurey界面

在Power Qurey中,先将件数的数据类型转换为文本,这是一个关键点,因为只有文本才能合并

再以编号为依据进行分组,对件数求和(这里求和只是为了进行合并而选择的方式)。结果为错(因为件数已转换为文本数据,不能求和),但编号已无重复数据

求和的M语句为:

= Table.Group(更改的类型, {"编号"}, {{"件数", each List.Sum([件数]), type nullable text}})

在编辑栏中将加粗处修改,得到:

= Table.Group(更改的类型, {"编号"}, {{"件数", each Text.Combine([件数], ","), type nullable text}})

原显示错误值的件数列中,就得到了用逗号(自己随意选择分隔符)分隔的同一编号的所有数据。

再将件数列按分隔会拆分,得到需要的结果。最后将结果上载回Excel工作表中。

且用Power Qurey处理的数据当源在有修改,包括增减、修改内容后,只要在结果数据区域中右击,选择刷新后就得到更新。无论你的数据有多大,Power Qurey都不会出现卡顿。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-02-28

=IFERROR(INDEX($B$2:$B$1000,SMALL(IF($A$2:$A$1000=$E2,ROW($1:$999),""),COLUMN(A1))),"")

CTRL+SHIFT+回车

然后向右拖动一格,再向下拖动。

E列的每个编号,可以直接把A列的复制过来,再用数据--删除重复值就可以了。

追问

数据很多的情况下,运用此数组公式全部填充完需要耗时很久,怎么解?

追答

找VBA大神给代码。

本回答被网友采纳
第2个回答  2022-03-02

你说的数组卡


要用vba,速度就快

相似回答