Xóa số trùng trong Excel (2 người xem)

  • Thread starter Thread starter street
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

street

Thành viên mới
Tham gia
1/6/08
Bài viết
32
Được thích
81
Một dãy số tương ứng với một ô tính trong đó có các con số trùng nhau(vd:1,2,2,3,4,5,5), vấn đề là muốn sắp xếp lại sang cột tính khác mà các con số trùng nhau sẽ được "đè" lên nhau(sau khi sắp xếp:1,2,3,4,5)

File này giúp xóa số trùng và vẫn giữ nguyên vị trí các số của dữ liệu đầu vào
Vì file này mình viết code nên để dùng được file này, thì bạn làm tương tự như sau:

VBA_excel.gif


Khi bạn mở file này thì sẽ không có chữ gì trong đó cả. Bạn phải nhập số liệu. Ở đây mình viết để số liệu nhập theo cột 1, bắt đầu nhập từ ô đầu tiên tức là ô A1. Ví dụ mình nhập như sau:

41217342kn0.jpg


Tiếp theo nhấn tổ hợp 2 phím Alt và F11. Rồi nhấn F5 thì sẽ hiện ra 1 bảng. Trong ví dụ này, số các số là 16 nên trong bảng, bên cạnh chữ "So cac so", mình nhập 16. Tiếp theo nhấn "Thuc hien":

20105802zq3.jpg


Thì sẽ ra kết quả là:

83719958vc7.jpg
 

File đính kèm

Ôi... nếu để xóa dử liệu trùng thì người ta dùng Advanced Filter chứ
Và nếu như viết code thì cũng sẽ dựa vào thuật toán trên... Tôi bảo đãm với bạn tôi viết code này không quá 6 dòng ---> Không Pho phiếc gì ráo
Tôi nghĩ bạn rất rành visual basic nhưng chưa rành Excel lắm thì phải (tức chưa biết trong Excel đã có các công cụ mạnh loại này)
Ẹc... Ẹc....
 
Mình biết sơ sơ Visual Basic. Nhưng mình nghĩ ra được thuật toán để xóa số trùng này
 
Lần chỉnh sửa cuối:
Bài này có người hỏi mình nên mình mới nghĩ ra code này. Có lẽ cần phải học hỏi thêm excel nhiều nữa vì thấy excel rất hay
 
Bài này có người hỏi mình nên mình mới nghĩ ra code này. Có lẽ cần phải học hỏi thêm excel nhiều nữa vì thấy excel rất hay

Căn cứ theo ví dụ của bạn, mình làm một đoạn code sau, Chỉ có một dòng:
PHP:
Sub LocTrung()
Selection.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("B1"), Unique:=True
End Sub

Mình đưa thử dữ liệu có 65.000 dòng. bạn chiếu sáng vùng từ [A1:A65000] sau đó ấn tổ hợp phím Ctrl+Shift+T để có kết quả tại cột B
 

File đính kèm

Căn cứ theo ví dụ của bạn, mình làm một đoạn code sau, Chỉ có một dòng:
PHP:
Sub LocTrung()
Selection.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("B1"), Unique:=True
End Sub
Mình đưa thử dữ liệu có 65.000 dòng. bạn chiếu sáng vùng từ [A1:A65000] sau đó ấn tổ hợp phím Ctrl+Shift+T để có kết quả tại cột B
Đó là ca_dafi khiêm tốn ấy chứ (vì viết code lẹ quá, chưa kịp rút gọn)... Chứ không thì nó sẽ còn gọn nữa:
PHP:
Sub LocTrung()
   Selection.AdvancedFilter 2, [B1], True
End Sub
 
To cadafi, khi dùng code của bạn lọc ra 2 dòng đầu tiên giống nhau vẫn giữ nguyên.
To ndu96081631, code của bạn không chạy.
Xin cám ơn
 
To cadafi, khi dùng code của bạn lọc ra 2 dòng đầu tiên giống nhau vẫn giữ nguyên.
To ndu96081631, code của bạn không chạy.
Xin cám ơn
Bạn phải hiểu là AdvanceFilter phải có tiêu đề cột! Tôi chắc rằng bạn đang lọc một danh sách không có tiêu đề cột, đúng không? Bạn thử làm bằng tay việc Advancefilter thì sẽ biết. Tham khảo về AdvanceFilter bạn có thể Search trên diễn đàn.
 
Web KT

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

Back
Top Bottom