下面是一个表格,其中模拟了我所拥有的数据以及我需要在最后一列中返回的数据(AJ).我尝试做的是查看列M中具有相同值的所有行,然后比较下面提到的其余列中的值。如果所有值都相同,则返回same。返回名称色谱柱的(s)(s)如果有什么不同。我试过为每个开始,但有两个问题1)它只与前一行比较,而不是M列中具有相同值的行集,2)我只能想出如何在差异上识别,而不是多重。任何帮助都很感激
| M列|AE列(名称)|AF列(日期)|AG柱(活性)|AH列(部门)|Col AJ(我想要返回的内容)|
| - ------|- ------|- ------|- ------|- ------|- ------|
| 阿1234|活动1|二〇二二年一月二十日|1个|市场营销|相同|
| 阿1234|活动1|二〇二二年一月二十日|1个|市场营销|相同|
| 阿1234|活动1|二〇二二年一月二十日|1个|市场营销|相同|
| 阿四三二一|活动2|二〇二二年二月二十日|1个|市场营销|日期|
| 阿四三二一|活动2|二○二二年三月二十日|1个|市场营销|日期|
| 阿四三二一|活动2|二〇二二年二月二十日|1个|市场营销|日期|
| 阿四三二一|活动2|二〇二二年二月二十日|1个|市场营销|日期|
| 阿二二二二|活动3|二〇二二年四月二十日|1个|市场营销|姓名,有效|
| 阿二二二二|活动3|二〇二二年四月二十日|第二章|市场营销|姓名,有效|
| 阿二二二二|活动33|二〇二二年四月二十日|1个|市场营销|姓名,有效|
| 阿二二二二|活动3|二〇二二年四月二十日|1个|市场营销|姓名,有效|
'''
Sub CheckSame()
Dim i As Integer
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 3 To lastRow
If Cells(i, 13) = Cells(i - 1, 13) Then
If Cells(i, 31) = Cells(i - 1, 31) And Cells(i, 32) = Cells(i - 1, 32) And Cells(i, 33) = Cells(i - 1, 33) And Cells(i, 34) = Cells(i - 1, 34) Then
Cells(i, 36) = "Same"
ElseIf Cells(i, 32) = Cells(i - 1, 32) And Cells(i, 33) = Cells(i - 1, 33) And Cells(i, 34) = Cells(i - 1, 34) Then
Cells(i, 36) = "Name"
ElseIf Cells(i, 31) = Cells(i - 1, 31) And Cells(i, 33) = Cells(i - 1, 33) And Cells(i, 34) = Cells(i - 1, 34) Then
Cells(i, 36) = "Date"
ElseIf Cells(i, 31) = Cells(i - 1, 31) And Cells(i, 32) = Cells(i - 1, 32) And Cells(i, 34) = Cells(i - 1, 34) Then
Cells(i, 36) = "Active"
ElseIf Cells(i, 31) = Cells(i - 1, 31) And Cells(i, 32) = Cells(i - 1, 32) And Cells(i, 33) = Cells(i - 1, 33) Then
Cells(i, 36) = "Dept"
End If
End If
Next i
End Sub
'''
2条答案
按热度按时间ct3nt3jp1#
原则上使用4个字典(每列1个)来计算一个值在一组记录中出现的次数。
fjaof16o2#
标记唯一值