excel中如何用公式把多列数据合并成1列,重复的数据只显示一次:

如:A B C
张三 张三 张三
李四 王二 赵无
赵无 小明 小明

要求在D列中显示为:D
张三
李四
赵无
王二
小明

用if嵌套就可以了

1、在E列中输入:

=IF(ROW()<COUNTA(A:A)+1,INDEX(A:A,ROW(),1),IF(ROW()<COUNTA(A:A)+COUNTA(B:B),INDEX(B:B,ROW()-COUNTA(A:A)+1,1),INDEX(B:B,ROW()-COUNTA(A:A)-COUNTA(B:B)+2,1))) 

2、然后用“筛选”-“去除重复值”,复制到D列即可,OK

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-26
假设名单放在A1:C3单元格中,D2中输入
=INDIRECT(TEXT(MIN(IF(COUNTIF(D$1:D1,A$1:C$3)=0,ROW($1:$3)*100+COLUMN(A:C),6553601)),"R0C00"),)&""
同时按下CTRL+SHIFT+ENTER输入数组公式,再用自动填充柄下拉。
不过如果名单很多的话,公式会很慢的。
第2个回答  2011-04-26
d1 = a1
d2 =IF(COUNTIF(D$1:D1,OFFSET($A$1,INT((ROW()-1)/3),MOD((ROW()-1),3))),"",OFFSET($A$1,INT((ROW()-1)/3),MOD((ROW()-1),3))) ,下拉。

复制d列,右键d1,选择性粘贴,数值。
对d列排序,不 扩展选区,选d列空单元格,删除,下方单元格上移。
第3个回答  2011-04-26
给你写个宏,右击工作表标签→查看代码,把下面的代码贴过去,按F5就可以了,会先问你要合并的范围,结果出现在D列,从D1开始

Sub HB_chiefzjh()
Dim mRng$, D, c
mRng = InputBox("请输入要合并的数据范围", "要求范围", "A1:C3")
Set D = CreateObject("scripting.dictionary")
For Each c In Range(mRng)
If Not D.exists(c.Value) Then D.Add c.Value, ""
Next c
Range("d1").Resize(UBound(D.keys) + 1, 1) = WorksheetFunction.Transpose(D.keys)
D = ""
End Sub
第4个回答  2011-04-26
用公式对多维数组操作是有点困难,可以有两个办法:
1、在数据表格不能变动的情况下,用VBA宏编程来实现。
2、相对简单的操作来实现,用“筛选”功能:
把所有的列复制拷贝到一列,然后用“筛选”-“去除重复值”,OK
相似回答