我有一个包含 5,000 行和 20 列的 Excel 或 CSV 文件。我想连接柱子6和第 8 栏,查找重复项,然后将其中一个重复项复制到 WorkSheet2 中。
例如:
工作表1
Column6 Column7 Column 8
275s ABC 123
333s ABC 111
275s ZZZ 123
275s DSD 123
333s ??? 111
275s asd 999
连接第 6 列和第 8 列的结果将导致第 1、3 和 4 行重复。
第 2 行和第 5 行也是重复的。
然后 worksheet2 应该是:
Column6 Column7 Column 8
275s ABC 123
333s ABC 111
275s asd 999
答案1
VBA 可能不是必需的。辅助列在这里是你的好朋友。尝试以下公式
- 假设
Column6
是E
和Column 8
是,并且下面的辅助列从/G
开始Column9
H
- 如果你的数据在 a 中
DataTable
,则可以使用另一种语法选项
R1C1
=Concatenate( E2, F2, G2 )
<--H
=Concatenate( E2, G2 )
<--I
=CountIfs( I:I, I2 )
<--J
=Row()
<--K
=IF( J2=1, H1, INDEX(H:H, AGGREGATE( 15,6,K:K/--(I:I=I2), 1 ) ) )
<--L
ColumnL
将返回 Column 中找到的第一个行值,H
作为 Column 中唯一的连接值I
。如果您的数据集非常大,该Index( Aggregate() )
方法可能会溢出并失败。但假设它有效,您可以Copy-Paste Values Only
从 ColumnL
进入新的工作表并删除重复项(Alt
+ A
+M
调出对话框)。如果您在 Column 中分隔连接H
,它将有助于将值拆分回新工作表中的列中。