Dò tìm và liệt kê các thông tin liên quan theo điều kiện mã lớp

  • Thread starter Thread starter lyhuynh
  • Ngày gửi Ngày gửi
Liên hệ QC

lyhuynh

Thành viên chính thức
Tham gia
18/1/11
Bài viết
94
Được thích
2
Bình thường, dùng hàm vlookup thì em biết làm, nhưng với trường hợp cột dò tìm ko phải là cột đầu tiên, mà ở giữa thì việc lấy dữ liệu phải làm sao. Em có file đính kèm, anh em diễn đàn coi và giúp em với. Em xin cám ơn !!!
 

File đính kèm

Bình thường, dùng hàm vlookup thì em biết làm, nhưng với trường hợp cột dò tìm ko phải là cột đầu tiên, mà ở giữa thì việc lấy dữ liệu phải làm sao. Em có file đính kèm, anh em diễn đàn coi và giúp em với. Em xin cám ơn !!!


Bình thường hàm vlookup cũng chỉ trả về được 1 giá trị tìm thấy, trong file bạn có 2 tên cùng mã lớp K01 --> xin hỏi bạn muốn lấy cả 2 tên hay thế nào ! <------

có khi công thức ô G19 bạn muốn như vậy :
PHP:
=IFERROR(INDEX($B$5:$F$14,SMALL(IF($E$5:$E$14=$H$16,ROW(INDIRECT("1:"&ROWS($B$5:$F$14))),""),ROWS($1:2)),1),"")<---- ctrl +shift + enter
muốn lấy dữ liệu cột nào thì sửa số 1 thành số tương ứng!
 
Lần chỉnh sửa cuối:
Bình thường hàm vlookup cũng chỉ trả về được 1 giá trị tìm thấy, trong file bạn có 2 tên cùng mã lớp K01 --> xin hỏi bạn muốn lấy cả 2 tên hay thế nào ! <------

Mình muốn lấy tất cả các giá trị nào liên quan tới mã lớp, tức là một lớp có thể có 2 hoặc 3 người, không dùng hàm vlookup, miễn là lấy được đầy đủ thông tin của mã lớp đó.
 
Mình muốn lấy tất cả các giá trị nào liên quan tới mã lớp, tức là một lớp có thể có 2 hoặc 3 người, không dùng hàm vlookup, miễn là lấy được đầy đủ thông tin của mã lớp đó.

Uhm thế thì công thức mình post tại bài số #2 có thể dùng được đấy ! bạn ngâm cứu xem !
 
Bình thường, dùng hàm vlookup thì em biết làm, nhưng với trường hợp cột dò tìm ko phải là cột đầu tiên, mà ở giữa thì việc lấy dữ liệu phải làm sao. Em có file đính kèm, anh em diễn đàn coi và giúp em với. Em xin cám ơn !!!
Trong một lớp thì có nhiều sinh viên tìm theo mã lớp để có mã sinh viên và họ tên thì mình nghĩ không thể.
Thay vì tìm theo mã lớp thì bạn đổi lại tìm theo mã Sv với mã Sv là mã duy nhất không trùng nhau cho tất cả các lớp

nếu mình không nhầm thì bạn muốn lọc theo mã lớp bạn dùng AvanFilter nhé
Nhờ các mod di chuyển giúp bài này về Top
Hi em nhần đổi sang khung lớn sao lại thành tạo chủ đề mới

http://www.giaiphapexcel.com/forum/showthread.php?81869-Giúp-em-hàm-dò-tìm-!!!
 

File đính kèm

Lần chỉnh sửa cuối:
Mình muốn lấy tất cả các giá trị nào liên quan tới mã lớp, tức là một lớp có thể có 2 hoặc 3 người, không dùng hàm vlookup, miễn là lấy được đầy đủ thông tin của mã lớp đó.
Dùng 1 name cho gọn công thức
Thân
 

File đính kèm

Mình muốn lấy tất cả các giá trị nào liên quan tới mã lớp, tức là một lớp có thể có 2 hoặc 3 người, không dùng hàm vlookup, miễn là lấy được đầy đủ thông tin của mã lớp đó.

