Có khi nào hàm Lookup không thể thay thế được Vlookup

Liên hệ QC
Em vẫn biết tìm thế là chuẩn nhất, nhưng em muốn tìm hiểu viết như em tại sao kết quả bị sai.
-------------------
(Mặc dù trong cột đó là tìm theo phương pháp đúng mà).

Bạn quên mấy bài đầu topic này rồi. Lookup dò tìm thông thường đòi hỏi dữ liệu cột dò tìm phải được sort ascending. Sau khi sort ascending, nó sẽ cho số đúng nếu tìm thấy hoặc số gần đúng nếu không tìm thấy.

Công thức của bạn tìm 360 trong 1 cột bắt đầu là 200, kế là 300, kế là 20, kế là 432. Nó dò từ trên xuống thấy số đầu tiên lớn hơn 360 là 432, nó sẽ lùi lại lấy số bên trên 432 là 20. Chiếu sang cột A là 10.

Bạn test bằng cách thay số 20 thành 370, số đầu tiên >360 là 370, lui lại sẽ lấy số trên nó là 300, chiếu sang cột A, kết quả là 2.
 
Giải thích lại cho công thức thứ 2 (của hong.van) tại sao đúng:

=LOOKUP(2,1/(B2:B17=E4),A2:A17)

(B2:B17=E4) tạo ra 1 mảng mang các giá tri True, False

Lấy 1 chia các giá trị True, False sẽ cho các giá trị 1, #DIV/0!, trong đó số lớn nhất là 1.

Số lớn nhất là 1, mà lại đi tìm 2 thì chắc chắn không có. Tìm đến cuối vẫn không có thì nó nhảy lùi lại số có nghĩa gần nhất (số 1), và là vị trí có giá trị = E4.

Nói thêm để bổ sung bài trên là:

Nếu lookup tìm thấy số đầu tiên > số đang tìm, nó sẽ lui lại lấy giá trị có nghĩa đầu tiên bên trên (bỏ qua ô lỗi)

Nếu lookup không tìm thấy, kể cả tìm không thấy giá trị nào lớn hơn giá trị cần tìm, nó sẽ lấy giá trị cuối cùng. Nếu giá trị cuối cùng là giá trị lỗi, nó lấy kết quả có nghĩa bên trên gần nhất.
 
lookup có thể làm thay Vookup trong bài toán sau không?

Em biết Lookup khi tìm dưới dạng điều kiện nó sẽ lấy giá trị dòng cuối cùng trong trường hợp tìm thấy nhiều giá trị giống nhau, nhưng em muốn nó lấy dòng trên cùng (tức dòng bôi đỏ) thì hàm này có dạng cú pháp nào để làm được không ah?
Lookup.jpg


------
(không dùng hàm Index + Match, vì em đang cần tìm hiểu các dạng viết của Lookup).
 

File đính kèm

  • Lookup.xls
    13.5 KB · Đọc: 34
Lần chỉnh sửa cuối:
Em biết Lookup khi tìm dưới dạng điều kiện nó sẽ lấy giá trị dòng cuối cùng trong trường hợp tìm thấy nhiều giá trị giống nhau, nhưng em muốn nó lấy dòng trên cùng (tức dòng bôi đỏ) thì hàm này có dạng cú pháp nào để làm được không ah?


------
(không dùng hàm Index + Match, vì em đang cần tìm hiểu các dạng viết của Lookup).

Nhưng với dữ liệu của bạn như thế + điều kiện tìm như thế thì LOOKUP chỉ có thể lấy giá trị cuối cùng mà nó tìm thấy (kết quả =8)
Muốn kết quả = 5 thì phải MATCH + INDEX thôi
 
Như vậy, em hiểu, nếu dữ liệu dò tìm từ trái sang phải thì trong trường hợp này, Lookup không thay được Vlookup.

---------------
Nhưng hình như em cảm giác Lookup dò theo kiểu điều kiện sẽ lâu hơn Vlookup bởi nó phải tính thêm phép tính

PHP:
1/(A2:A9=C1)
 

File đính kèm

  • Untitled-1.jpg
    Untitled-1.jpg
    42.4 KB · Đọc: 224
Lần chỉnh sửa cuối:
Như vậy, em hiểu, nếu dữ liệu dò tìm từ trái sang phải thì trong trường hợp này, Lookup không thay được Vlookup.

Bạn hiểu như vậy là không chính xác. Nếu tìm với điều kiện như Vlookup thì bạn chỉ cần công thức

Nếu bạn dùng
Thì bản chất hoàn toàn khác
Khi dùng hàm này trước tiên nó sẽ tạo 1 mảng giá trị tại A2:A9 = c1, kết quả đúng cho true(=1), kết quả sai la false. mảng đó sẽ là :{False;False;False;False;True;False;False;True} tương đương {0;0;0;0;1;0;0;1}
Khi dò tìm 2 trong mảng đó sẽ không có kết quả chính xác là 2 do đó Lookup sẽ cho kết quả nhỏ nhất so với 2, ở đây có 2 kết quả True(=1) song nó sẽ lấy kết quả cuối cùng nó tìm được và đối chiếu sang mảng B2:B9
 
Bạn hiểu như vậy là không chính xác. Nếu tìm với điều kiện như Vlookup thì bạn chỉ cần công thức
PHP:
=lookup(c1,a2:a9,b2:b9)

Sorry bác, em nhầm. Trong ví dụ đính kèm em so sánh cách cách dùng, em thắc mắc tại dòng công thức số 3, em dùng Lookup nó vẫn ra là 5 nhỉ

Lookup2.jpg
 

File đính kèm

  • Lookup.xls
    14 KB · Đọc: 14
Lần chỉnh sửa cuối:
Sorry bác, em nhầm. Trong ví dụ đính kèm em so sánh cách cách dùng, em thắc mắc tại dòng công thức số 3, em dùng Lookup nó vẫn ra là 5 nhỉ

Bạn không chịu đọc kỹ những gì người ta viết gì cả
Cách thứ 3 (LOOKUP(C1, A2:A9, B2:B9)...) chỉ có thể áp dụng khi bảng dò đã sort trước
Bạn nhìn đi, cột A dữ liệu có sort tăng dần đâu mà dùng cách đó ---> Nó cho kết quả trật lất là phải rồi
 
Bạn không chịu đọc kỹ những gì người ta viết gì cả
Cách thứ 3 (LOOKUP(C1, A2:A9, B2:B9)...) chỉ có thể áp dụng khi bảng dò đã sort trước
Bạn nhìn đi, cột A dữ liệu có sort tăng dần đâu mà dùng cách đó ---> Nó cho kết quả trật lất là phải rồi

Bổ sung:
Qua khỏi 220 thứ nhì, nó đã thấy 600 (là số đầu tiên > 220), nó cho rằng theo quy luật tăng dần thì hết rồi, nên nó quay lại.

TB:
Hôm nay thấy ndu cũng bắt đầu mắng kìa!
 
Bổ sung:
Qua khỏi 220 thứ nhì, nó đã thấy 600 (là số đầu tiên > 220), nó cho rằng theo quy luật tăng dần thì hết rồi, nên nó quay lại.

TB:
Hôm nay thấy ndu cũng bắt đầu mắng kìa!

Xin lỗi các thày, lần sau em sẽ nghiên cứu kỹ hơn, lỗi do em nghĩ mãi khi đến 220 đầu tiên sao nó không chiu dừng mà lại đi tiếp.
 
Xin lỗi các thày, lần sau em sẽ nghiên cứu kỹ hơn, lỗi do em nghĩ mãi khi đến 220 đầu tiên sao nó không chiu dừng mà lại đi tiếp.

Tôi có cách này khiến bạn nhớ lâu nè...
Chắc bạn thừa biết rằng VLOOKUP(trị dò, bảng dò, cột dò, kiểu dò) ---> Với kiểu dò = 0 là dò chính xác, và = 1 là dò không chính xác, đúng không? Đương nhiên với kiều dò =1, bắt buộc dữ liệu phải được sort trước
Vậy thì:
LOOKUP(trị dò, bảng dò, bảng kết quả) sẽ tương đương với VLOOKUP mà kiểu dò =1 ---> như vậy cũng như VLOOKUP, bắt buộc dữ liệu phải sort trước
LOOKUP(2, 1/(....), ) sẽ tương đương với VLOOKUP mà kiểu dò =0 ---> Cũng như VLOOKUP, dữ liệu không cần sort
Vậy thôi
 
Tôi có cách này khiến bạn nhớ lâu nè...
Chắc bạn thừa biết rằng VLOOKUP(trị dò, bảng dò, cột dò, kiểu dò) ---> Với kiểu dò = 0 là dò chính xác, và = 1 là dò không chính xác, đúng không? Đương nhiên với kiều dò =1, bắt buộc dữ liệu phải được sort trước
Vậy thì:
LOOKUP(trị dò, bảng dò, bảng kết quả) sẽ tương đương với VLOOKUP mà kiểu dò =1 ---> như vậy cũng như VLOOKUP, bắt buộc dữ liệu phải sort trước
LOOKUP(2, 1/(....), ) sẽ tương đương với VLOOKUP mà kiểu dò =0 ---> Cũng như VLOOKUP, dữ liệu không cần sort
Vậy thôi
Bạn quên mấy bài đầu topic này rồi. Lookup dò tìm thông thường đòi hỏi dữ liệu cột dò tìm phải được sort ascending. Sau khi sort ascending, nó sẽ cho số đúng nếu tìm thấy hoặc số gần đúng nếu không tìm thấy.

Công thức của bạn tìm 360 trong 1 cột bắt đầu là 200, kế là 300, kế là 20, kế là 432. Nó dò từ trên xuống thấy số đầu tiên lớn hơn 360 là 432, nó sẽ lùi lại lấy số bên trên 432 là 20. Chiếu sang cột A là 10.

Bạn test bằng cách thay số 20 thành 370, số đầu tiên >360 là 370, lui lại sẽ lấy số trên nó là 300, chiếu sang cột A, kết quả là 2.
Bổ sung:
Qua khỏi 220 thứ nhì, nó đã thấy 600 (là số đầu tiên > 220), nó cho rằng theo quy luật tăng dần thì hết rồi, nên nó quay lại.


Em xin chân thành cảm ơn 2 thày rất nhiều, quả thật nếu không được các thày chỉ cho chắc em chưa thể vỡ ra được vấn đề về Lookup mà trước kia em đọc mãi mà vẫn thấy lơ mơ. Qua đây em hiểu được ý nghĩa khi dò tìm không chính xác thì dữ liệu phải Sort.
 
Xin giúp em hiểu hơn về Lookup

Hôm nọ, em có đọc Topic này về sử dụng Lookup, tuy nhiên em thử cho 2 ví dụ theo hình đính kèm, em vẫn thắc mắc kết quả của ví dụ 2 (xin được các thày mắng để lần sau em khỏi băn khoăn về nó nữa)
 

File đính kèm

  • Lookup.JPG
    Lookup.JPG
    38 KB · Đọc: 191
Hôm nọ, em có đọc Topic này về sử dụng Lookup, tuy nhiên em thử cho 2 ví dụ theo hình đính kèm, em vẫn thắc mắc kết quả của ví dụ 2 (xin được các thày mắng để lần sau em khỏi băn khoăn về nó nữa)
Vậy thì xem lại bài 33
Vậy thì:
LOOKUP(trị dò, bảng dò, bảng kết quả) sẽ tương đương với VLOOKUP mà kiểu dò =1 ---> như vậy cũng như VLOOKUP, bắt buộc dữ liệu phải sort trước
LOOKUP(2, 1/(....), ) sẽ tương đương với VLOOKUP mà kiểu dò =0 ---> Cũng như VLOOKUP, dữ liệu không cần sort
Vậy thôi
 
Bổ sung:
Qua khỏi 220 thứ nhì, nó đã thấy 600 (là số đầu tiên > 220), nó cho rằng theo quy luật tăng dần thì hết rồi, nên nó quay lại.

Hôm nay em cứ bị sao ấy thày ah, em lấy 2 ví dụ tương đương nhau về mặt bản chất nhưng kết quả ra lại không như nhau (em vẫn biết là phải Sort trước, nhưng giả sử nếu không sort trước thì tại sao KQ chẳng theo quy luật gì cả như giải thích của sư phụ Ptm0412)

Lookup_Re_zps925fe7b0.jpg
 

File đính kèm

  • Lookup.xls
    25.5 KB · Đọc: 28
Lần chỉnh sửa cuối:
lookup.jpg
Bạn xem ảnh thì thấy đó, khi không sort thì kết quả ra mỗi lúc một kiểu -> Với dữ liệu không được sort trước thì theo tôi nghĩ chỉ nên dùng trong trường hợp tìm vị trí (hoặc giá trị) tương ứng với số cuối cùng của Lookup_vector với Lookup_value luôn lớn hơn các giá trị của Lookup_vector.
 

File đính kèm

  • Lookup.zip
    5.2 KB · Đọc: 21
Mình cũng đang tìm hiểu về LOOKUP để sử dụng cho linh hoạt, bình thường mình thường xuyên dùng những hàm đơn giản như VLOOKUP, SUMIF muốn tìm hiểu sâu hơn phải học các cao thủ như này nhưng khó quá. "Học, học nữa, học mãi" hô to nhưng "óc bằng quả nho" biết làm sao. Hu...u...hu
 
Hay quá, hiểu thêm một chút về lookup
 
Web KT
Back
Top Bottom