コレクションを指定して、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
前もって感謝します。