我正在尝试选择所有与数字相关联的行

时间:2019-11-11 14:08:19

标签: excel vba

我有13000多种产品的清单。我有一列称为产品编号的列,其中有一个数字代表每个产品及其所有变体。

并非每种产品都有一个以上的变体。

我想要一个新表,其中每个表具有多个变体。

例如:如果产品1下有14个选项,则我希望产品1有一行。如果产品2只有一个条目,则我根本不希望它在列表中。

这是可以在excel中完成的事情,还是我必须将这些数据传输到数据库中并使用SQL进行此操作?

image of sample data

1 个答案:

答案 0 :(得分:1)

根据我的评论,您可以查看Dictionaries。让我们想象一下以下数据:

enter image description here

运行以下代码:

Sub Test()

Dim dict1 As Object: Set dict1 = CreateObject("Scripting.Dictionary")
Dim dict2 As Object: Set dict2 = CreateObject("Scripting.Dictionary")
Dim arr As Variant
Dim lr As Long, x As Long

With Sheet1 'Change according to your sheets CodeName
    lr = .Cells(.Rows.Count, 1).End(xlUp).Row
    arr = .Range("A2:A" & lr)
    For x = LBound(arr) To UBound(arr)
        If dict1.Exists(arr(x, 1)) = True Then
            If dict2.Exists(arr(x, 1)) = False Then
                dict2.Add arr(x, 1), 1
            End If
        Else
            dict1.Add arr(x, 1), 1
        End If
    Next x
    .Range("C2").Resize(dict2.Count).Value = Application.Transpose(dict2.Keys)
End With

End Sub

将导致:

enter image description here