nguyenvanlinhab
Thành viên mới
- Tham gia
- 27/2/22
- Bài viết
- 40
- Được thích
- 0
Với dữ liệu trong file kết quả bạn muốn như thế nào vậy?Em có file như đính kèm. Sau khi tự học hỏi trên GPE mà vẫn không giải quyết dược bài này. Mọi người có thể chỉ giúp xem sai ở đâu không ạ
Em muốn lọc trùng cột mã sản phẩm và cột vị trí.Cột vị trí thì cộng dồn ạVới dữ liệu trong file kết quả bạn muốn như thế nào vậy?
Code trong file của bạn nó ra kết quả rồi còn gì nữaEm muốn lọc trùng cột mã sản phẩm và cột vị trí.Cột vị trí thì cộng dồn ạ
Đâu đúng ạ nó khác xa kết quả lắm ạCode trong file của bạn nó ra kết quả rồi còn gì nữa
Thế kết quả bạn muốn là như nào? có 2 dòng đó hả?Đâu đúng ạ nó khác xa kết quả lắm ạ
View attachment 272835
Kết quả như ảnh ạ anh xem giúp em sai chỗ nào ạ
Đến cái kết quả mẫu bạn cũng làm sai thìView attachment 272835
Kết quả như ảnh ạ anh xem giúp em sai chỗ nào ạ
Chắc em vừa cộng nhầm ạ ,Anh có tính được không ạ
Dạ tại em nhìn thủ công xong đếm ạĐến cái kết quả mẫu bạn cũng làm sai thì
Test thử và không cần báo kết quảDạ tại em nhìn thủ công xong đếm ạ
Sub hoc_vba()
Dim sh As Worksheet, dic As Object, arr(), kq(), Key
Dim i&, j&, k&, l As Long, lr As Long
' On Error Resume Next
Set sh = Sheets("sheet1")
Set dic = CreateObject("scripting.dictionary")
lr = getlr(sh, 2)
arr = sh.Range("A2:G" & lr).Value
ReDim kq(1 To UBound(arr, 1), 1 To 3)
For i = 1 To UBound(arr, 1)
Key = arr(i, 6) & "|" & arr(i, 4)
If dic.exists(Key) = False Then
j = j + 1
dic.Add (Key), j
kq(j, 1) = arr(i, 6)
kq(j, 2) = arr(i, 4)
kq(j, 3) = 1
Else
kq(dic.item(Key), 3) = kq(dic.item(Key), 3) + 1
End If
Next i
sh.Range("L2").Resize(100, 3).ClearContents
sh.Range("L2").Resize(j, 3).Value = kq
End Sub
Anh ơi cái này nghĩa là gì ạ ( key = arr(i, 6) & "|" & arr(i, 4) sao lại có "|"Test thử và không cần báo kết quả
Mã:Sub hoc_vba() Dim sh As Worksheet, dic As Object, arr(), kq(), Key Dim i&, j&, k&, l As Long, lr As Long ' On Error Resume Next Set sh = Sheets("sheet1") Set dic = CreateObject("scripting.dictionary") lr = getlr(sh, 2) arr = sh.Range("A2:G" & lr).Value ReDim kq(1 To UBound(arr, 1), 1 To 3) For i = 1 To UBound(arr, 1) Key = arr(i, 6) & "|" & arr(i, 4) If dic.exists(Key) = False Then j = j + 1 dic.Add (Key), j kq(j, 1) = arr(i, 6) kq(j, 2) = arr(i, 4) kq(j, 3) = 1 Else kq(dic.item(Key), 3) = kq(dic.item(Key), 3) + 1 End If Next i sh.Range("L2").Resize(100, 3).ClearContents sh.Range("L2").Resize(j, 3).Value = kq End Sub
Bạn nên đọc kĩ bài nàyAnh ơi cái này nghĩa là gì ạ ( key = arr(i, 6) & "|" & arr(i, 4) sao lại có "|"
Thì còn nhiều vòng lắm.Đến cái kết quả mẫu bạn cũng làm sai thì
Bạn này không hiểu vấn đề về dic rồi. có lẽ giải thích nưa cũng như vậy thôi. Coi như là mình làm sai ý bạn vậyĐã chạy thử nó vẫn không như em nghĩ ạ.Cột mã sản phẩm nó vẫn không lọc trùngView attachment 272841
Vậy bài này không dùng dictionary được đúng không anh.Có còn cách khác không ạBạn này không hiểu vấn đề về dic rồi. có lẽ giải thích nưa cũng như vậy thôi. Coi như là mình làm sai ý bạn vậy
mình không biết và cũng không còn hứng thú nữa rồi. Bạn chờ thành viên khác vào hỗ trợ bạn thôiVậy bài này không dùng dictionary được đúng không anh.Có còn cách khác không ạ
Dạ em cảm ơn thời gian đã giúp em. Xin lỗi đã làm phiền ạmình không biết và cũng không còn hứng thú nưa rồi.
Đã bảo không ăn xổi được mà.Bạn này không hiểu vấn đề về dic rồi. có lẽ giải thích nưa cũng như vậy thôi. Coi như là mình làm sai ý bạn vậy