热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

从excel中的单元格中删除重复项

如何解决《从excel中的单元格中删除重复项》经验,为你挑选了1个好方法。

所以我有一个字符串列表,其中一些字符串包含重复项.

例如:

13-十六碳烯酸; 13-甲基-4-十五碳烯酸; 14-甲基-6-十五碳烯酸; 15-十六内酯; 3-十六碳烯酸; 4-十六碳烯酸; 13-十六碳烯酸; 13-甲基-4-十五碳烯酸; 14-甲基-6-十五碳烯酸; 15-十六内酯; 3-十六碳烯酸; 4-十六碳烯酸;

所以我在网上看到了一个宏并调整它以解决我的问题,如下所示:

Function stringOfUniques(inputString As String) As String
    Dim inArray() As String
    Dim xVal As Variant
    inArray = Split(inputString, ";")
    For Each xVal In inArray
        If InStr(stringOfUniques, Trim(xVal)) = 0 Then _
        stringOfUniques = stringOfUniques & Trim(xVal) & ","
    Next xVal

End Function

而对于我的一些字符串,它的工作非常出色,但是对于上面的示例,它将返回删除了重复项的字符串,但奇怪的是它将删除其中一个单词"3-Hexadecenoic acid"的两个副本.所以基本上

我应该得到什么:

13-十六碳烯酸; 13-甲基-4-十五碳烯酸; 14-甲基-6-十五碳烯酸; 15-十六内酯; 3-十六碳烯酸; 4-十六碳烯酸;

我真正得到的是:

13-十六碳烯酸; 13-甲基-4-十五碳烯酸; 14-甲基-6-十五碳烯酸; 15-十六内酯; 4-十六碳烯酸;

我的代码中有什么东西会导致这种情况发生吗?



1> David Zemens..:

可能有几种方法可以做到这一点,但Dictionary对象非常适合强制执行唯一性.

Function stringOfUniques(inputString As String, delimiter as String)
Dim xVal As Variant
Dim dict as Object
Set dict = CreateObject("Scripting.Dictionary")

For Each xVal In Split(inputString, delimiter)
    dict(xVal) = xVal
Next xVal

stringOfUniques = Join(dict.Keys(),",")
End Function

此函数也已被修改为接受变量分隔符参数,因此您将输入字符串分隔符:";"传递给函数,该函数将返回逗号分隔的字符串.

关于词典的注释:

字典存储键/值对.该必须是唯一的.

在这个例子中,我使用了对字典对象的简单赋值: dict(key) = key.当字典引用时,字典会自动添加或覆盖项目,因此这是一种强制执行唯一性的简单方法.

在其他情况下(即,您想要计算每个键的出现次数),您可能希望使用dict.Exists(key)in 进行测试,以便在value不覆盖键/值对的情况下进行修改,例如:

'Assigns a "count" value to the dictionary for each unique Key
For Each xVal In Split(inputString, delimiter)
    If dict.Exists(xVal) Then
        dict(xVal) = dict(xVal) + 1
    Else
        dict(xVal) = 1
    End If
Next xVal

'Read the "count" from each key:
For Each xVal in dict.Keys()
    MsgBox xVal & " appears " & dict(xVal) & " times"
Next


推荐阅读
author-avatar
广东木叶冷
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有