Dò tìm trong nhều Sheet

Liên hệ QC

phihndhsp

Thành viên gạo cội
Tham gia
26/12/09
Bài viết
3,363
Được thích
2,487
Giới tính
Nam
Nghề nghiệp
Giáo Viên
Tôi có một số danh sách chứa mã học sinh tên học sinh, có điều là mã học sinh nằm ở bất kỳ sheet nào nhưng mỗi học sinh chỉ xuất hiện ở 1 danh sáchnào đó mà thôi

bây giờ ở sheet dò tìm, tôi muốn gõ mã học sinh thì tự động tên hiện ra, xin được các cao thủ cho ý kiến, xin cảm ơn
tôi có đính kèm File bên dưới, với 3 sheet DS1, DS2, DS3, và sheet dò tìm mà tôi muốn gõ mã học sinh tự động tìm ra tên học sinh
(dùng công thức thôi vì code VBA đã có rồi anh Ndu đã viết chạy rất tôt)
 

File đính kèm

  • dotim.xlsx
    11.4 KB · Đọc: 20
Lần chỉnh sửa cuối:
Nếu chỉ có 3 danh sách thì dùng 3 cái VLOOKUP kèm bẫy lỗi cho đơn giản
 
Tôi có một số danh sách chứa mã học sinh tên học sinh, có điều là mã học sinh nằm ở bất kỳ sheet nào nhưng mỗi học sinh chỉ xuất hiện ở 1 danh sáchnào đó mà thôi

bây giờ ở sheet dò tìm, tôi muốn gõ mã học sinh thì tự động tên hiện ra, xin được các cao thủ cho ý kiến, xin cảm ơn
tôi có đính kèm File bên dưới, với 3 sheet DS1, DS2, DS3, và sheet dò tìm mà tôi muốn gõ mã học sinh tự động tìm ra tên học sinh
(dùng công thức thôi vì code VBA đã có rồi anh Ndu đã viết chạy rất tôt)

Nếu không dùng VBA thì dò theo từng danh sách như bạn bebo021999 nói.
Không thôi thì dò theo tên sheet (Hơi phê).
 

File đính kèm

  • VLookUp.xls
    38 KB · Đọc: 29
Tôi có một số danh sách chứa mã học sinh tên học sinh, có điều là mã học sinh nằm ở bất kỳ sheet nào nhưng mỗi học sinh chỉ xuất hiện ở 1 danh sáchnào đó mà thôi

bây giờ ở sheet dò tìm, tôi muốn gõ mã học sinh thì tự động tên hiện ra, xin được các cao thủ cho ý kiến, xin cảm ơn
tôi có đính kèm File bên dưới, với 3 sheet DS1, DS2, DS3, và sheet dò tìm mà tôi muốn gõ mã học sinh tự động tìm ra tên học sinh
(dùng công thức thôi vì code VBA đã có rồi anh Ndu đã viết chạy rất tôt)
Ta làm như sau:
- Tại sheet DoTìm, gõ tên các sheet vào 1 cột phụ (chẳng hạn gõ vào cột N, từ N2 trở đi)
- Đặt name cho danh sách các sheet: Wks =OFFSET(DoTìm!$N$2,,,COUNTA(DoTìm!$N$2:$N$200),)
- Tại B2 của sheet DoTim, gõ công thức:
Mã:
=VLOOKUP(A5,INDIRECT("'"&LOOKUP(2,1/COUNTIF(INDIRECT("'"&Wks&"'!A2:A1000"),$A5),Wks)&"'!A2:B1000"),2,0)
Kéo fill xuống
Vậy thôi
Nói thêm:
- Có thể bẫy lỗi trong trường hợp không tìm thấy bằng công thức =SUMPRODUCT(COUNTIF(INDIRECT("'"&Wks&"'!A2:A1000"),$A5)) ---> Nếu nó >0 nghĩa là có tìm thấy và ngược lại
- Hoặc nếu bạn biết chắc rằng 1 mã dò tìm luôn tồn tại ở 1 sheet nào đó thì công thức có thể ngắn hơn:
Mã:
=IF($A5="","",VLOOKUP($A5,INDIRECT("'"&LOOKUP(2,1/COUNTIF(INDIRECT("'"&Wks&"'!A2:A1000"),$A5),Wks)&"'!A2:B1000"),2,0))
Vô vàn cách
Xem file
 

