tangoctuan
Thành viên hoạt động
- Tham gia
- 22/4/08
- Bài viết
- 153
- Được thích
- 19
Tạo cột phụ DChào các bác,
Nhờ các bác hỗ trợ giúp em có cách nào tự động giải quyết vấn đề trong file excel em gửi kèm với, hiện em đang phải làm bằng tay rất mệt .
Cám ơn các bác.
Cám ơn bác nhiều. Nhưng bác có cách nào khác để chạy nhanh hơn được không? Vì em chạy dữ liệu hơn 100k dòng, treo máy luôn.Tạo cột phụ D
D2 =", "&B2&IFERROR(LOOKUP(2,1/(A2=$A$1:A1),$D$11),"")
C2 =SUBSTITUTE(SUBSTITUTE(LOOKUP(2,1/($A$2:$A$12=A2),$D$2:$D$12),", "&B2,""),", ","",1)
Copy xuống
Dùng Sub VBACám ơn bác nhiều. Nhưng bác có cách nào khác để chạy nhanh hơn được không? Vì em chạy dữ liệu hơn 100k dòng, treo máy luôn.
Sub QuocGiaKhac()
Dim sArr(), Res() As String, iKey As String, tmp As String
Dim i&, sRow&
i = 1000000000
With Sheets("Sheet1")
i = .Range("A" & Rows.Count).End(xlUp).Row
If i < 2 Then MsgBox ("Khong co du lieu"): Exit Sub
sArr = .Range("A2:B" & i).Value
End With
sRow = UBound(sArr)
ReDim Res(1 To sRow, 1 To 1)
With CreateObject("scripting.dictionary")
.CompareMode = vbTextCompare
For i = 1 To sRow
iKey = sArr(i, 1) & "#" & sArr(i, 2)
If .exists(iKey) = False Then
.Add iKey, ""
.Item(sArr(i, 1)) = .Item(sArr(i, 1)) & ", " & sArr(i, 2)
End If
Next i
For i = 1 To sRow
tmp = Replace(.Item(sArr(i, 1)), ", " & sArr(i, 2), "")
If Len(tmp) > 0 Then Res(i, 1) = Mid(tmp, 3, Len(tmp) - 2)
Next i
End With
With Sheets("Sheet1")
.Range("C2").Resize(sRow) = Res
End With
End Sub
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 1
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 2