- Tham gia
- 13/6/06
- Bài viết
- 7,201
- Được thích
- 24,670
Trong Excel có cách nào để tìm ra 2 hay 3 số trong một danh sách gồm 30 số sao cho tổng của chúng là một giá trị xác định? Tôi đã thử dùng slover và goal seeker trong Excel nhưng không được.Để giải quyết yêu cầu này bạn có thể dùng macro sau:
Macro này kiểm tra tất cả các tổ hợp của hai hay ba ô trong miền A1:A30 và báo lại các tổ hợp nào có tổng bằng giá trị lưu trong ô B1. Kết quả được ghi ra theo cột kể từ ô hiện thời.
Mã:
Private Function A(Byval R As Integer) As String
A = Cells(R, 1).Address(False, False)
End Function
Sub Test()
Colums(3).Clear
R = 1
T = Cells(1, 2)
For X = 1 To 30
For Y = X + 1 To 30
If Cells(X, 1) + Cells(Y, 1) = T Then
Cells(R, 3) = A(X) + “+” +A(Y)
R = R +1
Else
For Z = Y+1 To 30
If Cells(X, 1) + Cells(Y, 1) + Cells(Z, 1) = T Then
Cells(r, 3) = A(X) + “+”+A(Y) + ”+” + A(Z)
R = R + 1
End If
Next Z
End If
Next Y
Next X
End Sub
Macro này kiểm tra tất cả các tổ hợp của hai hay ba ô trong miền A1:A30 và báo lại các tổ hợp nào có tổng bằng giá trị lưu trong ô B1. Kết quả được ghi ra theo cột kể từ ô hiện thời.