Kết quả 1 đến 10 của 10

Chủ đề: Sắp xếp lại kết quả tìm kiếm, bỏ giá trị =0 và dồn lên sát nhau

  1. #1

    Sắp xếp lại kết quả tìm kiếm, bỏ giá trị =0 và dồn lên sát nhau

    Chào các anh chị,
    Nhờ các anh chị xem giúp em cách lọc dữ liệu và sắp xếp lại giá trị đã lọc được theo 2 yêu cầu :
    *. Bỏ những giá trị =0
    *. Dồn những giá trị đã tìm được lên sát nhau

    Ví dụ : dữ liệu cột A của em là (Cột A luôn luôn có độ dài tối đa là 18 hàng, từ A1:A18)

    40
    924
    1865
    1728
    1343
    1984
    2654
    2341
    5686

    .....
    .....

    Em muốn lọc lại dữ liệu này theo kiểu : số cuối cùng ở mỗi ô là số mấy thì đặt nó vào cột tương ứng
    Em muốn có cột B1 là kết quả những số có số cuối cùng là số 0 , cột C1 là số 1 , D1 là số 2 ...... Cột F1 là số 4
    Đến số 5 thì xuống hàng quay lại cột B ..... nhưng vì mình không thể biết trước kết quả tìm kiếm của B1 : F1 là mấy hàng nên không thể xác định được ô tiếp theo ở cột B để đặt giá trị số 5 xuống


    Cột B.......... cột C......... Cột D................................. Cột E......... Cột F
    (Số 0)........ (Số 1)......... (Số 2)............................... (Số 3)....... (Số 4)
    ..40............. 2341 .... không có nên =0 (để trắng)....... 1343........... 924
    .................................................. ...........................................1984
    .................................................. ...........................................2654


    Cột B ......... cột C...... Cột D................................... Cột E........... Cột F
    (Số 5) ....... (Số 6) ......(Số 7)................................. (Số 8) ........ (Số 9)
    1865............ 5686 ... không có nên =0 (để trắng)...... =0 (để trắng)

    Nhờ các anh chị giúp em viết code VB để xử lý nhé, vì em dùng hàm =IFERROR(SMALL(IF(RIGHT($A1:A$18)="0";($A$1:$A$18) ;"");ROW($A1));0) thì chỉ tìm kiếm được kết quả mà không thể sắp xếp được.

    P/S : hàm này là do anh concogia chỉ em đấy, sẵn tiện gởi lời cảm ơn đến anh concogia lần nữa

    Xin các anh chị xem file đính kèm sẽ đầy đủ hơn ạ.

  2. #2
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi alex-luu
    Chào các anh chị,
    Nhờ các anh chị xem giúp em cách lọc dữ liệu và sắp xếp lại giá trị đã lọc được theo 2 yêu cầu :
    *. Bỏ những giá trị =0
    *. Dồn những giá trị đã tìm được lên sát nhau

    Ví dụ : dữ liệu cột A của em là (Cột A luôn luôn có độ dài tối đa là 18 hàng, từ A1:A18)

    40
    924
    1865
    1728
    1343
    1984
    2654
    2341
    5686

    .....
    .....

    Em muốn lọc lại dữ liệu này theo kiểu : số cuối cùng ở mỗi ô là số mấy thì đặt nó vào cột tương ứng
    Em muốn có cột B1 là kết quả những số có số cuối cùng là số 0 , cột C1 là số 1 , D1 là số 2 ...... Cột F1 là số 4
    Đến số 5 thì xuống hàng quay lại cột B ..... nhưng vì mình không thể biết trước kết quả tìm kiếm của B1 : F1 là mấy hàng nên không thể xác định được ô tiếp theo ở cột B để đặt giá trị số 5 xuống


    Cột B.......... cột C......... Cột D................................. Cột E......... Cột F
    (Số 0)........ (Số 1)......... (Số 2)............................... (Số 3)....... (Số 4)
    ..40............. 2341 .... không có nên =0 (để trắng)....... 1343........... 924
    .................................................. ...........................................1984
    .................................................. ...........................................2654


    Cột B ......... cột C...... Cột D................................... Cột E........... Cột F
    (Số 5) ....... (Số 6) ......(Số 7)................................. (Số 8) ........ (Số 9)
    1865............ 5686 ... không có nên =0 (để trắng)...... =0 (để trắng)

    Nhờ các anh chị giúp em viết code VB để xử lý nhé, vì em dùng hàm =IFERROR(SMALL(IF(RIGHT($A1:A$18)="0";($A$1:$A$18) ;"");ROW($A1));0) thì chỉ tìm kiếm được kết quả mà không thể sắp xếp được.

    P/S : hàm này là do anh concogia chỉ em đấy, sẵn tiện gởi lời cảm ơn đến anh concogia lần nữa

    Xin các anh chị xem file đính kèm sẽ đầy đủ hơn ạ.
    Nhìn mấy con số này cũng vui, thất nghiệp làm thí thí, hổng kể nhanh hay chậm à nghe.

  3. #3
    dtphong0001 Guest
    Mình đưa ra 1 giải thuật đơn giản hơn của chàng Ba Tê nè, mại zô!

    )(in cảm ơn 3Tê vì file!

  4. #4
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi alex-luu
    Chào các anh chị,
    Nhờ các anh chị xem giúp em cách lọc dữ liệu và sắp xếp lại giá trị đã lọc được theo 2 yêu cầu :
    *. Bỏ những giá trị =0
    *. Dồn những giá trị đã tìm được lên sát nhau
    Thêm một lựa chọn nữa

  5. #5
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Em cảm ơn 2 anh Ba Tê và ChanhTQ@ , nhưng file của 2 anh chưa đúng ý em rồi, ý của em là :

    *** Đối với mẫu 1 :
    Lọc hết các số có số cuối cùng là 0 , 1 , 2, 3, ,4
    rồi xuống hàng (xuống đều hết) rồi mới tiếp theo là 5 , 6 ,7 , 8 ,9
    như thế này nè :

    Phải có 1 hàng đầu tiên ghi tiêu đề là :

    ....0 ................1.......................2......... ..........................................3....... ....................4
    Rồi mới bắt đầu quá trình lọc và điền kết quả như sau :

    40 ............. 2341 ............ không có số 2 thì để trống .................1343 ......................924
    để trống........để trống...............để trống.......................................... �ể trống.................1984
    để trống........để trống...............để trống.......................................... �ể trống.................2654

    hết các số 1 ,2 ,3 ,4 trong danh sách rồi bây giờ mới tới số 5 nè :

    Phải có 1 hàng ghi tiêu đề là :
    ..5................6.............................. ....7........................................8.... ...........................9


    Rồi mới bắt đầu quá trình lọc và điền kết quả tiếp theo :

    1865 ...........5686........................để trống...................................1728.... .........................

    Còn file của 2 anh thì cho ra kết quả như thế này :
    40...........2341........1343........924
    1865........5686.....................1984......... sai ở đây : phải lọc hết các ô có số cuối là số 4 thì mới tìm tiếp đến số 5
    ..........................................2654.... ......Trước khi tìm tiếp số 5 ,6 ,7 8 thì phải có 1 hàng tiêu đề là 5, 6, 7 ,8


    Và nếu có thể thì xin các anh sử dụng đúng như cấu trúc như trong file book1 của em nhé

    Làm dùm em cả 2 mẫu : mẫu 1 là kiểu hàng dọc 1, 2, ,3 ,4 rồi mới xuống hàng đến 5 ,6 ,7 ,8 ,9) và mẫu 2 là kiểu hàng ngang 1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9

    Xin xem lại file book1 của em, em mới thêm 1 số ghi chú cho rõ nghĩa hơn, các anh chịu khó giúp em 1 lần nữa nhé.

    Xin chân thành cảm ơn

  6. #6
    halalavn276 Guest
    Trích dẫn Gửi bởi alex-luu
    Anh HungQuoc49 ơi, cách làm của anh là chuẩn nhất và đúng với ý của em nhất.
    chỉ có điều anh viết lại qua sheet khác, mà em không biết cách để áp vô file của em vì thật sự em chỉ biết các hàm và lệnh chứ không biết về VB, bởi vậy, em gởi anh file gốc của em, anh có thể giúp em lần nữa điều chỉnh lại được không ?

    Yêu cầu :
    Trong sheet in ve do, anh tạo 1 cái nút rồi assign macro xep so vào để nó : lấy kết quả ở 4 cột A, B, C , D rồi lọc và dồn vào các cột còn lại theo mẫu em đã làm sẵn được không ?

    Xin cảm ơn anh.
    Kiểm tra file này xem sao, vì chạy theo form cho sẵn nên phải chạy trên sheet ---->hơi chậm
    ( Rảnh viết đại, chưa tuốt lại )

  7. #7
    tvhp2015 Guest
    Trích dẫn Gửi bởi HungQuoc49
    Thêm một lựa chọn nữa
    Anh HungQuoc49 ơi, cách làm của anh là chuẩn nhất và đúng với ý của em nhất.
    chỉ có điều anh viết lại qua sheet khác, mà em không biết cách để áp vô file của em vì thật sự em chỉ biết các hàm và lệnh chứ không biết về VB, bởi vậy, em gởi anh file gốc của em, anh có thể giúp em lần nữa điều chỉnh lại được không ?

    Yêu cầu :
    Trong sheet in ve do, anh tạo 1 cái nút rồi assign macro xep so vào để nó : lấy kết quả ở 4 cột A, B, C , D rồi lọc và dồn vào các cột còn lại theo mẫu em đã làm sẵn được không ?

    Xin cảm ơn anh.

  8. #8
    seongang Guest
    Trích dẫn Gửi bởi HungQuoc49
    Kiểm tra file này xem sao, vì chạy theo form cho sẵn nên phải chạy trên sheet ---->hơi chậm
    ( Rảnh viết đại, chưa tuốt lại )
    Bài này viết vậy là hơi dài, tại sao không xử lý dạng mảng truyền vào theo tham số, cần form nào lấy ra và bao nhiều form như vậy. Chắc chắc sẽ đặt được nơi tác giả cần(nếu bạn thấy góp ý của tôi không cần thiết thì thôi) sau này trình độ của bạn lên bạn sẽ thấy cách viết của minh sẽ bất cập như thế nào trong file bài 4 và bài 7 tôi chả thấy gì khác cả)

  9. #9
    thinhvuonghouse Guest
    Trích dẫn Gửi bởi phihndhsp
    Bài này viết vậy là hơi dài, tại sao không xử lý dạng mảng truyền vào theo tham số, cần form nào lấy ra và bao nhiều form như vậy. Chắc chắc sẽ đặt được nơi tác giả cần
    Bài 4 đã làm gần tương tự theo hướng này nhưng vì thấy chủ thớt muốn dùng kết quả để in ấn--->font chữ rồi kẻ bảng nên bài 7 viết trực tiếp trên range, tưởng ngắn ai dè lại lằng nhằng hơn.

  10. #10
    quy263 Guest
    Cảm ơn anh Hungquoc49 nhiều nha
    Hic, ( Rảnh viết đại, chưa tuốt lại ) mà còn chuẩn vậy, nếu ngồi tút nữa thì còn siêu thế nào, hehehehe,

    Àh, anh Hungquoc49 ơi, anh có thể cho em xin số ĐT hoặc email của anh để liên lạc trực tiếp với anh được không ? vì em đang xử lý 1 file excel với vài điều kiện tương đối rối và dài dòng nên không biết phải post lên diễn đàn như thế nào (hơi khó và rối để diễn giải), có lẽ gặp trực tiếp nói chuyện thì sẽ dễ hơn.

    Em cảm ơn anh.

    Thông tin liên lạc của em :
    Lưu Minh Huê
    0916 545 725 - Email : luugiacp@gmail.com

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •