在SQL Server中会做类似
SELECT Distinct(MyColumn) FROM MyTable
#1 楼
比您想象的要简单:单击“数据”功能区菜单
在“排序和筛选”部分中选择“高级”按钮
在对话框中填充,复制结果到另一个位置并确保您仅勾选唯一记录
评论
对于我们中仍然生活得一尘不染的人们,它是Data-> Filter-> Advanced。
– J.T.污垢
09年10月1日在16:39
+1如果要保持原始数据完整,此方法优于“删除重复项”。
– Excellll
2012年7月13日,0:58
如果将数据复制到另一个工作表,则必须从要复制到的工作表启动“高级”对话框,否则会出现“您只能将已过滤的数据复制到活动工作表”错误。
–戴夫·齐奇(Dave Zych)
15年1月23日在17:08
当源范围值更改时,这不会更新。有什么办法可以使其动态吗?
–休斯
16年4月27日在21:24
#2 楼
Excel 2007和2010:使用“数据”标题下的
Remove Duplicates
菜单选项。Excel 2003:
简单的方法:
制作确保您的数据具有标题
数据->过滤器->高级过滤器
仅检查唯一记录
选择复制到另一个位置
单击确定
硬方法:
使用以下代码编写宏:
'Remove duplicates from sorted list
Sub getDistinct()
Do While ActiveCell.Value <> ""
If ActiveCell.Value = ActiveCell.Offset(1, 0).Value Then
ActiveCell.Select
Selection.Delete Shift:=xlUp
Else
ActiveCell.Offset(1, 0).Activate
End If
Loop
End Sub
您可以找到自己的清单。您可能需要先将列表复制到另一张纸上。
评论
谢谢!这证明Stack Exchange比其他任何技术信息来源都更好。 Google的所有其他结果都是无用的,并且没有排名。我也想知道专家交易如何生存
–伊朗棉兰
2011-3-23在2:53
#3 楼
或(一种简单的粗略方法):在B1中,=IF(COUNTIF(A:A1,A1)=1,A1,"")
并抄下来。它只是复制每个值的第一次出现(在出现该值的行中)。
评论
与所有Excel公式一样,您可能需要根据系统的区域设置使用分号(;)代替逗号(,)。
–斯科特
17年9月20日在23:12
#4 楼
我使用两种主要方法来获取不同的值-第一种是Nathan DeWitt建议的宝贵的Remove Duplicates
工具。Remove Duplicates
的缺点是丢失数据。尽管有Ctrl + z的功能,但由于各种原因,您可能不希望执行此操作-例如,您可能当前选择的过滤器使删除重复项以获取不同的值列表非常麻烦。另一种方法,不是上面提到的是使用数据透视表。
假设这是您的表,并且您想要获取不同的平台列表。
插入一个
Pivot Table
并将该表作为数据源。 现在选择“平台”列作为您的
Row Labels
。Voila!不同值的列表。
如果要整理一下,可以关闭
Field Headers
并将Grand Totals
设置为Off for Rows and Columns
。评论
数据透视表技术很棒!谢谢你
– Thomas L Holaday
2014年4月17日在13:53
#5 楼
或者,您可以在宏中包含过滤器选项 Columns("A:A").AdvancedFilter Action:=xlFilterInPlace, Unique:=True
#6 楼
对我来说,最简单的排序方式是使用“过滤器”选项。第一步是使用条件格式->突出显示单元格规则->重复值来查找重复值。
然后单击具有重复项的列上的箭头(在本例中为“平台”)->按颜色过滤(单元格颜色或字体颜色)。
评论
此处的结果是不同的,因为所有重复项都被删除了。例如。值[a,a,b]的列应减少为[a,b],而不是[b]。
–Hugo Ideler
18年2月13日在10:13
@HugoIdeler,“所有重复项均已删除”,正是我所需要的!
–内森·高斯(Nathan Goings)
20-2-19在20:48
评论
相关:stackoverflow.com/questions/13307927/…从2018年秋季开始,现在可以使用UNIQUE()函数轻松完成此操作(至少在使用Office 365的情况下)。 stackoverflow.com/a/63073902/12418842