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

Liên hệ QC

hieutrungdtvt

Thành viên mới
Tham gia
11/6/13
Bài viết
10
Được thích
1
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

  • test.xlsx
    8.7 KB · Đọc: 232
Lần chỉnh sửa cuối:
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

  • test.xlsx
    9.1 KB · Đọc: 227
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
 
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
 
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
 
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.
 
Bạn đẩy file lên đi, mng ko ngại giúp bạn đâu...
 
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!
 
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

  • Tim kiem nguoc.xls
    432.5 KB · Đọc: 133
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)
 
Web KT
Back
Top Bottom