Lọc dữ liệu từ bảng trả về nhiều giá trị hàng

Liên hệ QC

Shadow SinX

Thành viên mới
Tham gia
16/6/09
Bài viết
12
Được thích
0
Các bạn theo dõi file đính kèm cho dễ hình dung nhé.
Mình có 2 sheet 1 và 2.

Ở sheet 2. hàng đầu là group, phía dưới là các sản phẩm con của group đó.

Mình muốn ở sheet 1. cột đầu là sản phẩm con. mình muốn lọc dữ liệu sao cho ở mỗi sản phẩm. nếu sản phẩm đó nằm ở group nào ở sheet 2 thì liệt kê ra.

vd: sản phẩm C1002 nằm ở 3 group C001, C002 và C003.

P/s: vì file này mình trích ra 1 phần thôi, file gốc nó nhiều hàng và cột hơn rất nhiều nên đừng nói mình làm thủ công là Find rồi điền vào nha.

Cám ơn các bạn.
 

File đính kèm

  • Book1.xlsx
    9.9 KB · Đọc: 41
Các bạn theo dõi file đính kèm cho dễ hình dung nhé.
Mình có 2 sheet 1 và 2.

Ở sheet 2. hàng đầu là group, phía dưới là các sản phẩm con của group đó.

Mình muốn ở sheet 1. cột đầu là sản phẩm con. mình muốn lọc dữ liệu sao cho ở mỗi sản phẩm. nếu sản phẩm đó nằm ở group nào ở sheet 2 thì liệt kê ra.

vd: sản phẩm C1002 nằm ở 3 group C001, C002 và C003.

P/s: vì file này mình trích ra 1 phần thôi, file gốc nó nhiều hàng và cột hơn rất nhiều nên đừng nói mình làm thủ công là Find rồi điền vào nha.

Cám ơn các bạn.

Bạn xem trong file đính kèm
 

File đính kèm

  • Book1(1).xls
    49.5 KB · Đọc: 58
Bạn có thể giải thích giúp mình với mình muốn áp dụng vào file khác thì tạo hình con heo đó làm sao?
 
Bạn có thể giải thích giúp mình với mình muốn áp dụng vào file khác thì tạo hình con heo đó làm sao?

