excel - 隔离一列中的唯一值,然后将值从另一列复制到其他重复值?
问题描述
我正在努力弄清楚如何将它们组合在一起并且可以使用一些帮助。我正在处理一份非常大的报告,手动执行任何操作都不是一种选择。
在最简单的解释中,我需要找到列(Col J)中有重复值的实例,并查看包含重复值的第一行。然后从另一列 (Col F) 复制值并将其粘贴到包含 Col J 中重复项的每一行中。
为了说明,如果报告看起来像这样开始:
+-----------------+--------------+
| Col F | Col J |
+-----------------+--------------+
| Value 1 | 1111 |
| Value 2 | 1111 |
| Value 3 | 2222 |
| Value 4 | 3333 |
| Value 5 | 1111 |
| Value 6 | 3333 |
| Value 7 | 3333 |
| Value 8 | 4444 |
| Value 9 | 4444 |
+-----------------+--------------+
之后我需要它看起来像这样:
+-----------------+--------------+
| Col F | Col J |
+-----------------+--------------+
| Value 1 | 1111 |
| Value 1 | 1111 |
| Value 3 | 2222 |
| Value 4 | 3333 |
| Value 1 | 1111 |
| Value 4 | 3333 |
| Value 4 | 3333 |
| Value 8 | 4444 |
| Value 8 | 4444 |
+-----------------+--------------+
有什么建议吗?
解决方案
要就地执行,请使用字典:
Sub rplc()
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
With Worksheets("Sheet5") 'Change to your sheet name
Dim lstrow As Long
lstrow = .Cells(.Rows.Count, 10).End(xlUp).Row
Dim i As Long
For i = 2 To lstrow
If dict.exists(.Cells(i, 10).Value) Then
.Cells(i, 6).Value = dict(.Cells(i, 10).Value)
Else
dict.Add .Cells(i, 10).Value, .Cells(i, 6).Value
End If
Next i
End With
End Sub
推荐阅读
- java - 如何从 Anylogic 的代理群体中选择特定代理?
- node.js - 使用 Mongoose 方法增加字段
- typescript - 为打字稿配置 TypeORM 会忽略反射元数据
- laravel - Laravel 8 试图获取非对象错误的属性“类型”
- excel - 如何在Excel VBA中使用winsock控件
- python - 'post' 对象在 django 中不可迭代,它显示错误,但我没有得到代码上的问题
- python - Selenium Python 将文件上传到 Google Keep
- javascript - 您如何一次一项地创建这个树形数据结构?
- javascript - 类型'{类型:任何;必需:[真,字符串];独特的:真实的;匹配:(字符串|正则表达式)[];}' 不可分配给类型 'string'
- javascript - 根据用户输入引用类中的不同对象