找到具有更常见子单元的单元格

时间:2018-02-18 09:55:54

标签: vba excel-vba excel

我还没有看到任何类似的问题。提前感谢您的帮助!

我有这两列:
最终产品 - 子组件
A - 1
B - 1
C - 1
D - 1
A - 2
C - 2
B - 3
C - 3
A - 4
C - 4
D - 4
A - 5
B - 5

最终产品A由子组件1,2,4和5制成 B由子组件1,3和5制成 C由子组件1,2和4制成 D由子组件1和4制成 我正在寻找的是vba或数据透视表中的算法,以这种方式优化最终产量:
1次重复4次 2次重复2次 3次重复2次 4次重复3次 5次重复2次。

首先应该制作A,因为它有更常见的组件。然后应该制作B,因为与A相比只缺少1个组件。然后是C,因为只有一个组件需要更换,最后一个D因为有与C相同的两个组件。
我知道这根本不容易......谢谢!

1 个答案:

答案 0 :(得分:0)

试试此代码

Sub Test()
    Dim d       As Object
    Dim v       As Variant
    Dim m       As Long
    Dim r       As Long
    Dim i       As Long

    m = Range("A" & Rows.Count).End(xlUp).Row
    v = Range("A1:B" & m).Value
    Set d = CreateObject("Scripting.Dictionary")

    For r = 1 To m
        If d.Exists(v(r, 1)) Then
            d(v(r, 1)) = d(v(r, 1)) & ", " & v(r, 2)
        Else
            d(v(r, 1)) = v(r, 2)
        End If
    Next r

    Range("E1").Resize(d.Count).Value = Application.Transpose(d.Keys)
    Range("F1").Resize(d.Count).Value = Application.Transpose(d.Items)
End Sub