Muốn ad cho file xyz bạn làm như sau
1. Open file xyz (để cho chắc cú thì bạn đóng các file khác đang mở)
2. Nhấn Alt+F11, chọn Insert-Module
3. Chép đoạn mã dưới đây vào vùng soạn thảo code
Mã:
Sub st()
Dim r(), cell As Range
Set g = Sheets("[B][COLOR=#ff0000]sheet2[/COLOR][/B]").[[B][COLOR=#ff0000]C2:I22[/COLOR][/B]]
For Each cell In Selection
j = 1
c = WorksheetFunction.CountIf(g, cell)
If c > 0 Then
ReDim r(1 To 1, 1 To c)
For i = 1 To g.Columns.Count
If WorksheetFunction.CountIf(g.Columns(i), cell) Then r(1, j) = g(1, i): j = j + 1
Next
cell.Offset(, 1).Resize(, c) = r
End If
Next
End Sub
4. Lưu ý sửa các chỗ màu đỏ trong đoạn mã trên đây cho phù hợp với dữ liệu trong file xyz
5. Quay lại sheet1, vẽ hoặc chèn một hình tại vị trí thích hợp (không nhất thiết phải là con heo)
6. Right click on hình vừa tạo, select Assign Macro-Macro Name (chọn st) . OK
7. Chọn vùng mã hàng (code), Click on hình đã tạo ở trên để xem kết quả
 
Muốn ad cho file xyz bạn làm như sau
1. Open file xyz (để cho chắc cú thì bạn đóng các file khác đang mở)
2. Nhấn Alt+F11, chọn Insert-Module
3. Chép đoạn mã dưới đây vào vùng soạn thảo code
Mã:
Sub st()
Dim r(), cell As Range
Set g = Sheets("[B][COLOR=#ff0000]sheet2[/COLOR][/B]").[[B][COLOR=#ff0000]C2:I22[/COLOR][/B]]
For Each cell In Selection
j = 1
c = WorksheetFunction.CountIf(g, cell)
If c > 0 Then
ReDim r(1 To 1, 1 To c)
For i = 1 To g.Columns.Count
If WorksheetFunction.CountIf(g.Columns(i), cell) Then r(1, j) = g(1, i): j = j + 1
Next
cell.Offset(, 1).Resize(, c) = r
End If
Next
End Sub
4. Lưu ý sửa các chỗ màu đỏ trong đoạn mã trên đây cho phù hợp với dữ liệu trong file xyz
5. Quay lại sheet1, vẽ hoặc chèn một hình tại vị trí thích hợp (không nhất thiết phải là con heo)
6. Right click on hình vừa tạo, select Assign Macro-Macro Name (chọn st) . OK
7. Chọn vùng mã hàng (code), Click on hình đã tạo ở trên để xem kết quả
TỪ ý tưởng của bạn mình muốn bạn có thể sữa code để có thể thực hiện như thế này được không? yêu cầu mình đã ghi trong file
 

File đính kèm

  • thong ke dh.xls
    36.5 KB · Đọc: 16
TỪ ý tưởng của bạn mình muốn bạn có thể sữa code để có thể thực hiện như thế này được không? yêu cầu mình đã ghi trong file

Bạn xem trong file đính kèm
Lưu ý sửa tên "sheet1", "sheet2", [B1], [C2] trong sub phù hợp với dữ liệu trong file thực
 

File đính kèm

  • thong%20ke%20dh(1).xls
    49.5 KB · Đọc: 28
Lần chỉnh sửa cuối:
tôi vẫn ko hiểu, bạn thử qua sheet1 thêm hoặc bớt tên rồi xem kết quả sheet2 có cập nhật ko?
fiel của mình mục đích là thế này: nếu có 1 hs đậu đại học thì mình chỉ cần nhập tên học sinh đó vào các trường a,b,c .... ở sheet 2 (vì có thể có hs đậu 2-3 trường). sau đó quay sang sheet 1 chỉ cần nhập tên hs này ở cột code thì tự động cập nhật xem hs này đậu những trường nào?sheet 1 giống như 1 sheet thống kê vậy.
mình mưốn code chạy nhanh hơn và muốn định dạng ( chia ô, định dạng chữ .....) sheet1, nhưng khi thêm dữ liệu mới ở sheet 2 thì lại mất đinh dạng của sheet 1.
 
Lần chỉnh sửa cuối:
fiel của mình mục đích là thế này: nếu có 1 hs đậu đại học thì mình chỉ cần nhập tên học sinh đó vào các trường a,b,c .... ở sheet 2 (vì có thể có hs đậu 2-3 trường). sau đó quay sang sheet 1 chỉ cần nhập tên hs này ở cột code thì tự động cập nhật xem hs này đậu những trường nào?sheet 1 giống như 1 sheet thống kê vậy.
mình mưốn code chạy nhanh hơn và muốn định dạng ( chia ô, định dạng chữ .....) sheet1, nhưng khi thêm dữ liệu mới ở sheet 2 thì lại mất đinh dạng của sheet 1.

Làm tiếp chủ đề này nha,
bây giờ làm ngược lại, chép bên sheet2 qua sheet1
khi bạn nhập tên vào cột b sheet1, nó copy bên sheet2 qua
chỉ mới chép số liệu thôi chưa làm định dạng
 

File đính kèm

  • FindAll.rar
    14.6 KB · Đọc: 4
Làm tiếp chủ đề này nha,
bây giờ làm ngược lại, chép bên sheet2 qua sheet1
khi bạn nhập tên vào cột b sheet1, nó copy bên sheet2 qua
chỉ mới chép số liệu thôi chưa làm định dạng
vẫn chưa được bạn ơi, ý mình là thế này nhé:
do giấy báo đại học từng trường ko gửi về cùng 1 lúc mà gửi về rải rác. vì vậy 1 học sinh có thể trúng tuyển 2,3 trường khác nhau. mình muốn khi có 1 giấy báo của 1 học sinh ANH trúng tuyển trường D chẳng hạn , thì mình chỉ cần nhập tên học sinh ANH vào cột B sheet 1, và nhập tên học sinh ANH vào bất kì cell nào của "TRƯỜNG D" ở sheet 2.khi đó tại sheet1 sẽ lập tức thống kê đúng trường hs ANH trúng tuyển. nếu sau này hs ANH tiếp tục trúng tuyển thêm trường F nữa thì tôi chỉ cần nhập tên hs ANH vào cột trường F ở sheet 2 mà không cần quan tâm học sinh này đã có tên mấy lần rồi, khi đó sheest1 tự đọng thống kê thêm trườngF cho học sinh ANH mà không lặp lại tên ở cột B sheet1.bạn thử xem có hướng giải quyết không nhé. cảm ơn bạn nhiều
 
vẫn chưa được bạn ơi, ý mình là thế này nhé:
do giấy báo đại học từng trường ko gửi về cùng 1 lúc mà gửi về rải rác. vì vậy 1 học sinh có thể trúng tuyển 2,3 trường khác nhau. mình muốn khi có 1 giấy báo của 1 học sinh ANH trúng tuyển trường D chẳng hạn , thì mình chỉ cần nhập tên học sinh ANH vào cột B sheet 1, và nhập tên học sinh ANH vào bất kì cell nào của "TRƯỜNG D" ở sheet 2.khi đó tại sheet1 sẽ lập tức thống kê đúng trường hs ANH trúng tuyển. nếu sau này hs ANH tiếp tục trúng tuyển thêm trường F nữa thì tôi chỉ cần nhập tên hs ANH vào cột trường F ở sheet 2 mà không cần quan tâm học sinh này đã có tên mấy lần rồi, khi đó sheest1 tự đọng thống kê thêm trườngF cho học sinh ANH mà không lặp lại tên ở cột B sheet1.bạn thử xem có hướng giải quyết không nhé. cảm ơn bạn nhiều

khó nhỉ!!!@!##
thử một lần nữa, không đúng thì chạy làng luôn
 

File đính kèm

  • FindAll.rar
    13.3 KB · Đọc: 4
Lần chỉnh sửa cuối:
khó nhỉ!!!@!##
thử một lần nữa, không đúng thì chạy làng luôn
vẫn không được bạn ơi mình thấy file dưới này tậm ổn rồi nhờ bạn sửa code để có thể định dạng các cột tiêu đề ... với. code này không hiêu sao mỗi lần cập nhật dữ liệu lại mất định dạng
 

File đính kèm

  • THONG KE DS HỌC SINH ĐẬU ĐẠI HỌC 2014.rar
    15.8 KB · Đọc: 6
vẫn không được bạn ơi mình thấy file dưới này tậm ổn rồi nhờ bạn sửa code để có thể định dạng các cột tiêu đề ... với. code này không hiêu sao mỗi lần cập nhật dữ liệu lại mất định dạng
Thử file này thử xem.
 

File đính kèm

  • TK_HS_DAU_DAIHOC.rar
    20.9 KB · Đọc: 13
cảm ơn bạn nhé.mình muốn bạn giúp thêm chút
có file làm rồi nhưng giờ muôn sửa code chút cho ổn :nhờ bạn giúp thêm cái file đính kèm: mình muốn khi nhập thêm ngày nghỉ vào cột ngày ngỉ ở sheet ĐIỂM DANH GV thì các NGÀY NGHỈ này tự động sắp xếp theo thứ tự ngày tháng năm. cảm ơn bạn nhiều nhé
 

File đính kèm

  • ĐIỂM DANH GV 2013-2014.rar
    19.2 KB · Đọc: 8
Lần chỉnh sửa cuối:
cảm ơn bạn nhé.mình muốn bạn giúp thêm chút
có file làm rồi nhưng giờ muôn sửa code chút cho ổn :nhờ bạn giúp thêm cái file đính kèm: mình muốn khi nhập thêm ngày nghỉ vào cột ngày ngỉ ở sheet NHẬP thì các NGÀY NGHỈ này tự động sắp xếp theo thứ tự ngày tháng năm. cảm ơn bạn nhiều nhé
Có biết sheet nào là sheet NHẬP thì "chết liền".
Trong Sheet Điểm danh GV, ai nghỉ ngày nào thì cập nhật ngày đó, sao phải nhập tùm lum rồi lại Sort nhỉ?
Sheet LOC, nếu GV nghỉ cỡ 15 ngày thì sao ghi ra hết được ta?
 
Web KT
Back
Top Bottom