将重复记录的行数(基于2列或更多列)存储到数组中

时间:2014-07-22 17:02:49

标签: excel-vba vba excel

所以我有一个包含lastName,firstName,Address和PolicyID(以及一堆其他列)的记录集。

我想知道是否有不止一个“蒂姆·琼斯”不仅仅是一个蒂姆和/或一个以上姓琼的人。我不想在工作表中创建其他列,也不想使用条件格式或让用户在公式栏中使用公式。除了执行宏之外,目标是为用户提供免费操作。

我正在尝试运行一个循环来存储记录的行号,其中第一个+姓氏出现在记录集的其他位置。见表:

 Legend: M = Matches, X = does not match

    | First | Last | Address | PolicyID | Description                                      |
    |-------|------|---------|-----------|-------------------------------------------------|
    | M     | M    | M       | M         | Duplicate Row, Delete duplicates                |
    | M     | M    | M       | X         | Same person, multiple Policies, mark rows yellow|
    | M     | M    | X       | M         | Same person, multiple addresses, mark rows blue |
    | M     | M    | X       | X         | Not necessarily the same person, mark grey      |

我想对较小的记录子集运行额外的检查,其中匹配的名字和姓氏将有助于提高效率。

描述栏详细说明了我想要对数据初始化做什么格式化。最终,我会根据他们遇到的标准来移动/复制/删除行。

1 个答案:

答案 0 :(得分:0)

我相信在不使用VBA的情况下,您可以更轻松地完成此操作。将此公式放在Excel中第3行的“描述”列中(例如,单元格E3),然后将其复制下来。如果仍需要行来更改颜色,则可以根据描述结果设置条件格式。

=IF(COUNTIFS(A:A,A3,B:B,B3,C:C,C3,D:D,D3)>1,"Duplicate Row",IF(COUNTIFS(A:A,A3,B:B,B3,C:C,C3)>1,"Same person, multiple Policies",IF(COUNTIFS(A:A,A3,B:B,B3,D:D,D3)>1,"Same person, multiple addresses",IF(COUNTIFS(A:A,A3,B:B,B3)>1,"Not necessarily the same person",""))))