第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