Hàm Lookup dò tìm ngược từ hàng dưới cùng lên trên???

hieutrungdtvt

Thành viên mới
Tham gia ngày
11 Tháng sáu 2013
Bài viết
10
Điểm
0
Tuổi
30
Chào các anh chị trong diễn đàn,

Em có một bảng giá trị ghi log các sự kiện xảy ra. Có nghĩa là 1 sự kiện có thể xảy ra nhiều hơn 1 lần với thời gian khác nhau (mỗi sự kiện diễn ra đều có 1 thời gian bắt đầu và thời gian kết thúc). Vì dụ như trong file đính kèm.

Trong đó dữ liệu tham chiếu để dò tìm thì có 2 giá trị ( ví dụ EXTERNAL AL 1 và WBTS-206 H12001) nên em dùng hàm lookup như bên dưới:
LOOKUP(1,1/((cotB="EXTERNAL AL 1")*(cotC="WBTS-206 H12001")),CotE)

Do sự kiện có thể xảy ra nhiều lần, nên em muốn lấy mốc thời gian của sự kiện lần đầu xảy ra (ví dụ theo như trên là 2013-06-15 08:13:08.00) và lần cuối cùng kết thúc (2013-06-15 13:31:52.00).

Tuy nhiên làm lookup chỉ dò tìm giá trị từ trên xuống dưới nên lúc nào em cũng chỉ tìm được sự kiện xảy ra đầu tiên.

Em có thử tìm các hàm UDF nhưng chỉ dùng cho hàm Vlookup, em chưa biết sửa để dụng dụng hàm lookup 2 điều kiện như trên.

Mong các cao nhân chỉ giáo, giúp đở em vụ này. Em cám ơn rất nhiều.
 

File đính kèm

Lần chỉnh sửa cuối:

Cá ngừ F1

Thành viên gắn bó
Thành viên BQT
Moderator
Tham gia ngày
1 Tháng một 2008
Bài viết
1,966
Điểm
910
Tuổi
36
Theo ý mình hiểu thì mốc thời gian đã sếp thứ tự từ trên xuống dưới rồi, mình thử hàm này bạn xem có đùng ý ko nhé...
 

File đính kèm

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia ngày
5 Tháng sáu 2008
Bài viết
30,166
Điểm
11,910
Chào các anh chị trong diễn đàn,

Em có một bảng giá trị ghi log các sự kiện xảy ra. Có nghĩa là 1 sự kiện có thể xảy ra nhiều hơn 1 lần với thời gian khác nhau (mỗi sự kiện diễn ra đều có 1 thời gian bắt đầu và thời gian kết thúc). Vì dụ như trong file đính kèm.

Trong đó dữ liệu tham chiếu để dò tìm thì có 2 giá trị ( ví dụ EXTERNAL AL 1 và WBTS-206 H12001) nên em dùng hàm lookup như bên dưới:
LOOKUP(1,1/((cotB="EXTERNAL AL 1")*(cotC="WBTS-206 H12001")),CotE)

Do sự kiện có thể xảy ra nhiều lần, nên em muốn lấy mốc thời gian của sự kiện lần đầu xảy ra (ví dụ theo như trên là 2013-06-15 08:13:08.00) và lần cuối cùng kết thúc (2013-06-15 13:31:52.00).

Tuy nhiên làm lookup chỉ dò tìm giá trị từ trên xuống dưới nên lúc nào em cũng chỉ tìm được sự kiện xảy ra đầu tiên.

Em có thử tìm các hàm UDF nhưng chỉ dùng cho hàm Vlookup, em chưa biết sửa để dụng dụng hàm lookup 2 điều kiện như trên.

Mong các cao nhân chỉ giáo, giúp đở em vụ này. Em cám ơn rất nhiều.
1> Tìm giá trị cuối cùng thỏa điều kiện
Mã:
=LOOKUP(2,1/(Cot B="EXTERNAL AL 1")/(Cot C="WBTS-206  H12001"),Cot E)
2> Tìm giá trị đầu tiên thỏa điều kiện
Mã:
=INDEX(Cot E,MATCH(1,(Cot B="EXTERNAL AL 1")*(Cot C="WBTS-206  H12001"),0))
Công thức dùng INDEX phải được kết thúc bằng tổ hợp phím Ctrl + Shift + Enter
Tùy bạn quyết định chọn dùng cái nào
 

hungpecc1

Thành viên gắn bó
Tham gia ngày
24 Tháng tám 2012
Bài viết
1,605
Điểm
560
Tuổi
32
Chào các anh chị trong diễn đàn,

Em có một bảng giá trị ghi log các sự kiện xảy ra. Có nghĩa là 1 sự kiện có thể xảy ra nhiều hơn 1 lần với thời gian khác nhau (mỗi sự kiện diễn ra đều có 1 thời gian bắt đầu và thời gian kết thúc). Vì dụ như trong file đính kèm.

Trong đó dữ liệu tham chiếu để dò tìm thì có 2 giá trị ( ví dụ EXTERNAL AL 1 và WBTS-206 H12001) nên em dùng hàm lookup như bên dưới:
LOOKUP(1,1/((cotB="EXTERNAL AL 1")*(cotC="WBTS-206 H12001")),CotE)

