Как да намеря всички възможни суми на две числа в списък в Excel?
Да предположим, че тук има списък с числа, сега можете ли да намерите всички възможни суми на две числа в този списък, както е показано на екранната снимка по-долу? В Excel няма вградена функция, която да реши тази задача. Сега ви представям VBA код, за да се справите с него.
Find all possible sums of two numbers in a list with VBA code
Find all possible combinations of two lists with List All Combinations
Find all possible sums of two numbers in a list with VBA code
Ако искате да намерите всички възможни суми на две числа в списък, можете да приложите кода VBA по-долу.
1. Натиснете Alt + F11 клавиши за показване на Microsoft Visual Basic for Applications прозорец.
2. кликване Insert > Module, копирайте и поставете кода по-долу в модула.
VBA: List all possible sums of two numbers in a list
Sub Combinations()
'UpdatebyExtendoffice20180628
Dim xRgArr
Dim xNum As Long
Dim I, J, K As Long
Dim xTemp As Double
Dim xRg As Range
Dim xRgCount As Long
Dim xDic As New Dictionary
On Error Resume Next
Set xRg = Application.InputBox("Select a list (one column):", "KuTools for Excel", Selection.Address, , , , , 8)
If (xRg Is Nothing) Or (xRg.Count = 1) Then Exit Sub
xRgCount = xRg.Count
K = 1
ReDim xRgArr(1 To xRgCount)
For Each xCell In xRg
xRgArr(K) = xCell.Value
K = K + 1
Next
K = 0
For I = 1 To xRgCount
For J = I + 1 To xRgCount
xTemp = xRgArr(I) + xRgArr(J)
If Not xDic.Exists(xTemp) Then
xDic.Add CDbl(xTemp), CStr(xTemp)
K = K + 1
End If
Next
Next
Range("C1").Resize(xDic.Count, 1) = Application.WorksheetFunction.Transpose(xDic.Keys)
End Sub
3. кликване Tools > References, в изскачащия диалогов прозорец поставете отметка Microsoft Scripting Runtime отметката.
4. кликване OK за да затворите диалоговия прозорец, след което натиснете F5 за да стартирате кода, изскача диалогов прозорец, който ви напомня да изберете списък, за да намерите възможните суми.
5. кликване OK, тогава всички възможни суми на две числа в списъка са изброени в колона C.
Tip:в кодовия низ, Range("C1").Resize(xDic.Count, 1), можете да промените C1 в друга клетка, тъй като трябва да поставите резултата.
Find all possible combinations of two lists with List All Combinations
Ако искате да намерите или изброите всички възможни комбинации от два списъка, както е показано на екранната снимка по-долу, List All Combinations полезност на Kutools for Excel може да ви направи услуга.
Kutools за Excel, с повече от 300 удобни функции, прави работата ви по-лесна. |
1. кликване Kutools > Insert > List All Combinations.
2. В List All Combinations щракнете върху бутона за избор, за да изберете първия списък, който ще комбинирате.
3. кликване Add за да добавите списъка в Combinations list раздел.
4. Повторете стъпки 2 и 3, за да добавите втория списък към Combinations list.
5. След това кликнете Ok за да изберете клетка, за да поставите резултата от комбинацията.
6. кликване OK. Всички възможни комбинации са изброени в клетки.