Bạn xem file đính kèm coi đúng ý chưa nhé.Các bác xem file đính kèm rùi gỡ dùm
Cái này đương nhiên phải dùng VBACác bác xem file đính kèm rùi gỡ dùm
Function UniqueList(SrcRng As Range, Pos As Long) As String
Dim Clls As Range, Dic
With CreateObject("Scripting.Dictionary")
For Each Clls In SrcRng
If Not IsEmpty(Clls) And Not .Exists(Clls.Value) Then
.Add Clls.Value, Clls.Value: Pos = Pos - 1
If Pos = 0 Then
UniqueList = Clls: Exit Function
End If
End If
Next Clls
End With
End Function
Function JoinSpec(ID As String, SrcRng As Range, Col_Index As Long, Optional Sep As String = vbLf) As String
Dim Clls As Range, Temp
With CreateObject("Scripting.Dictionary")
For Each Clls In SrcRng.Resize(, 1)
If Clls <> "" Then Temp = Clls.Value
If Clls <> "" And Not .Exists(Clls.Value) Then
.Add Clls.Value, Clls(, Col_Index).Value
ElseIf Clls(, Col_Index) <> "" Then
.Item(Temp) = .Item(Temp) & Sep & Clls(, Col_Index).Value
End If
Next
JoinSpec = .Item(ID)
End With
End Function
Cái này đương nhiên phải dùng VBA
Gữi bạn 2 UDF thường dùng trên GPE này:
PHP:Function UniqueList(SrcRng As Range, Pos As Long) As String Dim Clls As Range, Dic With CreateObject("Scripting.Dictionary") For Each Clls In SrcRng If Not IsEmpty(Clls) And Not .Exists(Clls.Value) Then .Add Clls.Value, Clls.Value: Pos = Pos - 1 If Pos = 0 Then UniqueList = Clls: Exit Function End If End If Next Clls End With End Function
Xem cú pháp trong file đính kèmPHP:Function JoinSpec(ID As String, SrcRng As Range, Col_Index As Long, Optional Sep As String = vbLf) As String Dim Clls As Range, Temp With CreateObject("Scripting.Dictionary") For Each Clls In SrcRng.Resize(, 1) If Clls <> "" Then Temp = Clls.Value If Clls <> "" And Not .Exists(Clls.Value) Then .Add Clls.Value, Clls(, Col_Index).Value ElseIf Clls(, Col_Index) <> "" Then .Item(Temp) = .Item(Temp) & Sep & Clls(, Col_Index).Value End If Next JoinSpec = .Item(ID) End With End Function
Code này lợi hại ở chổ cho dù dữ liệu gốc có sort trước hay lộn xộn gì nó cũng tổng hợp được tuốt
Hàm tự tạo trên của thầy Tuấn rất độc đáo, bạn có thể tuỳ biến sử dụng, thêm cột thêm dòng hay gì gì đó đều được. Bằng cách sửa vùng tham chiếu và số cột, số dòng cần tham chiếuNếu mình muốn thêm n mã với n vị trí và n sl thì phải lam sao bây giờ
2 hàm trên có 1 điểm chung ở đoạn lấy các phần tử duy nhất ---> Doom xem thử liệu có thể gộp chúng thành 1 hàm duy nhất không? (tôi có nghĩ qua nhưng... chưa "chế biến" được)Hàm tự tạo trên của thầy Tuấn rất độc đáo, bạn có thể tuỳ biến sử dụng, thêm cột thêm dòng hay gì gì đó đều được. Bằng cách sửa vùng tham chiếu và số cột, số dòng cần tham chiếu
Bạn tự khám phá nhé.