Lọc dữ liệu

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

heocon

Thành viên chính thức
Tham gia
15/12/07
Bài viết
59
Được thích
14
Chào các anh chị giải pháp Excel!
Hôm nay heocon lại có 1 bài toán muốn nhờ anh chị giúp đỡ.
Em ko bít đặt tiêu đề như thế đã đúng với bài toán này chưa. Nêu ko phù hợp nhờ các Mod thay đổi giùm.

Em có 1 cột khách hàng ghi sai ỏ gần đúng. Em muốn sữa chúng lại cho chính xác.
Em lập ra 1 thư viện tên các khách hàng, để các tên sai sẽ tham chiếu vào.
Em ko bit viet VBA như thế nào, mong anh chị giúp em.
Chân thành cám ơn tất cả mọi người!
Chúc mọi người luôn vui vẽ.
Thân!
heo
 

File đính kèm

heocon đã viết:
dữ liệu trùng là do Bác SA làm sạch dữ liệu (xóa khoảng trắng), nhưng dữ liệu gốc rất nhìu rác. Chẳng lẽ trước khi Lọc mình phải làm sạch sao?
Khi em thêm dữ liệu lại có khoảng trắng hay rác thì phãi làm sạch trước à?
Đúng như vậy đó ạ.

1* Muốn sống chung với rát, cũng được thôi; Cảnh báo là tốn thời gian hơn!;

2* Cứ việc thêm dữ liệu bất kỳ & như đã nói ở trường hợp trên;

3* & macro cuối (bài 18) đã làm được điều đó!

* * * Tốc độ giờ còn là bao nhiêu phút?? * * *​
 
Upvote 0
Thử 1 phải mới đó là dùng chức năng thay thế của Excel cho tốc độ cao hơn:

PHP:
Sub BaoCao()
    On Error Resume Next
    Dim TimeR_ As Double
    TimeR_ = Timer
    Call XoaBC
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    'S02.Select
    Dim eRDl As Long, eRTv As Long
    eRDl = S01.Range("A65536").End(xlUp).Row
    eRTv = S02.Range("A65536").End(xlUp).Row
    
    With S03.Range("A2:A" & eRDl)
        .FormulaR1C1 = "=TRIM(DULIEU!RC)"
        .Calculate
        .Value = .Value
    End With
     
    Dim aTenDung As Range, aKH As Range, i As Long, j As Long
    
    Set aTenDung = S02.Range("B2:B" & eRTv)
    Set aKH = S02.Range("A2:A" & eRTv)
    
    S03.Select
    S03.Range("A2:A" & eRDl).Select
    For i = 1 To eRTv
        Selection.Replace Trim(aKH(i)), "-999" & aTenDung(i), LookAt:=xlWhole, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
        If (i = 1) Or (i Mod 10 = 0) Or (i = eRTv) Then _
            Application.StatusBar = "Tinh toan: " & Format(i / eRTv * 95, "0.00") & "%"
    Next i
    S03.Select
    For i = 2 To eRDl
        If Left(Range("A" & i).Value, 4) <> "-999" Then
            Range("B" & i).Value = "AAA Not In List"
            With Range("A" & i & ":B" & i).Interior
                .ColorIndex = 6
                .Pattern = xlSolid
            End With
        'Else
            'Range("A" & i).Value = Right(Range("A" & i).Value, Len(Range("A" & i).Value) - 4)
        End If
       If (i = 2) Or (i Mod 100 = 0) Or (i = eRDl) Then _
        Application.StatusBar = "Tinh toan: " & Format(95 + i / eRDl * 2, "0.00") & "%"
    Next i

    S03.Range("A2:A" & eRDl).Replace "-999", "", LookAt:=xlPart, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
        Application.StatusBar = "Tinh toan: 99.00%"
    S03.Range("A2").Select
    S03.Select
     Application.StatusBar = ""
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
    MsgBox "Tinh toan: 100%" & vbCr & "Ket thuc het " & Format(Timer - TimeR_, "0.00") & "s"
End Sub
 
Upvote 0
Rất mong được sự chỉ giáo của các thành viên. Bây giờ mình có file Bảng Tổng hợp. Từ bảng tổng hợp mình có cài công thức trong các file khác : dân cư, quy hoạch, cưỡng chế. Nhưng sau khi mình lọc được rồi nhưng các file đó, giả sử file dân cư thứ tự không được liền kề nhau. Có cách nào cho thứ tự liền kề nhau được không và dùng hàm gì ? Mong được chỉ giáo ? Và số thứ tự của các file dân cư, quy hoạch, cưỡng chế cũng được đánh số tự động. Mình xin gửi file đính kèm.
 

