Let'GâuGâu
Thành viên mới
- Tham gia
- 12/9/13
- Bài viết
- 3,131
- Được thích
- 2,732
Chào các bác!
Nhờ các bác chỉ dùm em làm thế nào vừa nối dữ liệu có loại trùng, vừa có điều kiện để nối.
Trong file em gửi kèm theo đây, kết quả đặt ở ô AG9, số liệu lấy từ vùng E8:E23. Kết quả vừa loại bỏ kết quả trùng (1331) vừa căn cứ vào số chứng từ PC-002 - tìm theo ô AG7 trong vùng A8:A23
Các bác giúp em với, em cám ơn!
bạn tìm hàm jointext của tác giả NDU........là chuyện trị mấy cái dzụ này, còn xài dictionary thì nó vậy
Mã:
Option Explicit
Function MyJoint(CriRng As Range, cri, rng As Range)
Dim dic As Object, arr, CriArr As Variant, i As Long
CriArr = CriRng.Value
arr = rng.Value
Set dic = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(arr)
If CriArr(i, 1) = cri And Not dic.exists(arr(i, 1)) Then dic.Add arr(i, 1), ""
Next
If dic.Count Then MyJoint = Join(dic.Keys, ",")
End Function
Mã:
=MyJoint(A8:A23,AG7,E8:E23)
sắp xếp theo thứ tự từ nhỏ đến lớn
Mã:
Option Explicit
Function MyJoint(CriRng As Range, cri, rng As Range)
Dim dic As Object, arr, CriArr, tam(1 To 100000) As Variant, i As Long, st As String
CriArr = CriRng.Value
arr = rng.Value
Set dic = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(arr)
If CriArr(i, 1) = cri And Not dic.exists(arr(i, 1)) Then
dic.Add arr(i, 1), ""
tam(arr(i, 1)) = arr(i, 1) & ","
End If
Next
If dic.Count Then
st = Join(tam, "")
MyJoint = Left(st, Len(st) - 1)
End If
End Function
Lần chỉnh sửa cuối: