栏目排列

问题描述 投票:0回答:1

我目前正在尝试用VBA排列一列,其中包含不同的标识符,每个标识符都有随机冗余行==>示例ID1在第3、5和100行中是冗余的,ID2不是冗余的并且仅在第4行中,ID3是冗余的在第 2、7、8、9、10 和 98 行中,ID4 在第 6、11、12、20、39...等行中是多余的 我还需要识别每个标识符的行索引,这意味着 ID1 ==> 行索引为 3,5 和 100;对于 ID2 ==> 行索引为 4 ...等 然后我想将它们复制到新工作表“排列”==>第一行是“标题”,然后ID1的行==>第二行是ID1的第一次出现,第二行是第二次出现......等等 你能帮忙吗?

我尝试按范围排列,但它不尊重其他列,并且我无法获取行索引和每个ID的冗余数

excel vba redundancy
1个回答
0
投票

如果您需要结果并且不喜欢使用 VBA,请使用此宏:

Sub Arrange()
  Dim r, addr$
  addr = Sheet1.Name & "!$A$1:" & Sheet1.[A1].End(xlDown).Address
  r = Application.Evaluate("=LET(a," & addr & ",u,UNIQUE(a),HSTACK(u,XMATCH(u,a)))")
  Sheet2.[A1].Resize(UBound(r, 1), 2) = r
End Sub

预计工作表中的“A1”及下方的源范围在 VBA 中显示为 Sheet1。结果将“A1”放入工作表中,在 VBA 中显示为 Sheet2。

© www.soinside.com 2019 - 2024. All rights reserved.