excel怎么把重复的数据合并,高分

来源:百度知道 编辑:UC知道 时间:2024/06/06 03:50:30
A B C D E
甲 (空)有 (空)(空)
乙 有 (空)(空)(空)
丙 (空)(空)有 (空)
丁 (空)(空)(空)有
甲 (空)(空)有 (空)
乙 (空)(空)(空)有

像上面这样的一个表,A例有一些是重复的,甲和乙都有两条记录,但每一条记录只有一个数据。把它合并成

A B C D E
甲 (空)有 有 (空)
乙 有 (空)(空) 有
丙(空)(空)有(空)
丁(空)(空)(空)有

有(空)的表示没有数据的,有字就表示有数据,我表达的应该清楚了吧,
那个表格不是这样的,并不就只是只有甲乙丙丁,那个有字也只是表示有数据,而且都不一样,并不都是有字,我只是这么表示,

例如你的数据在sheet1的 a1:e6区域

在sheet2的a1:a4写





sheet2的B1写公式:

=IF(SUMPRODUCT((Sheet1!$A$1:$A$6=$A1)*ISNUMBER(Sheet1!B$1:B$6)),SUMPRODUCT((Sheet1!$A$1:$A$6=$A1)*Sheet1!B$1:B$6),"")

按你补充的.公式修改了,至于甲乙丙丁,有多少个都一样的道理,只要把公式中的$A$1:$A$6 B$1:B$6,这两个区域的地址修改一下就可以了. 甲乙丙丁这种唯一值的列表,可以用高级筛选,查找不重复的记录的功能筛选出来.

向右填充到E列,下填充4行.就是你要的结果

子易空间站 - 高效办公指导网站

这些数据在A1:E6,在G1输入公式=IF(A1="","",INDEX(A:A,SMALL(IF(MATCH($A$1:$A$6,$A$1:$A$6,)=ROW($1:$6),ROW($1:$6),10000),ROW(A1)))&""),在H1输入公式=IF($G1="","",INDEX(B:B,MIN(IF(($A$1:$A$6=$G1)*(B$1:B$6<>""),ROW($1:$6),10000)))&""),把H1公式向右复制到k1,选中g1:k1,用填充柄向下填充公式。(注意:是数组公式,在输入G1和H1公式时,公式在编辑状态下按CTRL+SHIFT+ENTER结束,填充公式时不需要这样做,公式中的区域引用可根据实际来修改,也可定义动态名称,这要根据实际表格来定义)

按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码贴进去,返回Excel按Alt+F8运行CombinData即可实现,虽然我这个回答较长,但操作起来最简单,呵呵。
Sub CombinData()
Dim NewShe