Excel中用什么公式把A列中数据(有重复值)在B列中显示(唯一值)

如A列中有:a,c,c,d,b,b,a,a,d,e,要求在B列中显示:a,c,d,b,e,我A列中后面还会加入其它数据(有重复值)要求B列中也自动加入数据(唯一值)。
a a
c c
c d
d b
b e
b
a
a
d
e

B2=INDEX($A$2:$A$100,MATCH(,COUNTIF($B$1:B1,$A$2:$A$100),))&""

数组公式

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-23

在黄色单元格输入公式=IF(SUM(1/COUNTIF($B$6:$B$21,$B$6:$B$21))>=ROW(B1),INDEX($B$6:$B$21,SMALL(IF(ROW($B$6:$B$21)-5=MATCH($B$6:$B$21,$B$6:$B$21,0),ROW($B$6:$B$21)-5,"0"),ROW(B1))),"end")         根据你自己的需要更改引用区域。

但此公式不能自动生成b列新输入的数据。所以最好用填充笔填充一下,直到有“end”出现。办法虽然笨,也还能用。希望能帮到你

第2个回答  2012-10-23
点插入--名称--定义--输入AA,在引用位置输入=OFFSET(Sheet1!$A$1,1,,COUNTA(Sheet1!$A:$A)-1,)--确定。然后在B2输入=IF(AND(COUNTIF(B$1:B1,AA)),"",INDEX(AA,MATCH(,COUNTIF(B$1:B1,AA),)))按CTRL+SHIFT+回车结束公式,再向下填充公式。
第3个回答  2012-10-23
你的要求只能用VBA实现,不管A列有多少行,先对A列排序,然后逐一将A列内容连接,有重复的不要,直到完成,结果放在B1起的单元格中。
请建立一个宏,编辑并复制下列代码,运行即可:

Sub Macro1()
Dim i As Long
Dim j As Long
Dim lastrow As Long
j = 1
lastrow = Worksheets("Sheet1").UsedRange.SpecialCells(xlCellTypeLastCell).Row
Columns("A:A").Select
Selection.Sort Key1:=Range("A1")
Cells(j, 2) = Cells(1, 1)
For i = 1 To lastrow
If Cells(i, 1) <> Cells(i + 1, 1) And Cells(i + 1, 1) <> "" Then
j = j + 1
Cells(j, 2) = Cells(i + 1, 1)
End If
Next
End Sub

如结果符合你要求,请采纳并加分。追问

这个很好,不过不是我要的,我这个是不能给A列排序的,我想做个库存的表,A列中要不断加入新的或老的数据,B列自动显示所有库存总类,A列和B列会在Sheet1和Sheet2两个表格中,最好是能用函数公式。谢谢!

本回答被网友采纳
第4个回答  2012-10-23
如果一定要用公式
=IF(ROW()<=ROUND(SUM(1/COUNTIF($A$1:$A$10,$A$1:$A$10)),0),INDEX($A$1:$A$10,SMALL(IF(MATCH($A$1:$A$10,$A$1:$A$10,0)=ROW($A$1:$A$10),ROW($A$1:$A$10)),ROW(B1))),"")
按ctrl+shift+enter结束,下拉即可,如果下拉后数值不对,按一下F9
A1:A10的范围根据你的实际情况更改
相似回答