Do sự kiện có thể xảy ra nhiều lần, nên em muốn lấy mốc thời gian của sự kiện lần đầu xảy ra (ví dụ theo như trên là 2013-06-15 08:13:08.00) và lần cuối cùng kết thúc (2013-06-15 13:31:52.00).

Tuy nhiên làm lookup chỉ dò tìm giá trị từ trên xuống dưới nên lúc nào em cũng chỉ tìm được sự kiện xảy ra đầu tiên.

Em có thử tìm các hàm UDF nhưng chỉ dùng cho hàm Vlookup, em chưa biết sửa để dụng dụng hàm lookup 2 điều kiện như trên.

Mong các cao nhân chỉ giáo, giúp đở em vụ này. Em cám ơn rất nhiều.

không hiểu ý bạn lắm:
* Nếu muốn lấy 1 giá trị sau cùng thì Lookup phải viết như vậy:
PHP:
=LOOKUP(2,1/(B2:B7=B2)/(C2:C7=C2),E2:E7)
* Còn nếu muốn liệt kê cả 2 giá trị thì phải dùng công thức khác, hoặc kết hợp với hàm lookup bạn viết ở trên
 

hieutrungdtvt

Thành viên mới
Tham gia ngày
11 Tháng sáu 2013
Bài viết
10
Điểm
0
Tuổi
30
1> Tìm giá trị cuối cùng thỏa điều kiện
Mã:
=LOOKUP(2,1/(Cot B="EXTERNAL AL 1")/(Cot C="WBTS-206  H12001"),Cot E)
2> Tìm giá trị đầu tiên thỏa điều kiện
Mã:
=INDEX(Cot E,MATCH(1,(Cot B="EXTERNAL AL 1")*(Cot C="WBTS-206  H12001"),0))
Công thức dùng INDEX phải được kết thúc bằng tổ hợp phím Ctrl + Shift + Enter
Tùy bạn quyết định chọn dùng cái nào
Em rất cám ơn anh đã giúp đỡ.
Em thử hàm lookup đầu tiên thì nó đã chạy, nhưng trường hợp sự kiện chỉ xuất hiện 1 lần thì có sự kiện hàm cho đúng, có sự kiện lại không tìm thấy?

Anh có thể giải thích cách thay đổi được không ạ. Em thấy chỉ cần thay số 1 của hàm thành số 2 thì hàm đã có thể lookup ngược được rồi.

Em cám ơn anh nhiều
 

hieutrungdtvt

Thành viên mới
Tham gia ngày
11 Tháng sáu 2013
Bài viết
10
Điểm
0
Tuổi
30
không hiểu ý bạn lắm:
* Nếu muốn lấy 1 giá trị sau cùng thì Lookup phải viết như vậy:
PHP:
=LOOKUP(2,1/(B2:B7=B2)/(C2:C7=C2),E2:E7)
* Còn nếu muốn liệt kê cả 2 giá trị thì phải dùng công thức khác, hoặc kết hợp với hàm lookup bạn viết ở trên
Ý là em sẽ lọc lại sự kiện, lấy thời gian bắt đầu là thời gian bắt đầu của sự kiện xảy ra đầu tiên, thời gian kết thúc là thời gian kết thúc của sự kiện xảy ra cuối cùng. Em dùng hàm của anh @ndu96081631 giống hàm anh gửi, thì sự kiện xảy ra 1 lần có bị trục trặc, em đang thử hàm index.
 

Cá ngừ F1

Thành viên gắn bó
Thành viên BQT
Moderator
Tham gia ngày
1 Tháng một 2008
Bài viết
1,966
Điểm
910
Tuổi
36
Bạn đẩy file lên đi, mng ko ngại giúp bạn đâu...
 

hieutrungdtvt

Thành viên mới
Tham gia ngày
11 Tháng sáu 2013
Bài viết
10
Điểm
0
Tuổi
30
Cám ơn mọi người đã giúp đỡ.
Hàm của anh ndu96081631 đã hoat động tốt rồi. Do có một số sự kiện không có thời gian kết thúc nên bị lỗi mà em không kiểm tra kỹ.
Em cám ơn rất nhiều ạ.
Chúc các anh chị luôn vui khỏe, thành công!
 

hoangtuaotrang_hp_vn

Thành viên hoạt động
Tham gia ngày
17 Tháng năm 2009
Bài viết
158
Điểm
380
Tuổi
32
Vấn đề này em đang cố giải mà ko ra được, mong anh chị và các thày trên diễn đàn giúp đỡ, thực sự thì em ko hiểu vấn đề mình đang bị mắc ở giải pháp nào, nên up vào đây nếu không đúng chủ đề thì mong anh chị góp ý ạ, yêu cầu ở trong file đính kém ạ:

Do tim nguoc.jpg
 

File đính kèm

bebo021999

Thành viên gạo cội
Tham gia ngày
26 Tháng một 2011
Bài viết
3,531
Điểm
560
Vấn đề của bạn chính là tìm ngày nhỏ hơn lớn nhất, sau đó trả về ngày ở ô bên cạnh
Dùng LOOKUP để xác định ngày Next của ô Z8:
Mã:
=LOOKUP(Z$8,$E$13:$W$13,$F$13:$X$13)
Sau đó dùng KQ này so sánh với Z8 để đưa vào CF của ô Z13 (chắc bạn biết làm CF rồi)
 
Top