Filter and get the unique values - Lọc và lấy các giá trị không trùng Code VBA
1. Sử dụng Collection/Use Collection:
2. Dùng AdvancedFilter/Use AdvancedFilter:
3. Dùng scripting.dictionary/Use Scripting.Dictionary object:
Cú pháp Dictionary:
(Phần giải thích của ndu96081631)
Cú pháp đưa dữ liệu cho Dictionary là:
4. Viết Class module/Use class module:
Class module
5. Sử dụng Array/Use array:
6. Dùng FIND/Use Find method:
7. Dùng WorksheetFunction.CountIf/Use WorksheetFunction.CountIf:
8. Nếu dùng công thức/If you use formula
Giá trị ở A1:A30/Values in A1:A30
Ở B1 đặt giá trị 1/In B1 put value 1
Ở B2 đặt công thức/In B2 put the formula:
Copy công thức đến ô B30/Copy formula down till B30
Ở C1 đặt giá trị 1/In C1 put the value 1
Ở C2 đặt công thức =C1+1/In C2 the formula =C1+1
Ở D1 đặt công thức/In D1 the formula:
Copy xuống D2/Copy to D2
Bây giờ copy C22/Now copy C22 down…
Cột D bạn có các giá trị không trùng của A1:A30/In column D you have the A1:A30 unique values
9. Đâu là cách nhanh nhất?/Which one is faster?
Được thử bởi Hans Schraven
Được thử với danh sách có 8000 chuổi ký tự.
Tốc độ thực hiện tst1:tst2:tst3:tst4 = 1:23:55:112
1. Sử dụng Collection/Use Collection:
Mã:
Mã:
Mã:
(Phần giải thích của ndu96081631)
Cú pháp đưa dữ liệu cho Dictionary là:
Mã:
- Mỗi lần nạp như vậy thì Key sẽ được cho vào nhóm Keys và Item sẽ được cho vào nhóm Items
- Item: có thể là bất cứ giá trị gì nhưng Key bắt buộc phải là những phần tử không trùng nhau trong nhóm Keys ---> Và ta áp dụng tính chất này của Dictionary để lấy unique list (danh sách không trùng)
- Nếu không muốn Add giá trị cho Item thì có thể viết thế này:Mã:
(bạn đặc biết lưu ý: Key khác với Keys và Item khác với Items nha)
4. Viết Class module/Use class module:
Mã:
Mã:
Mã:
Mã:
Mã:
Giá trị ở A1:A30/Values in A1:A30
Ở B1 đặt giá trị 1/In B1 put value 1
Ở B2 đặt công thức/In B2 put the formula:
Mã:
Ở C1 đặt giá trị 1/In C1 put the value 1
Ở C2 đặt công thức =C1+1/In C2 the formula =C1+1
Ở D1 đặt công thức/In D1 the formula:
Mã:
Bây giờ copy C22/Now copy C22 down…
Cột D bạn có các giá trị không trùng của A1:A30/In column D you have the A1:A30 unique values
9. Đâu là cách nhanh nhất?/Which one is faster?
Được thử bởi Hans Schraven
Được thử với danh sách có 8000 chuổi ký tự.
Tốc độ thực hiện tst1:tst2:tst3:tst4 = 1:23:55:112
Mã: