Excel 自动创建没有重复项的列表

Excel 自动创建没有重复项的列表,excel,Excel,我有下面的Excel电子表格 A B 1 ID Unique ID 2 27152 27152 3 27152 29297 4 27152 28802 5 29297 6 29297 7 28802 8 28802 9 28

我有下面的Excel电子表格

           A            B
1         ID           Unique ID
2         27152        27152             
3         27152        29297
4         27152        28802
5         29297
6         29297
7         28802
8         28802
9         28802
10        28802
列A中可以找到不同的产品ID。 它们可以在A列中出现多次

在B列中,我想列出一个没有重复项的列表 它显示了列A中列表中的唯一ID

我知道我可以通过使用“高级过滤器”或选项卡数据工具上的“删除重复项”功能来实现这一点

但是,我更愿意在不使用这些选项的情况下在列B中创建列表,因为列A中的数据库将定期更新;因此,如果通过列B中的公式自动删除多个值会更好

我试图用聚合函数解决它,但无法使它工作

B2 =AGGREGATE(14,6,A$2:A$10,1)
B3 =AGGREGATE(14,6,A$2:A$10,2)
B4 =AGGREGATE(14,6,A$2:A$10,3)

因为它应该是用户友好且易于处理的,所以我更喜欢没有任何数组公式或需要插入额外列的解决方案。

您可以使用
COUNTIF(range;value)
要检查值出现多少次,然后如果
COUNTIF

返回1,则可以复制值。如果ID的顺序不重要,则可以使用
COUNTIF(范围;值)
检查值出现多少次,然后如果
COUNTIF

返回1,则可以复制值,这是你能做的

在第一行输入公式

C2 =MIN(B2:B10)
其中
B2:B10
是您的ID范围

在下一行中,使用此公式

=1/AGGREGATE(14,6,1/(($B$2:$B$10>C2)*$B$2:$B$10),1) 
其中,
C2
是此处的前一个单元格(上面1行)

向下拖动此公式,直到开始出现
#NUM
错误。如果要消除
#NUM
错误,请将公式包装在
IFERROR()中。


我看到您的评论,您不想使用数组或帮助器列。但是Excel并不是魔法。。。。。也可能是这样。:)

如果ID的顺序无关紧要,下面是您可以做的

在第一行输入公式

C2 =MIN(B2:B10)
其中
B2:B10
是您的ID范围

在下一行中,使用此公式

=1/AGGREGATE(14,6,1/(($B$2:$B$10>C2)*$B$2:$B$10),1) 
其中,
C2
是此处的前一个单元格(上面1行)

向下拖动此公式,直到开始出现
#NUM
错误。如果要消除
#NUM
错误,请将公式包装在
IFERROR()中。

我看到您的评论,您不想使用数组或帮助器列。但是Excel并不是魔法。。。。。也可能是这样。:)

您可以使用宏:

Option Explicit

Sub FilterUnique()
Dim lastrow As Long

lastrow = Cells(Rows.Count, "A").End(xlUp).Row

    ActiveSheet.Range("A2:A" & lastrow).AdvancedFilter _
    Action:=xlFilterCopy, _
    CopyToRange:=ActiveSheet.Range("B2"), _
    Unique:=True

End Sub
正如其他人所说,如果不添加列或使用筛选器、宏或数组,则无法执行此操作。您可以使用宏:

Option Explicit

Sub FilterUnique()
Dim lastrow As Long

lastrow = Cells(Rows.Count, "A").End(xlUp).Row

    ActiveSheet.Range("A2:A" & lastrow).AdvancedFilter _
    Action:=xlFilterCopy, _
    CopyToRange:=ActiveSheet.Range("B2"), _
    Unique:=True

End Sub

正如其他人所说,如果不添加列或使用筛选器、宏或数组,就不可能做到这一点。可以说,数据透视表将“自动”生成这样的列表,但如果将条目添加到ColumnA中,则需要刷新PT(加上可能一次性更改标签、排序和条件格式以“隐藏”
(空白)
,如果需要)

可以说,数据透视表会“自动”生成这样一个列表,但如果将条目添加到ColumnA,则需要刷新PT(如果需要,还可能会一次性更改标签、排序和条件格式以“隐藏”
(空白)

你好,NikNik,好主意,但对于这个,我需要一个额外的列来检查每个值。我的想法是让一个公式一步完成,而不需要数组或附加列。那么:=IF(COUNTIF(A$2:A$10;A$2)=1;A$2;“”)呢。你说“没有数组”是什么意思?你好NikNik,好主意,但我需要一个额外的列来检查每个值。我的想法是让一个公式一步完成,而不需要数组或附加列。那么:=IF(COUNTIF(A$2:A$10;A$2)=1;A$2;“”)呢。“无数组”是什么意思?在没有数组或帮助程序公式的Excel中不可能。Google Sheets有一个独特的功能,如果没有数组或助手公式,在Excel中是不可能的。Google Sheets具有独特的功能