Lọc dữ liệu bị trùng lặp

Liên hệ QC

nq19832005

Thành viên mới
Tham gia
16/4/08
Bài viết
2
Được thích
0
Hello mọi người, Mình cần giải quyết vấn đề như thế này:
Có 1 cột gồm tên phố và 1 cột là mã số đã thống nhất, nhưng tên phố lại viết ở nhiều kiểu khác nhau và bị lặp lại khá nhiều.
Bây giờ mình cần tạo ra 1 bảng nhưng xóa bỏ những cách viết bị trùng lặp.

Ví dụ: bảng gốc
ten_pho ma_so
Lang Ha 1010
Láng Hạ 1010
LangHa 1010
langHa 1010
Láng Hạ 1010
LangHa 1010

Mình chỉ có ý tưởng là:
1. đầu tiên sắp xếp tăng hoặc giảm theo cột ten_pho.
2. sau đó cho quét từng dòng của bảng dữ liệu (lệnh Do.. while loop),
3. khi quét đến 1 dòng nào đó thì kiểm tra xem ten_pho ở dòng trước nó có bị trùng không,
4. nếu trùng thì xóa bỏ dòng này
5. quét dòng tiếp theo cho đến hết bảng dữ liệu

--->Kết quả là xóa được những dòng trùng nhau.

Mong các bạn xem giúp như vậy đã tối ưu chưa và viết hộ mình câu lệnh trong VBA.

Cám ơn mọi người nhiều
 
Sao lại quét theo cột TEN_PHO nhỉ? Sao bạn ko quét theo cột MA_SO, như vậy mới chính xác chứ
(Món này có thể làm bằng VBA hoặc bằng Advaned Filter kết hợp với công thức)
ANH TUẤN
 
Upvote 0
Đây có phải là kết quả cuối cùng bạn mong muốn không?
Lang Ha 1010
Láng Hạ 1010
LangHa 1010
Nếu đúng như vậy, bạn có thể dùng file dưới đây của Bác anhtuan1066.

Nêu không đúng ý bạn, thì bạn nói rõ yêu cầu nhé. Có file kèm theo càng tốt.

 

File đính kèm

Upvote 0
Mình cần giải vấn đề này:
Có 1 cột gồm tên phố và 1 cột là mã số đã thống nhất, nhưng tên phố lại viết ở nhiều kiểu khác nhau và bị lặp lại khá nhiều. Bây giờ mình cần tạo ra 1 bảng nhưng xóa bỏ những cách viết bị trùng lặp.
Ví dụ: bảng gốc
PHP:
[B]ten_pho[/B]          [B] ma_so[/B]
Lang Ha           1010
Láng Hạ           1010
LangHa            1010
langHa             1010
Láng Hạ           1010
LangHa            1010
--->Kết quả là xóa được những dòng trùng nhau. Mong các bạn xem giúp như vậy đã tối ưu chưa và viết hộ mình câu lệnh trong VBA.

Qui trình, theo mình, nên là:
a*/ Xếp dữ liệu theo cột 'A' : Dùng menu hay VBA gọi menu cũng xong!
b*/ Dò tìm & xóa trùng;
*/ Nếu cần thì xếp lại dữ liệu;
Macro sẽ có nội dung sau:
PHP:
Option Explicit
Sub FilterAndDelete()
' Macro recorded 4/16/2008 by SaDQ (GPE.COM)'
 Dim lRow As Long, Zw As Long:          Dim Rng As Range
 
 lRow = [a65432].End(xlUp).Row
 Range("A1:B" & lRow).Select
 Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range("B2") _
    , Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:=False _
    , Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:= _
    xlSortNormal
 For Zw = 3 To lRow
    With Cells(Zw, 1)
        If .Value = .Offset(-1) Then
            If Rng Is Nothing Then
                Set Rng = .Offset(-1)
            Else
                Set Rng = Union(Rng, .Offset(-1))
        End If:             End If
    End With
 Next Zw
 Rng.EntireRow.Delete
End Sub
 
Upvote 0
ui vừa post xong thì thấy có bài của bác SA_DQ, có vẻ rất đúng cái mình cần, mình đang nghiên cứu.

Cám ơn các bác SA_DQ, heo con, anhtuan rất nhiều.
---------------
chỉ đơn giản là mình muốn bỏ đi những dòng bị trùng nhau trong bảng thôi, kết quả mình muốn là:

ten_pho ma_so
Lang Ha 1010
Láng Hạ 1010
langHa 1010
LangHa 1010

Tức là xóa đi những dòng trùng nhưng phải phân biệt cả chữ viết hoa và viết thường .

Như cái VBA của bác anhtuan1066 mà bác heocon gửi ở trên dùng Advancedfilter thì nó đánh đồng hết (nó coi langHa và LangHa là một và bỏ đi 1 cái).

Mình muốn giữ cả chữ viết hoa, viết thường với mục đích tập hợp các cách viết tên phố khác nhau làm database.
 
Lần chỉnh sửa cuối:
Upvote 0
Bác Sa cho heocon file nhé. Tạo 2 Sheet, 1 Sheet Data và 1 Sheet BaoCao. Có 1 nút button.
Cám ơn Bác SA nhìu nhìu.
 
Upvote 0
Muốn xóa dữ liệu trùng nhau nghĩa là giảm thiểu tối đa dữ liệu và phải thống nhất các ký hiệu, tôi chẳng hiểu tại sao bạn lưu làm date base làm gì nữa.
Ví dụ tôi viết:
LÁng Hạ
LÁNG hạ
LÁnG hạ
...
bạn cũng lưu hết sao?
Cách tốt nhất là lọc theo mã số, còn Tên của nó sai so với quy định thì sửa đưa về dạng chuẩn.

Bác SA_DQ viết code bổ xung cho bạn ấy trường hợp mở rộng có > 2 tên phố chứ!
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi chẳng hiểu tại sao bạn lưu làm date base làm gì nữa.
Ví dụ tôi viết:
LÁng Hạ
LÁNG hạ
LÁnG hạ ... bạn cũng lưu hết sao?!
Mình đoán là, chắc anh chàng này đang làm cái từ điển sửa lỗi chính tả đó mà!
(Cuộc sống nhiều nhu cầu đa dạng lắm! Chỉ khi nào ngược quy luật, ta mới nên can thiệp thôi!)
Bác Sa cho heocon file nhé. Tạo 2 Sheet, 1 Sheet Data và 1 Sheet BaoCao. Có 1 nút button. Cám ơn Bác SA nhìu nhìu.
HeoCon muốn sở hữu file nào vậy; Muốn rằng đưa đoạn code này vô file giả lập & xài được, phải không? Nếu khác thì nhắn tin trên diễn đàn nha; Ngược lại thì chờ sau trưa sẽ có!)
Bác SA_DQ viết code bổ xung cho bạn ấy trường hợp mở rộng có > 2 tên phố chứ!
Mình chưa rõ về nhu cầu này đó! Bạn ví dụ theo ý bạn sao? (Cũng coi như lập Topic mới í!)
 
Upvote 0
Web KT

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

Back
Top Bottom