首页 > 解决方案 > 查找重复项并将它们减少为数组中的唯一行

问题描述

我有一个像下面这样的分隔数组:

BKR:::10-03:::2
BKR:::10-04:::1
BKR:::10-04:::4
BKR:::10-07:::7
BKR:::10-08:::6
BKR:::10-10:::2
BKR:::10-10:::2
BKR:::10-11:::3
CR:::10-04:::4
CR:::10-07:::2
CR:::10-07:::2
EL:::10-02:::4
EL:::10-03:::1
EL:::10-04:::2
EL:::10-07:::1
EL:::10-07:::2
EL:::10-07:::2
EL:::10-07:::2
EL:::10-07:::4
RL:::10-08:::6

我想减少第二列重复的行(例如,第 2 行和第 3 行有 BKR 10-4,所以,我想要一行 BKR 10-4,但加起来 1 + 4 并显示为 BKR::: 10-04:::5)

最后,数组应该是这样的:

BKR:::10-03:::2
BKR:::10-04:::5 
BKR:::10-07:::7
BKR:::10-08:::6
BKR:::10-10:::4 
BKR:::10-11:::3
CR:::10-04:::4
CR:::10-07:::4 
EL:::10-02:::4
EL:::10-03:::1
EL:::10-04:::2
EL:::10-07:::11 
RL:::10-08:::6

提前致谢。

更新 这是我在阅读@Marcucciboy2 在他的评论中分享的文章后尝试编写的代码。但是,我无法检索匹配键的特定索引,以便我可以操纵它们键的值。

For j = 0 To var2.Count - 1

                If dict.Exists(JSONObj2("fields")("worklog")("worklogs")(j + 1)("author")("displayName") + ":" + Right(Left(JSONObj2("fields")("worklog")("worklogs")(j + 1)("updated"), 10), 5)) Then

                    For k = 0 To dict.Count - 1
                        MsgBox dict.Keys(k) + " and its item is " + dict.Items(k)
                    Next k
                Else
                    dict.Add JSONObj2("fields")("worklog")("worklogs")(j + 1)("author")("displayName") + ":" + Right(Left(JSONObj2("fields")("worklog")("worklogs")(j + 1)("updated"), 10), 5), Left(JSONObj2("fields")("worklog")("worklogs")(j + 1)("timeSpent"), 1)
                End If
Next j

标签: excelvba

解决方案


推荐阅读