Tạo Function tra kết quả so sánh 2 mảng

Liên hệ QC

Miccpro

Thành viên thường trực
Tham gia
9/12/10
Bài viết
236
Được thích
10
Xin chào các anh chị, giả sử em có 2 mảng cần so sánh. Mảng1 có địa chỉ là "A1:C1000", Mảng2 có địa chỉ là "E1:G1000". Giờ em muốn tạo hàm hoặc thủ tục (Ưu tiên hàm) trả về kết quả TRUE nếu 2 mảng giống nhau, FALSE nếu 2 mảng khác nhau.
Mong các anh chị giúp đỡ, em xin cảm ơn!
 
Xin chào các anh chị, giả sử em có 2 mảng cần so sánh. Mảng1 có địa chỉ là "A1:C1000", Mảng2 có địa chỉ là "E1:G1000". Giờ em muốn tạo hàm hoặc thủ tục (Ưu tiên hàm) trả về kết quả TRUE nếu 2 mảng giống nhau, FALSE nếu 2 mảng khác nhau.
Mong các anh chị giúp đỡ, em xin cảm ơn!
Định nghĩa thế nào là "Giống nhau":

1. A1 phải bằng E1, A2 phải bằng E2?

2. Không cần giống vị trí, chỉ cần A1 có trong E1:G1000 ,và E1 có trong A1:C1000?

3. ...
 
Upvote 0
Định nghĩa thế nào là "Giống nhau":

1. A1 phải bằng E1, A2 phải bằng E2?

2. Không cần giống vị trí, chỉ cần A1 có trong E1:G1000 ,và E1 có trong A1:C1000?

3. ...
Vâng ạ, điều kiện là 2 mảng (Range) có kích thước giống nhau. Nếu khác cũng trả về FALSE
 
Upvote 0
Vâng ạ, điều kiện là 2 mảng (Range) có kích thước giống nhau. Nếu khác cũng trả về FALSE
Thử:
PHP:
Public Function SoSanh2Mang(rng1 As Range, rng2 As Range) As Boolean

If rng2.Rows.Count <> rng1.Rows.Count Then Exit Function
If rng2.Columns.Count <> rng1.Columns.Count Then Exit Function
SoSanh2Mang = True

End Function
 
Upvote 0
Thử:
PHP:
Public Function SoSanh2Mang(rng1 As Range, rng2 As Range) As Boolean

If rng2.Rows.Count <> rng1.Rows.Count Then Exit Function
If rng2.Columns.Count <> rng1.Columns.Count Then Exit Function
SoSanh2Mang = True

End Function
Cảm ơn anh đã quan tâm. Kết quả em mong muốn là:
1. Điều kiện cần: Nếu 2 mảng có kích thước khác nhau, Kết quả False. Exit Function
2. Nếu 2 mảng có kích thước giống nhau:
+ Nếu toàn bộ giá trị mảng 1 giống mảng 2 (Như kiểu Copy/Paste) kết quả trả về True, ngược lại:
+ Nếu chỉ cần 1 giá trị khác nhau, trả về False
 
Upvote 0
Thử:
PHP:
Public Function SoSanh2Mang(rng1 As Range, rng2 As Range) As Boolean
Dim i As Long, j As Long
If rng2.Rows.Count <> rng1.Rows.Count Then Exit Function
If rng2.Columns.Count <> rng1.Columns.Count Then Exit Function

For i = 1 To rng1.Rows.Count
    For j = 1 To rng1.Columns.Count
        If rng1.Cells(i, j).Value <> rng2.Cells(i, j).Value Then Exit Function
    Next j
Next i
SoSanh2Mang = True

End Function
 
Upvote 0
Cảm ơn anh đã quan tâm. Kết quả em mong muốn là:
1. Điều kiện cần: Nếu 2 mảng có kích thước khác nhau, Kết quả False. Exit Function
2. Nếu 2 mảng có kích thước giống nhau:
+ Nếu toàn bộ giá trị mảng 1 giống mảng 2 (Như kiểu Copy/Paste) kết quả trả về True, ngược lại:
+ Nếu chỉ cần 1 giá trị khác nhau, trả về False
Từ đầu chí cuối, bạn vẫn chưa hiểu người khác đang vướng víu gì với cách diễn tả của bạn.
Điểm người ta cần biết là:
mảng 1: { a, b, c , d }; mảng 2: { a, c, b, d }
Nếu bạn muốn so sánh giống nhau kiểu copy/paste thì hai mảng trên KHÔNG GIỐNG nhau
Nếu bạn muốn so sánh theo kiểu 2 tập hợp thì hai mảng trên GIỐNG nhau (các phần tử in hệt nhau).
Bạn muốn cái nào?
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom