Hàm lookup cho kết quả không đúng?

Liên hệ QC

Loan1989

Thành viên hoạt động
Tham gia
6/6/08
Bài viết
188
Được thích
20
Theo mình biết thì hàm lookup dạng mảng trả về giá trị cuối cùng của dòng (ô), nhưng như file đính kèm thì hàm này cho kết quả không đúng. Có bạn nào biết lý do không ?
 

File đính kèm

  • Lookup.xls
    15.5 KB · Đọc: 24
Theo mình biết thì hàm lookup dạng mảng trả về giá trị cuối cùng của dòng (ô), nhưng như file đính kèm thì hàm này cho kết quả không đúng. Có bạn nào biết lý do không ?
Kết quả chỉ đúng khi cột C được sort tăng dần
Nếu dữ liệu tùy ý (không sort) thì phải dùng LOOKUP theo kiểu khác:
PHP:
=LOOKUP(2,1/($C$3:$C$9=F3),$D$3:$D$9)
 
Theo mình biết thì hàm lookup dạng mảng trả về giá trị cuối cùng của dòng (ô), nhưng như file đính kèm thì hàm này cho kết quả không đúng. Có bạn nào biết lý do không ?

Không phải là không đúng, nó đã trả kết quả là 1 rồi còn gì?

Phải luôn nhớ rằng, các hàm dò tìm luôn luôn tìm kiếm ở giá trị đầu tiên trong mảng mà thôi. Khi đã tìm thấy giá trị, nó sẽ không dò tiếp mà nhận ngay giá trị mà nó tìm thấy.
 
Kết quả chỉ đúng khi cột C được sort tăng dần
Nếu dữ liệu tùy ý (không sort) thì phải dùng LOOKUP theo kiểu khác:
PHP:
=LOOKUP(2,1/($C$3:$C$9=F3),$D$3:$D$9)
Công thức của bạn đúng khi không cần sort dữ liệu nhưng CT này cao siêu quá mình chả hiểu.Thôi thì để ra kết quả đúng thì sort trước vậy.
Nhưng mình thấy file bạn làm lookup_vector có cần sort đâu mà vẫn cho kết quả đúng
 

File đính kèm

  • Lookup dang vector.xlsx
    27.7 KB · Đọc: 9
Không phải là không đúng, nó đã trả kết quả là 1 rồi còn gì?

Phải luôn nhớ rằng, các hàm dò tìm luôn luôn tìm kiếm ở giá trị đầu tiên trong mảng mà thôi. Khi đã tìm thấy giá trị, nó sẽ không dò tiếp mà nhận ngay giá trị mà nó tìm thấy.
Thế sao b và c lại lấy giá trị ở cột cuối cùng ?
 
Công thức của bạn đúng khi không cần sort dữ liệu nhưng CT này cao siêu quá mình chả hiểu.Thôi thì để ra kết quả đúng thì sort trước vậy.
Nhưng mình thấy file bạn làm lookup_vector có cần sort đâu mà vẫn cho kết quả đúng
Ở file này đúng là dữ liệu không sort trước nhưng giá trị tìm là BỰ NHẤT nên nó sẽ luôn lấy kết quả cuối cùng
Cũng giống như file của bạn, nếu dùng công thức =LOOKUP("z",$C$3:$D$9) thì nó sẽ luôn cho kết quả = 16 (vì z BƯ NHẤT trong bảng ký tự Alphabet)
Hợp lý chưa?
----------------------
Thế sao b và c lại lấy giá trị ở cột cuối cùng ?
Dữ liệu chưa được sort thì sẽ... hên xui ---> Hên thì nó đúng ---> Tóm lại: Bạn cứ làm đúng quy định thì khỏi cần thắc mắc (quy định là sort trước)
---------------------
Thế sao b và c lại lấy giá trị ở cột cuối cùng ?
Bôi đên đoạn 1/($C$3:$C$9=F3) trên thanh Formula rồi bấm F9, tự nhiên sẽ hiểu
 
Lần chỉnh sửa cuối:
Bôi đên đoạn 1/($C$3:$C$9=F3) trên thanh Formula rồi bấm F9, tự nhiên sẽ hiểu

Như vậy nó sẽ tìm trong mảng, nếu giá trị 1 (TRUE) thì sẽ lấy, nhưng tại sao nó lại lấy 1 ở cuối cùng mà không phải lấy ở chỗ khác?

Và tại sao đặt là 2 vậy?
 
Lần chỉnh sửa cuối:
Như vậy nó sẽ tìm trong mảng, nếu giá trị 1 (TRUE) thì sẽ lấy, nhưng tại sao nó lại lấy 1 ở cuối cùng mà không phải lấy ở chỗ khác?

Và tại sao đặt là 2 vậy?
Hàm LOOKUP này hay ở chổ nó bỏ qua mấy phần tử bị lỗi ---> trong mảng này, ngoài phần tử lỗi thì số 1 là số lớn nhất ---> Vậy khi ta tìm số 2 trong mảng này thì nó sẽ tìm số 1 cuối cùng là điều đương nhiên rồi (thay số 2 thành số gì cũng được, miễn >1 )
Giống như tôi ví dụ ở trên công thức LOOKUP("z",$C$3:$D$9) đấy thôi
Cái này có từ lâu trên diễn đàn rồi:
http://www.giaiphapexcel.com/forum/showthread.php?7669-Những-công-thức-độc-đáo
mà hình như Nghĩa chưa xem?
 
Hàm LOOKUP này hay ở chổ nó bỏ qua mấy phần tử bị lỗi ---> trong mảng này, ngoài phần tử lỗi thì số 1 là số lớn nhất ---> Vậy khi ta tìm số 2 trong mảng này thì nó sẽ tìm số 1 cuối cùng là điều đương nhiên rồi (thay số 2 thành số gì cũng được, miễn >1 )
Giống như tôi ví dụ ở trên công thức LOOKUP("z",$C$3:$D$9) đấy thôi
Cái này có từ lâu trên diễn đàn rồi:
http://www.giaiphapexcel.com/forum/showthread.php?7669-Những-công-thức-độc-đáo
mà hình như Nghĩa chưa xem?

Vâng, giờ em đã hiểu! Em đã xem qua những công thức độc đáo này rồi, có nhiều thắc mắc em chưa thể hỏi từng trường hợp cụ thể thôi, giờ đã hiểu tại sao phải lấy 1 chia cho mảng, rồi dùng 2 để tìm, nó xét không thấy giá trị 2 thì sẽ chọn giá trị True cuối cùng. Cảm ơn Thầy nhiều!
 
Web KT
Back
Top Bottom