我想知道如何,或者如果可能的话,在给定集合的情况下使用 VBA 创建一个数据透视表。或者改进我的代码的当前算法。
目前,我收藏了大约 28000 件商品。每个项目都有一个唯一的 ID、项目编号和价格。我想生成一个具有唯一 ID、价格最低的部件号的新系列。所以我在想生成数据透视表将聚合所有项目编号,并找到最低价格。然后基于该表,我可以生成一个新集合,还是应该改进我拥有的算法?
例如:
item[unique_id]: item number, price
Item[1]: 11111, 10
Item[2]: 22222, 2
Item[3]: 11111, 3
Item[4]: 11111, 15
Item[5]: 22222, 1
Item[6]: 33333, 2
然后结果集合将类似于:
Item[3]: 11111, 3
Item[5]: 22222, 1
Item[6]: 33333, 2
目前,我有执行以下操作来创建新集合的代码
For Each Item in OriginalCollection
' Temp item holder for comparison
Set minItem = item
i = 1
Do While (i <= OriginalCollection.Count)
if OriginalCollection(i).itemNumber = minItem.itemNumber And OriginalCollection(i).price < minItem.price Then
Set minItem = OriginalCollection(i)
' reduce the size of collection, so fewer iterations
OriginalCollection.Remove (i)
OriginalCollection.Remove (minItem.Id)
End if
i = i + 1
Loop
If Not InCollection (MinCollection, minItem.Id) Then
MinCollection.Add minItem, minItem.Id
End If
Next item
先感谢您。