File đính kèm

Upvote 0
Excel mà bạn muốn trình bày theo kiểu Word thì có nước tự làm khó mình thôi... Tên Phường sao bạn ko đặt vào 1 cột nữa, như vậy có phải là dễ hơn ko?
ANH TUẤN
 
Upvote 0
1. Vấn đề cách dòng
Bạn dùng AutoFilter chọn non blank là được, với điều kiện dòng tiêu đề không merge cell. Nếu vẫn cần merge cell thì tạo dòng tiêu đề phụ đánh số từ 1 đến hết cột.
2. Vấn đề số thứ tự:
A8=1
A9=IF(B9<>"",MAX($A$8:A8),"")
với điều kiện các tên phường không nằm ở cột A hoặc B hoặc AmergeB, mà ở cột C. tên phường ở C nếu bạn canh phải và tăng alignment thì cũng thể hiện như trong B vậy.
 
Lần chỉnh sửa cuối:
Upvote 0
Bài này tôi nghĩ là ko đơn giãn thế đâu.. lý do là số lượng người trong 1 phường ta chưa biết trước... Thế thì lọc như thế nào đễ hết phường này lại tới phường kia?
Anh ptm có cách gì dùng VBA ko? Chứ bằng công thức thì tôi gần như bó tay rồi.. cố gắng vẫn dc nhưng file sẽ rất nặng vì các công thức mãng...
Nếu tác giã chấp nhận cho tên phường vào 1 cột riêng thì mọi việc sẽ dễ dàng hơn rất nhiều
ANH TUẤN
 
Upvote 0
Nếu tên phường đặt riêng 1 cột thì mình xin các cao thủ làm thử giúp xem. Coi Có đúng với ý của mình không.
 
Upvote 0
Bài này có cách gì dùng VBA ko?
Khi dùng VBA thì không có vấn đề với ô trộn lắm; nhưng lại có vấn đề khác;
Và mình đã sửa lại CSDL của bạn í xíu rồi; (trong file đính kèm)
PHP:
Option Explicit

Sub CopyDanCu()
 Dim lRow As Long, jZ As Long
 Dim StrC As String
 Sheets("Tong Hop").Select:                  Application.ScreenUpdating = False
 StrC = Sheets("Dan Cu").Range("B" & Sheets("Dan Cu").Range("B65432").End(xlUp).Row + 1)
 lRow = Range("B65432").End(xlUp).Row
 For jZ = 7 To lRow
    With Cells(jZ, 1)
        If InStr(.Value, "PHÖÔØNG") > 0 Then
            Cells(jZ, 1).Copy Destination:=Sheets("Dan Cu").Range("B" & _
                Sheets("Dan Cu").Range("B65432").End(xlUp).Row + 1)
        ElseIf UCase$(.Offset(, 6).Value) <> "" Then
            .Offset(, 1).Resize(1, 22).Copy Destination:=Sheets("Dan Cu").Range("B" & _
                Sheets("Dan Cu").Range("B65432").End(xlUp).Row + 1)
        End If
    End With
 Next jZ
End Sub

Mình khuyên tác giả của topic: mặc xong quần áo mới tô điểm; không nên mới mặc quần xong đã đi trang điểm!
Vui nha, & đừng zận!
 

File đính kèm

Upvote 0
Tôi thấy điều quan trọng nhất ko phải là giãi pháp đễ trích lọc mà là việc bố trí dử liệu...
Tôi gợi ý bạn 1 cách bố trí khác, như trong file đính kèm cũa tôi thì thậm chí bạn ko cần dùng VBA hay bất kỳ công thức nào luôn... Cứ AutoFiler là ra tất những gì bạn muốn...
Ngay cột Quy hoạch cần gì chia làm 3 cột rồi đánh dấu X cho tốn công thế... Làm như tôi vậy là tạm ổn rồi... còn những món li ti khác bạn tự rút gọn nhé... Nên theo lời khuyên cũa anh SA_DQ là ngon lành...
ANH TUẤN
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Chào anhtuan1066. Xin cho mình hỏi : ở Biên Hòa có địa điểm nào dạy VBA không vậy ? Mình nghiên cứu hoài mà không biết.
 
Upvote 0
Tôi cũng đang ở Biên Hòa, chã thấy ở đâu dạy cã.. mà tôi thấy lên GPE này học là ngon rồi còn gì
 
Upvote 0
Web KT

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

Back
Top Bottom