macro countif dữ liệu hơn 700k dòng.

Liên hệ QC

luckyboy1310

Thành viên mới
Tham gia
10/3/09
Bài viết
28
Được thích
0
Em có 1 data hơn 700k dòng. em làm hàm countif thì chạy lâu quá. sử dụng macro tô màu dữ liệu trùng cũng lâu. Anh chi cho em hỏi co code nào xử lý data này nhanh hơn ko ạ.

Yêu cầu của em là VD vùng cần countif là $C$2:$C$700000, bên cột B2 sẽ la sô lượng trùng của dữ liệu đó. công thức ô B2 e xài là =Countif($C$2:$C$700000,C2), rồi copy công thức này xuống tới ô B2:B70000
 
Dạ em xin cám ơn 2 bác Viemini va Batman1 đã chỉ em thấy những lỗi căn bản cần xử lý trc khi xử lý dữ liệu. code của bác HieuCD đã hoạt động. Rất cảm ơn những chỉ bảo của các bác, em sẽ cố găng học hỏi thêm tại do cần xủ lý dư liệu gấp quá nên làm phiền tới anh em :D
 
Upvote 0
Dạ em xin cám ơn 2 bác Viemini va Batman1 đã chỉ em thấy những lỗi căn bản cần xử lý trc khi xử lý dữ liệu. code của bác HieuCD đã hoạt động. Rất cảm ơn những chỉ bảo của các bác, em sẽ cố găng học hỏi thêm tại do cần xủ lý dư liệu gấp quá nên làm phiền tới anh em :D
Thử thêm một triệu dữ liệu ở Sheet1 rồi sang sheet2 chạy code.
 

File đính kèm

Upvote 0
Thử thêm một triệu dữ liệu ở Sheet1 rồi sang sheet2 chạy code.
Ba cái hàng lỏng bỏng này có 1 code chạy ra kết quả là coi như xong, tội gì phải cải tiến.
Bạn chờ đó thế nào cũng có thêm một vài yêu cầu nữa.
Với loại hàng khủng mà không biết nắm đầu nó thì cứ mỗi lần đụng vào thì lại lên GPE xin code.
 
Upvote 0
Ba cái hàng lỏng bỏng này có 1 code chạy ra kết quả là coi như xong, tội gì phải cải tiến.
Bạn chờ đó thế nào cũng có thêm một vài yêu cầu nữa.
Với loại hàng khủng mà không biết nắm đầu nó thì cứ mỗi lần đụng vào thì lại lên GPE xin code.
Mục đích của tôi đưa File lên để các thành viên nào chưa biết dùng đến có cái mà tham khảo.
 
Upvote 0
Mục đích của tôi đưa File lên để các thành viên nào chưa biết dùng đến có cái mà tham khảo.
Nhưng code chưa chuẩn.
Dòng
Mã:
Dim DongCuoi2 As Long: DongCuoi2 = ws2.Cells(Cells.Rows.Count, "B").End(xlUp).Row
phải có sau khi đã copy dữ liệu từ Sheet1!A sang Sheet2!B, và loại trùng trong Sheet2!B. Tức phải chuyển ra sau dòng
Mã:
ws2.Range("A1").CurrentRegion.RemoveDuplicates Columns:=2, Header:=xlYes
Hiện thời nếu ở thời điểm chào buổi sáng chỉ có tiêu đề ở Sheet2!B1 thì DongCuoi2 = 1 và SoDong2 là vùng chỉ có 2 ô B1 và B2.
 
Upvote 0
Nhưng code chưa chuẩn.
Dòng
Mã:
Dim DongCuoi2 As Long: DongCuoi2 = ws2.Cells(Cells.Rows.Count, "B").End(xlUp).Row
phải có sau khi đã copy dữ liệu từ Sheet1!A sang Sheet2!B, và loại trùng trong Sheet2!B. Tức phải chuyển ra sau dòng
Mã:
ws2.Range("A1").CurrentRegion.RemoveDuplicates Columns:=2, Header:=xlYes
Hiện thời nếu ở thời điểm chào buổi sáng chỉ có tiêu đề ở Sheet2!B1 thì DongCuoi2 = 1 và SoDong2 là vùng chỉ có 2 ô B1 và B2.
Mới làm sáng nay nhưng tôi chủ quan chưa kiểm tra kết quả.
 
Upvote 0
Vậy bác bổ sung luôn đi cho chuẩn. Mắc công người khác lấy về sài không biết sữa nằm sao...
 
Upvote 0
Web KT

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

Back
Top Bottom