excel - 如何批量替换Excel中的重复项?
问题描述
如何批量替换现有数据中的重复文本字符串?我有一个 Excel 文件,其中包含 order#、PersonName 和 ID,一些(不同的)order# 共享一组相同的 PersonName 和 ID,必须用其他唯一的 PersonName 和 ID 替换(对于相同的订单也可以#具有相同的 PersonName 和 ID,但不同的 order# 必须具有不同的 PersonName 和 ID)。我有另一个现有数据表,其中包含用于此替换目的的 PersonName 和 ID 列表,但是如何编写一个公式以使用此现有数据表自动替换不同 order# 上的所有重复的 PersonName 和 ID?不应删除重复项,而应仅将其替换为唯一的字符串值。
样本数据(所有数据都是不真实的):
空缺名称和 ID 示例:
结果将用第一个可用的空名称和 ID 替换重复项(相同的订单号被分配相同的名称和 ID 集):
我真的是这方面的新手,花了很多时间寻找可能类似的问题并试图找出解决方案,但无法提出解决方案。:(
解决方案
试试下面的 vba 代码。A 列 = Order#,B 列 = PersonName,D 列 = ID,空缺名称 = E 列,F 列 = 空 ID。
Sub SortData()
Dim Arr01 As Variant
Dim Arr02 As Variant
Dim i01 As Integer 'Temp int number
Dim i02 As Integer 'Temp int number
Dim i03 As Integer 'Temp int number
Dim i04 As Integer 'Temp int number
'Array of the "Order#, PersonName, ID"
Arr01 = Range("A2", Range("C2").End(xlDown))
'Array of the "Vacant name, Vacant ID"
Arr02 = Range("E2", Range("F2").End(xlDown))
i03 = 1
For i01 = 2 To UBound(Arr01, 1)
For i02 = 1 To UBound(Arr01, 1)
If i02 = i01 Then
i02 = 1
GoTo line1
End If
If Arr01(i02, 2) = Arr01(i01, 2) And Arr01(i02, 1) <> Arr01(i01, 1) Then
Arr01(i01, 2) = Arr02(i03, 1)
Arr01(i01, 3) = Arr02(i03, 2)
i03 = 1 + i03
End If
For i04 = i01 + 1 To UBound(Arr01, 1)
If Arr01(i01, 1) = Arr01(i04, 1) Then
Arr01(i04, 2) = Arr02(i01, 1)
Arr01(i04, 3) = Arr02(i01, 2)
End If
Next i04
If i02 = i01 Then
i02 = 1
GoTo line1
End If
Next i02
line1:
Next i01
For i01 = i02 To UBound(Arr01, 1)
For i02 = 1 To UBound(Arr01, 1)
If Arr01(i01, 1) = Arr01(i02, 1) And Arr01(i01, 2) = Arr01(i02, 2) Then
Arr01(i01, 3) = Arr01(i02, 3)
End If
Next i02
Next i01
Range("A2", Range("C2").End(xlDown)) = Arr01
End Sub
推荐阅读
- filepond - Filepond - 不支持的图像类型
- r - 为 R 中的特定 x 值拟合 y 的最大值和最小值的线性回归线
- android - 如何在 affolstad 材质对话框中传递自定义列表以进行多选?
- elasticsearch - 复合聚合中的桶排序?
- kotlin - 我可以设置 IDEA 以便 ';' 一定要使用否则不会编译?
- reactjs - 如何在避免 TypeScript 错误 7053 的同时使用变量动态调用类方法?
- database - Firebase 实时数据库电话安全规则
- javascript - 为获取请求返回未定义
- amazon-web-services - 从 VPN 访问的受保护服务器下载 AWS EC2 中的文件
- python - 如何在pytorch中使用索引张量索引中间维度?