我正在处理一个Excel问题,我认为这将基于重复项。基本上,如果找到重复的值(“ A:A”),则以某种方式将它们分组为变量,并且仅当(“ B:B”)中存在至少1个负数时才填充匹配的行。同样的情况也适用于非重复项,只有在B列中存在负数时,它们才应填充,但我认为可以通过公式轻松完成
我尝试了一些操作,但是主要问题是将重复项标识为自己的变量。当我创建一个功能完全不突出显示的重复项的函数时,这将适用于所有重复项,而不管其单独的文本如何。如果加起来,这会简单得多,但事实并非如此。下面是我要去的例子
Problem:
IDs Trades
US9128 -500
US9128 750
EU9133 900
GD2104 -300
GD2104 150
FG5454 200
Expected:
IDs Trades
US9128 -500
US9128 750
GD2104 -300
GD2104 150
打开其他途径解决此问题
答案 0 :(得分:1)
假设您的数据在列(A:B)中,从表格行(1)开始 试试这个宏
Option Explicit
Sub test_me()
Dim obj As Object
Dim x, k%
Dim R%, C%
R = 2: C = 4
Dim lr%: lr = Cells(Rows.Count, 1).End(3).Row
Dim i%, j%
Range("d2").CurrentRegion.ClearContents
Set obj = CreateObject("System.Collections.SortedList")
For i = 2 To lr
obj.Add Cells(i, 2).Value, Cells(i, 1).Value
For j = i + 1 To lr
If Cells(j, 1) = Cells(i, 1) Then
obj.Add Cells(j, 2).Value, Cells(j, 1).Value
End If
Next j
x = obj.Count
If x = 1 Then GoTo NEXT_I
With Cells(R, C)
.Value = obj.GetByIndex(0): .Offset(, 1) = obj.Getkey(0)
.Offset(1) = obj.GetByIndex(x - 1): .Offset(1, 1) = obj.Getkey(x - 1)
End With
R = R + 2
NEXT_I:
obj.Clear
Next i
Set obj = Nothing
End Sub