Nhờ anh/chị giúp hàm dò tìm và lấy giá trị của 1 ô có điều kiện. (1 người xem)

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

tohongdieu

Thành viên chính thức
Tham gia
17/11/09
Bài viết
65
Được thích
1
Em gửi file nhờ anh/chị giúp hộ.
Em có bảng dò tìm nằm ở sh1, các giá trị ở cột D luôn khác nhau.
Ở sh2 em muốn lấy giá trị cột A để dò trong sh1. Nếu có giá trị nào trong cột A bằng một trong những giá trị ở cột D, thì cho kết quả tương ứng ở cột B bằng giá trị ô trên cùng trong vùng đó ở cột B (tức là = 1, hoặc 3, hoặc 5....). Em xin cám ơn.
 

File đính kèm

Em gửi file nhờ anh/chị giúp hộ.
Em có bảng dò tìm nằm ở sh1, các giá trị ở cột D luôn khác nhau.
Ở sh2 em muốn lấy giá trị cột A để dò trong sh1. Nếu có giá trị nào trong cột A bằng một trong những giá trị ở cột D, thì cho kết quả tương ứng ở cột B bằng giá trị ô trên cùng trong vùng đó ở cột B (tức là = 1, hoặc 3, hoặc 5....). Em xin cám ơn.

thử công thức này xem :
PHP:
=MAX(INDIRECT("sheet1!B1:B"& MATCH($A4,Sheet1!$D$1:$D$100,0)))-1
 
Cám ơn bạn. Nhưng không được bạn ơi, các số 1, 2, 3, 4, 5, 6.... thực ra là chuỗi chứ không phải số. nếu tôi đổi thành a, b, c, d.... thì sai mất.
 
Cám ơn bạn. Nhưng không được bạn ơi, các số 1, 2, 3, 4, 5, 6.... thực ra là chuỗi chứ không phải số. nếu tôi đổi thành a, b, c, d.... thì sai mất.

bạn còn sửa cái gì nữa ko?
nếu ko thì thử vậy
Mã:
C4=LOOKUP(2,1/(INDIRECT("Sheet1!$B$4:B" & MATCH(A4,Sheet1!$D$1:$D$29,0))<>"")/(INDIRECT("Sheet1!$B$5:B" & MATCH(A4,Sheet1!$D$1:$D$29,0)+1)<>""),INDIRECT("Sheet1!$B$4:B" & MATCH(A4,Sheet1!$D$1:$D$29,0)))
 
Lần chỉnh sửa cuối:
bạn còn sửa cái gì nữa ko?
nếu ko thì thử vậy
Mã:
C4=LOOKUP(2,1/(INDIRECT("Sheet1!$B$4:B" & MATCH(A4,Sheet1!$D$1:$D$29,0))<>"")/(INDIRECT("Sheet1!$B$5:B" & MATCH(A4,Sheet1!$D$1:$D$29,0)+1)<>""),INDIRECT("Sheet1!$B$4:B" & MATCH(A4,Sheet1!$D$1:$D$29,0)))


Cám ơn Let'GâuGâu rất nhiều.
Mình còn vấn đề nữa bạn ơi. Vẫn chưa giải quyết được. Xin lỗi mọi người vì file thật của mình rất nặng nên không thể up lên được. Vì vậy, đành gửi file tượng trưng nên thiếu chính xác, đã làm phiền mọi người. Let'GâuGâu giúp mình nhé. Mình vẫn gửi file đó nhưng đã sửa lại gần giống file của mình. Mình chỉ muốn dò tìm và lấy giá trị A, C, E hoặc B, D, F. Vì ở giữa chúng còn rất nhiều giá trị khác. Các ô "Số:" và "Ngày kiểm tra:" luôn ở bên trái các giá trị A, B, C, D, E, F như trong file (màu đỏ).
 

File đính kèm

Tại Ô B4=LOOKUP(2,1/(Sheet1!$D$4:$D$29=Sheet2!A4),Sheet1!$B$4:$B$29) có phải Bạn muốn ra kết quả như công thức này không ạ
 
Không phải bạn ah, ta lấy cột A sh2 so sánh với cột D sh1 nếu giá trị nào ở cột A sh2 = giá trị D sh1 thì sẽ trả kết quả ra cột B sh2 bằng ô tương ứng với vùng đó (B4 hoặc B13, hoặc B23)
 

File đính kèm

Thử công thức mảng này tại B4:
Mã:
=LOOKUP(2,1/(IF(Sheet1!$A$4:$A$29="Số:",ROW(Sheet1!$A$4:$A$29),"")<=MATCH(A4,Sheet1!D:D,0)),Sheet1!$B$4:$B$29)
Kết thúc bằng Ctrl-shift-enter nhé.
 
Thử công thức mảng này tại B4:
Mã:
=LOOKUP(2,1/(IF(Sheet1!$A$4:$A$29="Số:",ROW(Sheet1!$A$4:$A$29),"")<=MATCH(A4,Sheet1!D:D,0)),Sheet1!$B$4:$B$29)
Kết thúc bằng Ctrl-shift-enter nhé.

Không phải lúc nào cũng cần tới cấu trúc LOOKUP(2;1/x ...). Bản thân mảng
Mã:
IF(Sheet1!$A$4:$A$29="Số:";ROW(Sheet1!$A$4:$A$29);"")
là mảng được sắp xếp (các giá trị "" sẽ bị "lờ" đi), nếu không tìm thấy thì sẽ trả về giá trị lớn nhất mà nhỏ hơn giá trị cần tìm.
Nếu tôi không lầm thì chỉ cần như sau, khỏi phải tạo mảng kết quả so sánh "<=" rồi trên cơ sở đó tạo tiếp mảng nghịch đảo 1/x
Mã:
=LOOKUP(MATCH(A4;Sheet1!D:D;0);IF(Sheet1!$A$4:$A$29="Số:";ROW(Sheet1!$A$4:$A$29);"");Sheet1!$B$4:$B$29)
 
Cám ơn Let'GâuGâu rất nhiều.
Mình còn vấn đề nữa bạn ơi. Vẫn chưa giải quyết được. Xin lỗi mọi người vì file thật của mình rất nặng nên không thể up lên được. Vì vậy, đành gửi file tượng trưng nên thiếu chính xác, đã làm phiền mọi người. Let'GâuGâu giúp mình nhé. Mình vẫn gửi file đó nhưng đã sửa lại gần giống file của mình. Mình chỉ muốn dò tìm và lấy giá trị A, C, E hoặc B, D, F. Vì ở giữa chúng còn rất nhiều giá trị khác. Các ô "Số:" và "Ngày kiểm tra:" luôn ở bên trái các giá trị A, B, C, D, E, F như trong file (màu đỏ).

thêm một cách nữa để tham khảo
Mã:
B4=LOOKUP(2,1/(OFFSET(Sheet1!$A$4,,,MATCH(A4,Sheet1!$D$4:$D$29,0))="Số:"),(OFFSET(Sheet1!$B$4,,,MATCH(A4,Sheet1!$D$4:$D$29,0))))
 
Em cũng thêm 1 cách nữa ạ:=INDEX(Sheet1!$B$4:$B$29,MATCH(MATCH(A4,Sheet1!$D$4:$D$29,0),IF(Sheet1!$A$4:$A$29="Số:",ROW(Sheet1!$A$4:$A$29)-3,""),1))
Kết thúc bằng Ctrl-shift-enter nhé.
 
Em đã giải quyết được vấn đề. Xin cám ơn mọi người đã giúp đỡ. Cám ơn Let'GâuGâu!
 

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

Back
Top Bottom