1. Tuyển Mod quản lý diễn đàn. Các thành viên xem chi tiết tại đây

Xin hỏi về xử lý dữ liệu trong Excel..........?

Chủ đề trong 'Hỏi đáp Tin học' bởi saveas, 11/06/2007.

  1. 1 người đang xem box này (Thành viên: 0, Khách: 1)
  1. Thohry

    Thohry Thành viên rất tích cực

    Tham gia ngày:
    20/12/2006
    Bài viết:
    2.926
    Đã được thích:
    1
    Bạn thử lợi dụng tính tuần hoàn của các dữ liệu ( trong trường hợp này là theo chu kỳ 5) , sau đó copy mỗi một kiểu dữ liệu sang một cột riêng, sau đó tiếp tục. Đó chỉ là ý tưởng, các lệnh cụ thể thì tớ không quen lắm.
  2. tv_fan

    tv_fan Thành viên mới

    Tham gia ngày:
    24/07/2005
    Bài viết:
    1.061
    Đã được thích:
    0
    Làm xong rồi, bạn tạo thêm 1 macro có nội dung như sau:

    Sub RowToColumn()
    Dim i, j, maxRows As Integer
    Dim temp As String
    maxRows = 16 '' so hang o sheet 1
    j = 1 '' bien dem cua sheet 2
    For i = 1 To maxRows
    temp = Trim(Worksheets("Sheet1").Cells(i, 1).Value)
    Select Case temp
    Case 1
    Worksheets("Sheet2").Cells(j, 1) = Trim(Worksheets("Sheet1").Cells(i, 2).Value)
    Case 2
    Worksheets("Sheet2").Cells(j, 2) = Trim(Worksheets("Sheet1").Cells(i, 2).Value)
    Case 3
    Worksheets("Sheet2").Cells(j, 3) = Trim(Worksheets("Sheet1").Cells(i, 2).Value)
    Case 4
    Worksheets("Sheet2").Cells(j, 4) = Trim(Worksheets("Sheet1").Cells(i, 2).Value)
    j = j + 1
    End Select
    Next i
    End Sub

    Để ý các tên Sheet nhé, nhớ đặt cho chính xác
  3. tottochan81

    tottochan81 Thành viên rất tích cực

    Tham gia ngày:
    05/04/2006
    Bài viết:
    4.099
    Đã được thích:
    15
    Ôi trời, trường hợp này xử lý đơn giản m, cần gì phải macro làm gì cho nó phức tạp ra.
    Đầu tiên cho cái cột thứ nhất một cái tiêu đề, tạm đặt là TT rồi chọn cột TT (bôi đen toàn cột TT), tiếp tục vào menu Data/Filter/ Auto filter như hình dưới:
    [​IMG]
    Sau đó lọc dần từng số khác nhau của trường TT, đầu tiên là với số 1:
    [​IMG]
    Kết quả lọc:
    [​IMG]
    Sau khi lọc theo tên như trên, chỉ việc copy cả cột B ở hình trên dán vào một chỗ mới.
    Ở cái sheet ban đầu, tiếp tục lọc cột TT theo các số 2, 3, 4 để có các cột lớp, ngày sinh, giới tính. Rồi dán các cột kết quả lọc sang chỗ cần thiết.
    Được kết quả cuối cùng:
    [​IMG]
  4. saveas

    saveas Thành viên mới

    Tham gia ngày:
    09/06/2007
    Bài viết:
    205
    Đã được thích:
    0
    Cảm ơn ý tưởng rất hay của bạn. Nhưng Data của tớ nó kô đánh số thứ tự "1,2,3,4" để mà filter........Mà nó sẽ có kiểu Data lặp lại kiểu như vậy ....
    Help me~
  5. tottochan81

    tottochan81 Thành viên rất tích cực

    Tham gia ngày:
    05/04/2006
    Bài viết:
    4.099
    Đã được thích:
    15
    Vậy bạn thử chèn thêm một cột TT vào, ở cột TT này tại 5 ô đầu tiên bạn gõ 1, 2, 3, 4, một khoảng trắng. Rồi bôi đen 5 ô đầu của cột TT, chọn copy. Sau đó bôi đen từ ô thứ 6 đến hết cột TT, chọn Past thì nó sẽ tự động điền 1, 2, 3, 4, khoảng trắng vào hết cột TT một cách tuần tự.
    Sau đó làm như trên tớ nói.
    Tớ nói vậy thôi. Còn bạn không làm được nữa thì chịu rồi. Hết cách giúp
  6. tttoan

    tttoan Thành viên gắn bó với ttvnol.com

    Tham gia ngày:
    05/06/2004
    Bài viết:
    2.329
    Đã được thích:
    322
    Bạn tv_fan thử Macro của bạn saveas chưa?
    Cách đó chạy ổn chứ?
  7. saveas

    saveas Thành viên mới

    Tham gia ngày:
    09/06/2007
    Bài viết:
    205
    Đã được thích:
    0
    Cảm ơn ý của Bạn. Làm như vậy thủ công quá. :) Nếu tớ có hàng nghìn DataBase thì có lẽ để sử lý nó thì rất mất thời gian. Đơn giản nếu nó có rất nhiều trường dữ liệu.............
    Tớ cần câu lệnh!..........
  8. tv_fan

    tv_fan Thành viên mới

    Tham gia ngày:
    24/07/2005
    Bài viết:
    1.061
    Đã được thích:
    0
    TVF dự theo các hình yêu cầu ở cuối trang 1, viết xong và đã test thử rồi. Sheet1 là dữ liệu dạng Rows, Sheet2 là kết quả sau khi chạy macro đó
  9. saveas

    saveas Thành viên mới

    Tham gia ngày:
    09/06/2007
    Bài viết:
    205
    Đã được thích:
    0
    Cảm ơn bạn nhé, Tớ đã chạy thử. :)
    Hôm nay là ngay may mắn của Bạn. Chúc may mắn!
  10. tottochan81

    tottochan81 Thành viên rất tích cực

    Tham gia ngày:
    05/04/2006
    Bài viết:
    4.099
    Đã được thích:
    15
    Ơ, bạn thử đọc lại câu hỏi của bạn xem. Rõ ràng nói là "Tớ có một bảng như thế này..." chứ không phải là có hàng nghìn nên tớ mới bảo làm thế.
    Tớ không nghĩ cách này là thủ công và mất nhiều thời gian nếu bạn chỉ có một bảng. Còn thời gian ngồi nghĩ và viết ra macro chắc là nhanh hơn?
    Thôi, bạn đã làm được rồi. Chúc mừng bạn.

Chia sẻ trang này