重复删除字符串列表

时间:2014-07-24 22:30:02

标签: mysql sql excel csv deduplication

我经常遇到这个问题:

  • 我有一个包含数据列表的csv文件
  • 我需要删除重复项(有时,找到重复的值)

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

我可以将数据导出到数据库并运行一些简单的SQL查询来完成所有这些,但随后数据库阻碍了大多数其他操作,我最终将数据导出回excel以进行单元级工作。

是否有一些工具可以使表格数据像excel一样简单,但是包含sql查询语言更强大的功能?

5 个答案:

答案 0 :(得分:1)

使用PowerShell

通过VBA

直接或效率较低

更新:我注意到这假设您的csv中有两列标题为FirstLast的标题 - 在下面的示例中,您应该清楚以下需要更新

 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

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

答案 1 :(得分:1)

两个选项:

选项1

  • 数据标签
  • 点击:删除重复项
  • 中选择要删除重复项的列

选项2

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

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

    您可以将此公式向下拖动到数据集的底部,然后过滤大于1的值。这些将显示重复值,您可以根据自己的选择删除它们。

答案 2 :(得分:0)

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

  • 转到数据标签
  • 选择过滤器 - > 高级过滤器
  • 选中仅限唯一记录

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

将数据移动到数据库执行此操作是过度的,除非您需要执行其他处理。

答案 3 :(得分:0)

要添加其他方法,可以使用数据透视表来实现此目的。

使用记录创建一个数据透视表,将您想要唯一记录的列的名称拖到"行标签"数据透视表的字段。

如果您喜欢键盘快捷键:

  1. 点击csv数据区域中的任意位置
  2. 键盘输入顺序: Alt + D Alt + P Alt < / KBD> + ˚F
  3. 将目标列的列名拖到行标签中。

答案 4 :(得分:0)

在我看来,没有比直接使用MySQL数据更好的了......而最接近MySQL的Excel单元格编辑就是使用免费的Heidisql

这是一个了不起的应用程序,我一直在使用它。这是MySQL的最佳选择,因为您可以充分利用查询和出色的MySQL数据库管理。比像phpmyadmin这样的替代品更加灵活和快速。要提高某些远程主机连接速度,请务必取消选中会话管理器中高级选项卡下的“获取完整表状态”。

如果您需要一种快速简便的方法将您的Excel数据导入MySQL,我编写了一个免费试用的程序,它将Excel数据传输到名为Excel2MySQL的MySQL中。