Найти все возможные комбинации в Excel - PullRequest
0 голосов
/ 09 января 2019

У меня есть данные Excel, как это

X    Y

a    1
b    2 
c    3

Я хочу сделать все возможные комбинации в столбце X и получить сумму из столбца Y

a+b    3
a+c    4
a+b+c  6
b+c    5

1 Ответ

0 голосов
/ 10 января 2019

Этот пример производит вывод в непосредственном окне. Отрегулируйте его в соответствии с вашими потребностями.

Option Explicit

Public Sub Combine()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Sheet1")

    Dim LastRow As Long
    LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    Dim iRow As Long, jRow As Long, kRow As Long
    For iRow = 2 To LastRow
        For jRow = iRow + 1 To LastRow

            'output 2-combos
            Debug.Print ws.Cells(iRow, "A").Value & "+" & ws.Cells(jRow, "A").Value, ws.Cells(iRow, "B").Value + ws.Cells(jRow, "B").Value

            For kRow = jRow + 1 To LastRow
                'output 3-combos
                Debug.Print ws.Cells(iRow, "A").Value & "+" & ws.Cells(jRow, "A").Value & "+" & ws.Cells(kRow, "A").Value, ws.Cells(iRow, "B").Value + ws.Cells(jRow, "B").Value + ws.Cells(kRow, "B").Value
            Next kRow
        Next jRow
    Next iRow
End Sub

Так что это ...
enter image description here

выдаст…

a+b            3 
a+b+c          6 
a+b+d          7 
a+c            4 
a+c+d          8 
a+d            5 
b+c            5 
b+c+d          9 
b+d            6 
c+d            7 
...