Cách thức lọc dữ liệu

Thảo luận trong 'Ứng dụng Excel' bắt đầu bởi mail36, 28 Tháng ba 2008.

14,234 lượt xem

  1. mail36

    mail36 Thành viên hoạt động

    Bài viết:
    21
    Đã được thích:
    1
    Nơi ở:
    hhh
    Em không biết nhiều về Execl, em muốn hỏi mọi người về cách thưc lọc dữ liệu trên một bảng tính như thế nào.(Ngoài cách dùng của AutoFilter ra)
    Ví dụ: Em muốn lọc một từ "thuế" trong hàng loạt Thuế thu nhập Doanh nghiệp, Thuế thu nhập cá nhân, Thuế môn bài....Vậy tìm bằng cách nào ạ
    Em mong sớm nhận được câu trả lời của mọi người. Cám ơn mọi người.
     
    #1
  2. ditimdl

    ditimdl Thành viên sơ cấp

    Bài viết:
    6
    Đã được thích:
    0
    Nơi ở:
    DakLak
    Bạn nói chung chung quá khó mà hiểu được bạn cần gì? Bạn gửi file đính kèm lên và yêu cầu lọc thế nào mọi người sẽ giúp bạn.
     
    #2
  3. hoangdanh282vn

    hoangdanh282vn Thành viên thân thiết

    Bài viết:
    75
    Đã được thích:
    6
    Nơi ở:
    TP.HCM
    Có nhiều cách lọc khác nhau, nhưng để lọc dữ liệu gồm nhiều dòng thì ta dùng autofillter là nhanh nhất, nếu muốn bít về công thức thì dùng cột phụ(nhưng vẫn dùng autofillter)
    Giả sử cột A chứa dữ liệu cần lọc
    Tại cột B1 ta đặt công thứa sau :
    =IF(AND(NOT(ISERR(SEARCH($C$1,A1))),$C$1<>""),1,0)
    Với C1 là ô chứa từ hay một phần của từ, chuỗi cần lọc, VD thuế, thu, ti...
    Sau đó dùng autofillter chọn ra những dòng chứa số 1 trong cột B. xong
     
    #3
  4. handung107

    handung107 Thành viên thân thiết

    Bài viết:
    576
    Đã được thích:
    13
    Nơi ở:
    VN
    Đúng là có rất nhiều cách lọc, ngay cả dùng chức năng Filter của Excel, ngoài Auto Filter còn có Advanced Filter. Và trong Auto Filter cũng còn lựa chọn Custom nữa, bạn đã thử dùng hết chưa ?

    Ngoài chức năng sẵn có của Excel, bạn có thể dùng các công thức Index, Match là các hàm dò tìm dữ liệu để kết hợp lọc chúng, thậm chí bạn còn có thể dùgn hàm mảng và Sumproduct

    Ngoài ra, bạn cũng có thể dùng VBA để lọc dữ liệu theo những điều kiện bạn cần

    Nếu bạn muốn nhận được một câu trả lời cụ thể cho vấn đề này, bạn cần gửi File, và nêu rõ bạn muốn hỏi về điều gì, chúng tôi mới có thể giúp bạn được
     
    #4
  5. mail36

    mail36 Thành viên hoạt động

    Bài viết:
    21
    Đã được thích:
    1
    Nơi ở:
    hhh
    Cám ơn mọi người đã góp ý. Nhưng câu hỏi này là do một người bạn đã hỏi em, em ko rõ nên muốn đưa ra hỏi ý kiến mọi người.
    Bạn Handung107 có thể trả lời chi tiết hơn được ko ạh.bạn có thể dùng các công thức Index, Match là các hàm dò tìm dữ liệu để kết hợp lọc chúng, thậm chí bạn còn có thể dùgn hàm mảng và Sumproduct
     
    #5
  6. ditimdl

    ditimdl Thành viên sơ cấp

    Bài viết:
    6
    Đã được thích:
    0
    Nơi ở:
    DakLak
    Bạn đưa ra ví dụ để người khác giúp bạn chứ cứ nói chay thế này thì chung chung lắm.
     
    #6
  7. born

    born Thành viên sơ cấp

    Bài viết:
    3
    Đã được thích:
    0
    Nơi ở:
    hanoi
    Xin các bác chỉ giúp, em có một bài toán lọc dữ liệu mà mò mãi không ra, không hiểu dùng advande filter có phù hợp không nữa, nên cậy nhờ 4r:
    Nội dung bài là: em có 3 cột dữ liệu A,B,C, với mong muốn là lọc ra bảng dữ liệu thoả mãn điều kiện so sánh 3 cap so (AB, BA), (AC,CA), (BC, CB). Cụ thể là Cột A trừ đi B phải >=13 hoặc B-A >=13, tương tự như vậy với các cặp cột còn lại là A với C, B với C.

    Rất mong nhận được sự chỉ giúp sớm của các bác.
    Trân trọng
     
    #7
  8. SA_DQ

    SA_DQ Thành viên thân thiết

    Bài viết:
    428
    Đã được thích:
    34
    Nơi ở:
    HCM city
    Chắc bạn chưa thể đính kèm file, mình giả lập luôn!

    Hướng dẫn sử dụng trước khi dùng:
    Trong Sheets("S1"):
    Tại [F1] bạn nhập giá trị chênh lệnh cần tìm
    Tại [f3] bạn chọn hướng tìm trong hộp validation
    Tại ComboBox (duy nhật) bạn chọn 2 cột cần so sánh
    Chỉ sau đó bạn cho chạy macro (Bạn có thể gán macro này kèm theo ComboBox nếu bạn muốn. Nếu không biết gán thì sẽ có người hướng dẫn tiếp cho bạn
    Chúc vui vẻ!:bigok:
     

    Các file đính kèm:

    #8
  9. born

    born Thành viên sơ cấp

    Bài viết:
    3
    Đã được thích:
    0
    Nơi ở:
    hanoi
    Cám ơn bác SA_DQ nhiều vì có sự trợ giúp sớm! Tuy nhiên, đúng như bác nhận xét e cũng chưa rành về macro và vba. Rất mong bác chỉ dẫn sâu hơn nếu phải gán macro thì thực hiện thế nào? Có thể dùng những hàm cho sẵn trong excel để thực hiện bài toán trên không? cụ thể là advande filter có làm được việc này không?
    Cám ơn bác nhiều
     
    #9
  10. HongViet

    HongViet Thành viên thân thiết

    Bài viết:
    286
    Đã được thích:
    10
    Nơi ở:
    Đà nẵng
    1./
    Để gán macro vô nút lệnh, bạn trình tự tiến hành như sau:
    * Phải chuột vô ComboBox;
    * Chọn dòng Assign Macro. . . trong menu vừa đổ xuống;
    * Trong CS mới xuất hiện, sẽ có danh sách các macro đã được lập sẵn;
    Hãy chọn tên 'LocTheoTri2Cot' & bấm vô nút 'OK' trong CS này;
    Từ giờ trở đi, sau khi lựa giá trị tại [F1] & hướng chọn tại [F3] bằng hộp Validation (Tạm gọi là vậy). Sau đó ta chọn 2 cột trong ComboBox;
    Vừa chọn xong thì macro sẽ thi hành & bạn chỉ việc rung đùi & kiểm kết quả lại mà thôi; (Chỉ cần kiểm kỹ 1 vài lần đầu, vừa để chiêm nghiệm macro vừa thưởng lãm kết quả mà nó đem lại để biết sự thú vị khi ta có công cụ êxcel E2003 trong tay)

    2./ Có giải pháp nào nữa không? Câu trả lời là có; & bạn đã đúng 1 phần vì có thể sử dụng AdvancedFilter. Nhưng sẽ phức tạp nhiều vì phải dùng cột phụ
    Nếu bạn rành về những vấn đề mình nêu thì thực thi đi. Sẽ có trợ giúp tiếp theo . . .
    Chú ý một điều AdvancedFilter không phải là 1 hàm; Mình tạm gọi nó là phương thức
     
    #10
  11. born

    born Thành viên sơ cấp

    Bài viết:
    3
    Đã được thích:
    0
    Nơi ở:
    hanoi
    Cám ơn bác HongViet đã chỉ giáo. Quả thật đã rất chịu khó ngồi dò từng dòng và cố hiểu đoạn mã macro trên nói về cái gì, nhưng khó quá. Rút cục dù đoạn mã và ví dụ cụ thể của các bác rất trực quan, nhưng e vẫn chưa ứng dụng được vào nội dung công việc của mình. Một số khó khăn cụ thể:
    Bài toán như trên đã đề cập là có 3 cột A, B, C hoặc trong thực tế có thể tăng thêm là D, E, G...n. E muốn lọc dữ liệu thỏa mãn điều kiện:
    Cặp số 1:
    Cột A trừ đi B phải >=13
    hoặc Cột B-A >=13
    Cặp số 2:
    Cột A-C >=13
    hoặc Cột C-A >=13
    Cặp số 3:
    Cột B-C >=13
    hoặc Cột C-B >=13
    Vì vậy trong ví dụ khi em chưa hiểu:
    - Tiêu đề của các cột AA, BB, CC có ý nghĩa gì.
    - Mục combo chỉ có 3 cặp số thuận AB, AC, BC chưa có chiều ngược lại thì có thỏa mãn được điều kiện trên ko?
    - Tại sao phải chọn tuần tự AB, AC, BC trong combo? Có thể có một lệnh chung mà lọc được luôn dữ liệu thỏa mãn điều kiện trên?

    Vì chưa hiểu biết, nên có thể làm phiền thêm các bác, nếu hỏi ngây ngô quá mong các bác quan tâm bỏ quá và vẫn mong tiếp tục nhận được sự quan tâm chỉ dẫn thêm của các bác để vận dụng hiệu quả vào trường hợp cụ thể của bản thân. Nếu được dịch nôm na ra ngôn ngữ quần chúng đoạn mã macro trên thì tuyệt không gì bằng, vì có thể sửa chữa được như mong muốn.
    Cám ơn các bác nhiều
     
    #11
  12. HongViet

    HongViet Thành viên thân thiết

    Bài viết:
    286
    Đã được thích:
    10
    Nơi ở:
    Đà nẵng
    Tiêu đề để dễ phân biết các cột & đối chiếu dữ liệu sau khi macro thực thi.

    Nếu A>=B+15 (thì có nghĩa là B+15<=A)
    Và A<=B + 15
    Mình nghĩ bộ đôi này đủ cho bạn lựa chọn giữa 2 cột A & B rồi mà!
    Bạn hãy chọn hướng so sánh trong [f3] mà!

    Hiện tại mỗi lần macro chỉ hiện 1 kết quả so sánh/tìm kiếm theo yêu cầu 2 trong các cột mà thôi;
    Còn nếu muốn 'A' luôn > 'B' 15 đơn vị & 'A' luôn >'C' 35 đơn vị thì phải viếc cái khác rồi;
    Sẽ giúp bạn định các dòng lệnh tối nay, khi mình rỗi!
    Có thể bạn nhắn tin cho MOD/SMOD nhờ các bác í gởi file lên dùm bác;
    Trước đây mình cũng làm vậy mới gởi file lên được: Nhớ trích
    http://webketoan.vn/forum/newreply.php?do=newreply&p=425362 gởi cho MOD/SMOD biết chổ mà đưa file cho bạn đúng như bạn mong mõi
    Chúng ta cùng chờ đợi vậy nha!
     
    #12
  13. HongViet

    HongViet Thành viên thân thiết

    Bài viết:
    286
    Đã được thích:
    10
    Nơi ở:
    Đà nẵng
     
    #13
  14. nguyenvietviet

    nguyenvietviet Thành viên sơ cấp

    Bài viết:
    4
    Đã được thích:
    0
    Nơi ở:
    hai duong
    Các bạn dùng nhiều cách thật đấy nhưng phải gửi ví dụ cho anh em tham khảo mới biết được chứ!
     
    #14
  15. hung_mtuci

    hung_mtuci Thành viên sơ cấp

    Bài viết:
    6
    Đã được thích:
    0
    Nơi ở:
    Viet Nam
    Chào các bác,

    Em cũng đang có câu hỏi về lọc dữ liệu nên xin phép được post bài trong chủ đề này luôn

    Em có một cột gồm tên tên các đối tác:
    1) Tên chỉ gồm các chữ cái
    2) Tên bao gồm cả chữ cái và số

    Em muốn chỉ lọc các đối tác loại 1 (chỉ gồm các chữ cái) riêng ra. Em sử dụng Auto Filter.

    Tuy nhiên em không biết làm thể nào để khi sử dụng 1 trong các hàm ở mục "custum" làm sao để nó hiểu mình chỉ lọc lấy "text" hoặc chỉ lấy "number"

    Em thử dùng hàm "does not contain" thì đã loại bỏ được các đối tác có tên + số nhưng chỉ là 1 trong cả dẫy số.

    Vì em chỉ có thể chon số 1 hoặc số 2 .... chứ không biết bấm thể nào để nó hiểu sẽ lọc theo tất cả những gì liên quan đến số. Hoặc cùng lằm là nếu em đánh 1,2,3,4,5,6,7,8,9,0 thì nó sẽ lọc theo những số đấy.

    Rất mong nhận được giúp đỡ của các bác.

    Xuân Hưng.
     
    #15
  16. adam_tran

    adam_tran Steel Partner

    Bài viết:
    1,373
    Đã được thích:
    32
    Nơi ở:
    Goooogle
    Yêu cầu của bạn có thể giải quyết = nhiều cách:
    1. Thêm 1 cột phụ copy danh sách qua đây, dùng Find & Replace loại bỏ các con số rồi so với cột cũ, tên nào không thay đổi thì tên đó không chứa con số.
    2. Dùng AutoFilter ít nhất 5 lần để loại bỏ dần dần vì điều kiện contain chỉ cho phép loại bỏ 2 số.
    3. Dùng Advanced Filter với công thức trong Criteria Range:
    Có thể dùng nhiều hàm để kiểm tra tồn tại của 1 chuỗi text trong 1 chuỗi khác hay không. Find, Search, Substitute .. đều có thể đuợc. Thí dụ: =NOT(OR(Find("0",A1)>0, Find("1",A1)>0, Find("3",A1) ............))
    4. Dùng VBA
    Các cách sau là các cách làm "pro" hơn nhưng chưa chắc đã nhanh hơn cách làm trước.
     
    #16
  17. hung_mtuci

    hung_mtuci Thành viên sơ cấp

    Bài viết:
    6
    Đã được thích:
    0
    Nơi ở:
    Viet Nam
    Cảm ơn Bác, cách 1 em thấy có vẻ dễ sử dụng nhất.
     
    #17
  18. SA_DQ

    SA_DQ Thành viên thân thiết

    Bài viết:
    428
    Đã được thích:
    34
    Nơi ở:
    HCM city
    Thêm 1 cách, thêm 1 lựa chọn

    Cũng là cột phụ, bạn thử với hàm người dùng, như sau:
    Mã:
    Option Explicit
    Function YesNumeric(HoTen As Range)
     Dim jJ As Byte, Num As Byte
     YesNumeric = "-"
     For jJ = 1 To Len(HoTen)
       If IsNumeric(Mid(HoTen, jJ, 1)) Then
          YesNumeric = Mid(HoTen, jJ, 1) & "-" & jJ
          Exit Function
       End If
     Next jJ
    End Function
    Hướng dẫn sử dụng trước khi dùng:
    Chép hàm tự tạo đó vô ngăn VBE
    Tại cột phụ ta nhập cú pháp hàm,
    Ví dụ trường họ tên của bạn đang ở cột 'B'
    Tại cột trống bật kỳ nào dùng làm cột fụ bạn nhập ( tại dòng 2)

    =yesnumeric(B2)

    & chép tiếp xuống cho hết cột dữ liệu
     
    #18
  19. phongh

    phongh Thành viên sơ cấp

    Bài viết:
    1
    Đã được thích:
    0
    Nơi ở:
    BUÔN MA THUỘT
    Tôi có một việc rất phức tạp là có hai danh sách:ds1 và ds2 có tên trùng nhau và một số tên khác nhau ở cả hai danh sách.Tôi muốn lấy những tên của học sinh không trùng nhau ở cả hai danh sách này nhưng phải đủ cả 4 cột:họ tên-ngày sinh-tên cha-chỗ ở.Bạn nào giúp mình với nhé cảm ơn nhiều mình mới tham gia diễn đàn mong mọi người chỉ ngắn gọn xử lý trong Exel để lọc nhé.đã đọc bài dữ liệu trùng nhưng áp dụng không được cảm ơn nhiều. phong an sọng
     
    #19
  20. atmt17

    atmt17 Thành viên hoạt động

    Bài viết:
    70
    Đã được thích:
    1
    Nơi ở:
    Đồng Nai
    Dùng Advanced Filter mà làm, rất ngắn gọn và đơn giản
    Loại bài này bên www.giaiphapexcel.com có rất nhiều bạn đã từng hỏi
     
    #20

Chia sẻ trang này