Bài này dùng công thức mảng không có vấn đề (diễn đàn có đầy những bài tương tự)
Ở đây tôi muốn giới thiệu cho bạn 1 cách khác đơn giản hơn:
- Tạo cột phụ để đánh dấu các giá trị thỏa mản điều kiện. Cụ thể tại G5, gõ công thức:
Mã:
=IF($H$16=E5,MAX($G$4:$G4)+1,"")
kéo fill G5 đến G14. Cột phụ này sẽ đánh dấu những giá trị mà cột E = H16
- Ở phần báo cáo, cũng tạo cột phụ tại cột F. Cụ thể tại F19, gõ công thức:
Mã:
=IF(ROWS($1:1)>COUNTIF($E$5:$E$14,$H$16),"",ROWS($1:1))
kéo fill F19 đến F30
- Công thức cho G19:
Mã:
=IF($F19="","",LOOKUP($F19,$G$5:$G$14,B$5:B$14))
Kéo fill xuống dưới và sang phải
Xong!
 

File đính kèm

Bài này dùng công thức mảng không có vấn đề (diễn đàn có đầy những bài tương tự)
Ở đây tôi muốn giới thiệu cho bạn 1 cách khác đơn giản hơn:
- Tạo cột phụ để đánh dấu các giá trị thỏa mản điều kiện. Cụ thể tại G5, gõ công thức:
Mã:
=IF($H$16=E5,MAX($G$4:$G4)+1,"")
kéo fill G5 đến G14. Cột phụ này sẽ đánh dấu những giá trị mà cột E = H16
- Ở phần báo cáo, cũng tạo cột phụ tại cột F. Cụ thể tại F19, gõ công thức:
Mã:
=IF(ROWS($1:1)>COUNTIF($E$5:$E$14,$H$16),"",ROWS($1:1))
kéo fill F19 đến F30
- Công thức cho G19:
Mã:
=IF($F19="","",LOOKUP($F19,$G$5:$G$14,B$5:B$14))
Kéo fill xuống dưới và sang phải
Xong!
Hay wa bac ndu oi. Thanks bac !!!
 
Bình thường hàm vlookup cũng chỉ trả về được 1 giá trị tìm thấy, trong file bạn có 2 tên cùng mã lớp K01 --> xin hỏi bạn muốn lấy cả 2 tên hay thế nào ! <------

có khi công thức ô G19 bạn muốn như vậy :
PHP:
=IFERROR(INDEX($B$5:$F$14,SMALL(IF($E$5:$E$14=$H$16,ROW(INDIRECT("1:"&ROWS($B$5:$F$14))),""),ROWS($1:2)),1),"")<---- ctrl +shift + enter
muốn lấy dữ liệu cột nào thì sửa số 1 thành số tương ứng!

Chào ban,
Tôi đã nhập công thức vào bảng nhưng không ra kết quả, không biết sai ở chổ nào. Bạn vui lòng mở file chỉnh lại công thức và update lại giúp nha( tôi đã xóa những dòng và cột đầu không có dữ liêu sau đó ching lại array) . Cám ơn
 

File đính kèm

Chào ban,
Tôi đã nhập công thức vào bảng nhưng không ra kết quả, không biết sai ở chổ nào. Bạn vui lòng mở file chỉnh lại công thức và update lại giúp nha( tôi đã xóa những dòng và cột đầu không có dữ liêu sau đó ching lại array) . Cám ơn
IFERROR chỉ dùng được từ excel 2007 trở lên, --> với 2003 bạn tự vọc nhé!
 
Mình cũng học được diễn dàn bằng cách cho lọc AvanFilter tự động dùng VBA
nhờ Anh HUngpecc1 đã viết Code này kiểm tra giúp em khi sóa đỡ 1 tiêu đề lọc vẫn bị lỗi
Ví dụ xóa ô J19
 

File đính kèm

Lần chỉnh sửa cuối:
Mình cũng học được diễn dàn bằng cách cho lọc AvanFilter tự động dùng VBA
nhờ Anh HUngpecc1 đã viết Code này kiểm tra giúp em khi sóa đỡ 1 tiêu đề lọc vẫn bị lỗi
Ví dụ xóa ô J19

Tất nhiên rồi, bạn lọc theo tiêu đề , nếu mà không thấy tiêu đề advanced báo lỗi ngay !
để khắc phục có thể bổ sung thêm câu lệnh copy tiêu đề nữa là được !
[GPECODE=vb]
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$I$17" Then
Range("B4:D4,F4").Copy [G19]
[B4:F1000].AdvancedFilter 2, [I16:I17], [G19:J19]
End If
End Sub
[/GPECODE]
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom