去重复一个string列表

我经常遇到这个问题:

  • 我有一个csv文件,其中包含一个数据列表
  • 我需要删除重复(或有时,find重复的值)

csv很容易引入excel ,但是我找不到(或者永远不记得)find/删除/计数重复值的好方法。

我可以将数据导出到数据库,然后运行一些简单的SQL查询来完成所有这些工作,但是随后大部分其他操作都会阻止数据库的运行,并且将数据导出到excel来完成单元级别的工作。

是不是有一些工具可以使表格数据像Excel一样简单,但包括一个SQL查询语言更强大的function?

使用PowerShell

直接或通过VBA效率较低

更新:我注意到这个假设你在你的csv有两列与FirstLast标题 – 这应该清楚在下面的例子中,你需要更新它

VBA

  Sub Better() X = Shell("powershell.exe Import-Csv C:\temp\test.csv | sort First,Last -unique | Export-Csv C:\temp\test2.csv -NoTypeInformation", 1) End Sub 

电源shell

 Import-Csv C:\temp\test.csv | sort First,Last -unique | Export-Csv C:\temp\test2.csv -NoTypeInformation 

两个选项:

选项1

  • 数据选项卡
  • 点击:删除重复
  • select你想删除重复的列

选项2

  • 在Excel中使用以下公式: =COUNTIF($A$2:$A$100,A2)

    此公式假设要检查的值在列A中,从第2行开始,并延伸到第100行。根据需要进行调整。

    您可以将此公式拖动到数据集的底部,然后筛选大于1的值。这些值将显示重复值,您可以根据需要将其删除。

在Excel中,您可以执行以下操作:

  • 转到数据选项卡
  • selectfilter – > 高级filter
  • 检查唯一logging

然后,您可以通过突出显示,复制和粘贴将该列表复制到其他位置。

将数据移动到数据库来执行此操作是矫枉过正的,除非您需要完成额外的处理。

在我看来,没有什么比直接使用MySQL数据更好…而最接近于MySQL的Excel单元格编辑是使用免费的Heidisql 。

这是一个惊人的应用程序,我一直在使用它。 这对MySQL来说是最好的,因为你可以充分利用查询和优秀的MySQL数据库pipe理。 比phpmyadmin这样的select更加灵活和快速。 要改善一些远程主机的连接速度,只要确保取消选中会话pipe理器高级选项卡下的“获取全表状态”。

如果你需要一个快速简便的方法把你的Excel数据导入到MySQL中,我写了一个可以自由运行的程序,将Excel数据传送到名为Excel2MySQL的 MySQL中。

要添加另一个方法,您可以使用Pivot表来达到此目的。

使用该logging创build数据透视表,将需要唯一logging的列的名称拖到数据透视表的“行标签”字段中。

如果你喜欢键盘快捷键:

  1. 点击csv数据区域的任何地方
  2. 键盘input顺序: Alt + DAlt + PAlt + F
  3. 将目标列的列名称拖到行标签中。