copy dữ liệutheo điều kiện để tra cứu thông tin (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

sieunhanpic

Thành viên mới
Tham gia
15/10/10
Bài viết
7
Được thích
0
Tôi muốn copy dữ liệu để tra cứu thông tin (Dùng Excel 2003).
Là tân binh nên tôi chưa biết làm thế nào để copy các thông ra nghiên cứu!
Mong các bạn chỉ giáo cụ thể nhé!
Xin gửi theo tập tin mẫu.
 

File đính kèm

Bạn có thể làm bằng excel:
Chọn Sheet Du lieu 1
Chọn hàng 1
Chọn Data / Filter / AutoFilter
Khi đó xuất hiện các nút, bạn muốn tìm theo chỉ tiêu nào thì chọn vào nút đó và chọn chỉ tiêu đó là ok
Chúc bạn thành công
 
Tôi muốn copy dữ liệu để tra cứu thông tin (Dùng Excel 2003).
Là tân binh nên tôi chưa biết làm thế nào để copy các thông ra nghiên cứu!
Mong các bạn chỉ giáo cụ thể nhé!
Xin gửi theo tập tin mẫu.

Mình làm thử thể này không biết có được không nữa. Bạn tham khảo nha....
 

File đính kèm

Mình làm theo cách mình nghĩ: tạo 2 cột phụ
+ Cột thứ nhất để tính tuổi
+ Cột thứ 2 quy định loại: NL, TE
Sau đó chọn Data / Filter / AutoFilter ( làm như bạn pmhoang) để lọc ở cột NL/TE
Còn cách khác khoa học hơn thì phải đợi các cao thủ thôi.
 

File đính kèm

Tôi muốn copy dữ liệu để tra cứu thông tin (Dùng Excel 2003).
Là tân binh nên tôi chưa biết làm thế nào để copy các thông ra nghiên cứu!
Mong các bạn chỉ giáo cụ thể nhé!
Xin gửi theo tập tin mẫu.
Xin góp ý về lọc độ tuổi: nên lọc theo năm chứ điều kiện TE, NL làm "phức tạp hóa" vấn đề và chỉ lọc được 2 nấc : nhỏ & lớn hay bằng 18 tuổi, trong cell đó mình đề nghị điều kiện lọc theo năm, thí dụ: >1983; <1990; =1990.....
Cái file gì mà mỗi sheet trên 40.000 dòng ghê vậy, không biết chạy nổi hông nữa chứ code này mà dữ liệu khoảng 400 dòng nó chạy mát trời
Mã:
Public Sub copykho()
Dim I As Integer, J As Integer
Range([a6], [a50000].End(xlUp)).Resize(, 6).Clear
    For J = 1 To 2
        With Sheets("du lieu " & J).[a1].CurrentRegion
            For I = 2 To 6
                .AutoFilter I, IIf(Cells(3, I) = "", "<>", Cells(3, I))
             Next
                .Offset(1).SpecialCells(12).copy [a50000].End(xlUp)(2)
                .AutoFilter
        End With
    Next
End Sub
Thân
To: NH_DK: sao không mở sheet Copy xem yêu cầu của chủ Topic, híc
Quên tạo nút cho code, bạn mở code nhấn F5 cho chạy nhé, "xó zì"
 

File đính kèm

Lần chỉnh sửa cuối:
đề nghị các bạn giúp copy có lọc dữ liệu từ nhiều sheet sang 1 sheet.
Chứ không chỉ lọc trong sheet đó.
Nhờ các bạn xem lại File "Copy du lieu" giúp.
Cám ơn nhiều!
 
đề nghị các bạn giúp copy có lọc dữ liệu từ nhiều sheet sang 1 sheet.
Chứ không chỉ lọc trong sheet đó.
Nhờ các bạn xem lại File "Copy du lieu" giúp.
Cám ơn nhiều!
Bạn muốn lọc từ sheet "Du lieu 1" & "Du lieu 2" sang sheet "Copy" đúng hông?
Cách làm: nhập điều kiện lọc từ B3 == > F3 ( có thể 1 hoặc 2,3..điều kiện) ở sheet Copy xong bấm nút
 

File đính kèm

Bạn ơi tôi là lính mới bạn có thể chú thích từng dùng trong
Public Sub copykho()
Dim I As Integer, J As Integer
Range([a6], [a50000].End(xlUp)).Resize(, 6).Clear
For J = 1 To 2
With Sheets("du lieu " & J).[a1].CurrentRegion
For I = 2 To 6
.AutoFilter I, IIf(Cells(3, I) = "", "<>", Cells(3, I))
Next
.Offset(1).SpecialCells(12).copy [a50000].End(xlUp)(2)
.AutoFilter
End With
Next

End Sub
giúp tôi để tôi học được ko
Cám ơn nhiều
và tôi muốn thêm hoặc bớt các sheet để lọc dữ liệu thì làm thế nào
 
Lần chỉnh sửa cuối:
Bạn ơi tôi là lính mới bạn có thể chú thích từng dùng trong
Public Sub copykho()
.....
....
End With
Next

End Sub
giúp tôi để tôi học được ko
Cám ơn nhiều
và tôi muốn thêm hoặc bớt các sheet để lọc dữ liệu thì làm thế nào
chú thích từng dòng
Dim I As Integer, J As Integer
Khai báo biến I và J là biến kiểu giá trị nguyên
Range([a6], [a50000].End(xlUp)).Resize(, 6).Clear
Tại sheet hiện hành, chọn vùng từ A6 đến A cuối cùng có dữ liệu, "tấn công" sang bên phải thêm 5 cột ==> xóa sạch sẽ
For J = 1 To 2
Cho biến J chạy từ 1 đến 2
With Sheets("du lieu " & J).[a1].CurrentRegion
Chọn vùng dữ liệu có dính với cell A1 ( trong bài là A1:F9 ) tại sheet "du liệu & J" ( nếu J= 1 thì chọn sheet "du lieu 1" ....)
For I = 2 To 6
Cho biến I chạy từ 2 đến 6
.AutoFilter I, IIf(Cells(3, I) = "", "<>", Cells(3, I))
Sử dụng chức năng Autofilter, lọc ở cột thứ I (từ 2 đến 6) của vùng dữ liệu, điện kiện lọc: Ở cells(3,I) tức là cell B3 (lúc I=2). Nếu cells(3,I) mà trống thì "đếch" làm gì cả (thật ra là nó lọc với điều kiện "khác khoảng trắng"), ngược lại lọc theo giá trị của cells(3,I)
Next
Tiếp tục cho I chạy
.Offset(1).SpecialCells(12).copy [a50000].End(xlUp)(2)
Nhích xuống 1 dòng ( để bỏ tiêu đề), copy những em có mặt sau khi lọc (không tính mấy em đã bị ẩn) dán vào cell cuối cùng có dữ liệu nhích xuống 1 dòng, ở cột A, shett hiện hành
.AutoFilter
Trả lại hiện trạng như lúc đầu chưa lọc
End With
Next
và tôi muốn thêm hoặc bớt các sheet để lọc dữ liệu thì làm thế nào
Biến J thể hiện số lượng sheet muốn lọc lấy dữ liệu, bạn chỉnh theo ý bạn
 
Thêm cho bạn 1 cách lọc bao nhiêu trường cũng OK

Xem trong file & làm theo hướng dẫn sau:

(1) Muốn lọc theo các tiêu chí khác với độ tuổi tại dòng 3 của trang 'Copy' ta nhập các iêu cầu; Lấy ví dụ muốn lọc những người có họ là Nguyen & tên là B thì tại [B3] ta nhập 'Nguyen' & tại [D3] ta nhập 'B'

Sau đó với trợ giúp của fím {CTRL} ta chọn 2 ô [B2] & [D2]. Tiếp: ta bấm vô nút có chữ lọc (Hay bấm tổ hợp {CTRL}+{SHIFT}+L) để macro thực hiện các việc còn lại cho bạn;

Trong trường hợp bạn muốn lọc tất tần tật những người có họ là 'Nguyen', thay vì bạn chọn 2 ô, ta chỉ cần chọn [B2] & bấm cho chạy macro.

Bạn có thể lọc với 6 tiêu chí khác nhau, miễn là chúng có trong 2 trang tính kia.

(2) Lọc theo độ tuổi: Ta chọn 1 trong 2 fương án tại [G3], fần việc còn lại là của macro

Kết quả lọc sẽ trình tại [A6] trở đi, nếu có

Chúc may mắn!
 

File đính kèm

Bạn cho tôi hỏi thêm vấn đề này nữa
Mình có 1 bảng số liệu như sau
[FONT=.VnTime]DANH_SACH1 [/FONT][FONT=.VnTime]DANH_SACH2 [/FONT][FONT=.VnTime]DANH_SACH3 [/FONT][FONT=.VnTime]DANH_SACH4[/FONT]
[FONT=.VnTime]AAAABB[/FONT]
[FONT=.VnTime]CCCDDD[/FONT]
[FONT=.VnTime]DDDDEE[/FONT]
[FONT=.VnTime]EEKKJJ[/FONT]
[FONT=.VnTime]JJJJJL[/FONT]
[FONT=.VnTime]LKKKKK[/FONT]
Mình muốn tạo vòng lặp để lấy 2 ký tự đầu vào cột danh sách 2
tạo vòng lặp để lấy 2 ký tự tiếp theo vào cột danh sách 3
và 2 ký tự cuối cùng vào cột danh sách 4
Nếu có thể được bạn giải thích từng lệnh giúp mình với nhé
Mình đã dùng thử các lệnh left, righ, mid nhưng không biết tạo vòng lặp như thế nào
 
Bạn cho tôi hỏi thêm vấn đề này nữa
Mình có 1 bảng số liệu như sau
[FONT=.VnTime]DANH_SACH1 [/FONT][FONT=.VnTime]DANH_SACH2 [/FONT][FONT=.VnTime]DANH_SACH3 [/FONT][FONT=.VnTime]DANH_SACH4[/FONT]
[FONT=.VnTime]AAAABB[/FONT]
[FONT=.VnTime]CCCDDD[/FONT]
[FONT=.VnTime]DDDDEE[/FONT]
[FONT=.VnTime]EEKKJJ[/FONT]
[FONT=.VnTime]JJJJJL[/FONT]
[FONT=.VnTime]LKKKKK[/FONT]
Mình muốn tạo vòng lặp để lấy 2 ký tự đầu vào cột danh sách 2
tạo vòng lặp để lấy 2 ký tự tiếp theo vào cột danh sách 3
và 2 ký tự cuối cùng vào cột danh sách 4
Nếu có thể được bạn giải thích từng lệnh giúp mình với nhé
Mình đã dùng thử các lệnh left, righ, mid nhưng không biết tạo vòng lặp như thế nào
Không có file nên ...làm mù vậy. Dữ liệu tính từ a2 nhé (không tính tiêu đề)
Mã:
Public Sub Gido()
    Dim i As Long, Vung As Range, K As Integer, Cll As Range
        Set Vung = Range([a2], [a5000].End(xlUp))
            For Each Cll In Vung
                For i = 1 To 5 Step 2
                    Cll.Offset(, 1 + K) = Mid(Cll, i, 2)
                    K = K + 1
                Next
                    K = 0
            Next
End Sub
Đưa file thực tế lên dễ làm hơn bạn nhé
Không có file nên sai "dzáng" chịu
Thân
 
Bạn cho tôi hỏi thêm vấn đề này nữa
Mình có 1 bảng số liệu như sau
[FONT=.VnTime]DANH_SACH1 [/FONT][FONT=.VnTime]DANH_SACH2 [/FONT][FONT=.VnTime]DANH_SACH3 [/FONT][FONT=.VnTime]DANH_SACH4[/FONT]
[FONT=.VnTime]AAAABB[/FONT]
[FONT=.VnTime]CCCDDD[/FONT]
[FONT=.VnTime]DDDDEE[/FONT]
[FONT=.VnTime]EEKKJJ[/FONT]
[FONT=.VnTime]JJJJJL[/FONT]
[FONT=.VnTime]LKKKKK[/FONT]
Mình muốn tạo vòng lặp để lấy 2 ký tự đầu vào cột danh sách 2
tạo vòng lặp để lấy 2 ký tự tiếp theo vào cột danh sách 3
và 2 ký tự cuối cùng vào cột danh sách 4
Nếu có thể được bạn giải thích từng lệnh giúp mình với nhé
Mình đã dùng thử các lệnh left, righ, mid nhưng không biết tạo vòng lặp như thế nào

Dùng hàm Mid & COLUMNS nhé:
PHP:
=MID($A2,COLUMNS($B:B)*2-1,2)
thêm file
 

File đính kèm

Web KT

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

Back
Top Bottom