Excel 自动创建没有重复项的列表
我有下面的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
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具有独特的功能