File đính kèm

  • dotim.xlsx
    12.1 KB · Đọc: 66
Ta làm như sau:
- Tại sheet DoTìm, gõ tên các sheet vào 1 cột phụ (chẳng hạn gõ vào cột N, từ N2 trở đi)
- Đặt name cho danh sách các sheet: Wks =OFFSET(DoTìm!$N$2,,,COUNTA(DoTìm!$N$2:$N$200),)
- Tại B2 của sheet DoTim, gõ công thức:
Mã:
=VLOOKUP(A5,INDIRECT("'"&LOOKUP(2,1/COUNTIF(INDIRECT("'"&Wks&"'!A2:A1000"),$A5),Wks)&"'!A2:B1000"),2,0)
Kéo fill xuống
Vậy thôi
Nói thêm:
- Có thể bẫy lỗi trong trường hợp không tìm thấy bằng công thức =SUMPRODUCT(COUNTIF(INDIRECT("'"&Wks&"'!A2:A1000"),$A5)) ---> Nếu nó >0 nghĩa là có tìm thấy và ngược lại
- Hoặc nếu bạn biết chắc rằng 1 mã dò tìm luôn tồn tại ở 1 sheet nào đó thì công thức có thể ngắn hơn:
Mã:
=IF($A5="","",VLOOKUP($A5,INDIRECT("'"&LOOKUP(2,1/COUNTIF(INDIRECT("'"&Wks&"'!A2:A1000"),$A5),Wks)&"'!A2:B1000"),2,0))
Vô vàn cách
Xem file
anh Ndu có thể giải thích công thức này rõ hơn 1 tí nữa
=LOOKUP(2,1/COUNTIF(INDIRECT("'"&Wks&"'!A2:A1000"),$A7),Wks)
em chạy công thức thấy rất tốt nhưng mà hiểu hơi lờ tờ mờ, xin được chỉ giáo thêm
 
anh Ndu có thể giải thích công thức này rõ hơn 1 tí nữa
=LOOKUP(2,1/COUNTIF(INDIRECT("'"&Wks&"'!A2:A1000"),$A7),Wks)
em chạy công thức thấy rất tốt nhưng mà hiểu hơi lờ tờ mờ, xin được chỉ giáo thêm
Anh xem tạm link này, sư phụ ndu giải thích rõ về Lookup lấy giá trị thế nào trong công thức trên, trên GPE còn nhiều bài giải thích về cái này rùi ạ. Anh vận dụng và tìm câu trả cho riêng mình nhé. Thanks!
Công thức lấy giá trị nằm ở vị trí cuối cùng trong cột

Bài #9
 
Lần chỉnh sửa cuối:
anh Ndu có thể giải thích công thức này rõ hơn 1 tí nữa
=LOOKUP(2,1/COUNTIF(INDIRECT("'"&Wks&"'!A2:A1000"),$A7),Wks)
em chạy công thức thấy rất tốt nhưng mà hiểu hơi lờ tờ mờ, xin được chỉ giáo thêm
Công thức ấy tìm xem giá trị A7 nằm ở sheet nào (kết quả = DS2, nghĩa là A2 nằm ở sheet DS2
Có được tên sheet rồi, "ráp" vào INDIRECT, kết hợp VLOOKUP nữa là tìm ra thôi
 
Em không hiểu phần khi chạy thấy tất cả là lỗi Value, mà khi ra kết quả thì lại có giá trị 1, em thắc mắc ở đó thôi, còn về cách chạy Lookup em cũng hiểu hơi khá khá rồi, xin cảm ơn
Hiểu rồi, xin cảm ơn anh Ndu các cao thủ nhiều
Picture1.jpg
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom