Hàm VLookup

Trạng thái
Không mở trả lời sau này.

tuhocvba

Administrator
Thành viên BQT
Chà, hôm vừa rồi @songcham có một bài viết hỏi về Vlookup. Nếu như lúc đó mình hiểu logic của hàm này thì sẽ code được. Vì không sẵn thời gian nên mình cũng không tìm hiểu. Vậy, hôm nay rảnh rỗi, tìm hiểu về Vlookup. Đây là hàm quen thuộc với những người quen sử dụng các hàm có sẵn của Excel. Vì vậy, việc tìm kiếm trên google cũng không khó khăn gì. Các bài viết cũng rất dễ hiểu.
Bạn cần đăng nhập để thấy đính kèm


Cú pháp của Vlookup:
Vlookup(giá_trị_cần_tìm_kiếm,
vùng_cần_tìm_kiếm,Vị_trí_cột_lấy_giá_trị_trả_về,kiểu_tìm_kiếm)
Ở ví dụ trên:
Giá trị cần tìm kiếm là [G3] = 10.
Vùng cần tìm kiếm: [B3 : D18]
Như vậy kết quả tìm kiếm sẽ ra được dòng 12 là dòng có giá trị = 10. Tuy nhiên, bây giờ kết quả trả về là lấy Tên hay lấy Tỉnh?
Thông số tiếp theo, trong công thức trên đã dùng là 3, tức là lấy vị trí cột thứ 3 trong vùng tìm kiếm [B3 : D18], có nghĩa là chúng ta sẽ lấy Tỉnh.
Tiếp theo là kiểu tìm kiếm: TRUE là chúng ta tìm kiếm gần đúng. FALSE là tìm chính xác.
Bạn cần đăng nhập để thấy đính kèm

Ở ví dụ trên, nó ra kết quả thể hiện ở [H3] là Sóc Trăng (dòng 15), mình cứ tưởng nó phải ra Nam Định (dòng 4). Như vậy là nó đã tìm gần đúng, dù không có ai tên là Thanh thì nó vẫn trả về kết quả.
Nhưng thực tế mọi người hay dùng False. Tức là tìm chính xác. Nếu không tìm ra, nó sẽ trả kết quả là lỗi.
Bạn cần đăng nhập để thấy đính kèm


Không thấy ai nói gì, nhưng mình thấy, mặc định giá trị cần tìm kiếm sẽ được tìm kiếm ở cột đầu tiên trong vùng tìm kiếm.
Bạn cần đăng nhập để thấy đính kèm


Ta thử đổi vị trí cột đi, xem nó còn tìm thấy tên nữa không nhé:
Bạn cần đăng nhập để thấy đính kèm

Khi tôi di chuyển cột tên sang cột thứ hai của vùng tìm kiếm. Kết quả của Vlookup đã ra lỗi, không tìm kiếm thấy.

Bây giờ chúng ta không muốn hiển thị lỗi #N/A như trên nữa, vậy chúng ta sẽ sử dụng hàm IFERROR.
IFERROR(hàm,giá_trị_trong_trường_hợp_lỗi)
Bây giờ ta thử lại kết quả trên nhé:
Bạn cần đăng nhập để thấy đính kèm


Thay vì hiển thị lỗi #N/A, bây giờ nó đã hiển thị nội dung như trên. Tức là nếu có lỗi xảy ra do không tìm kiếm thấy, thì nó sẽ trả về kết quả mà ta fix ở trong công thức như trên.
Trước hết, diễn đàn trình bày về Vlookup trong excel, nếu bài viết trên có sai sót gì, các bạn phản hồi nhé.
Trong bài viết sau, mình sẽ trình bày về Vlookup với VBA.
Video thuyết minh:
Bạn cần đăng nhập để thấy đa phương tiện
 

dohuuduy

Thành viên mới
Dùng IFERROR, cũng là con dao 2 lưỡi. Ngoài cách IFERROR thì chúng ta cũng có thể dùng ISNA.
 

Euler

Mod
Thành viên BQT
@dohuuduy : Chào mừng bạn đã tham gia diễn đàn. Dưới đây là nội dung mà tôi muốn nếu có thể bạn có thể nói rõ hơn được không ạ?
1. IFERROR là con dao hai lưỡi được thể hiện ở đâu, bạn có thể đưa ra ví dụ hay không?
Trong trường hợp đó, cách khắc phục là gì?
2. ISNA cách sử dụng như thế nào? Nó có ưu điểm gì?
Nó khác gì với IFERROR.

Đây là cách chúng ta sẽ thảo luận, mong nhận được sự hợp tác của bạn trên tinh thần học thuật.
Những đòi hỏi trên đây có thể là vô lý, bất cứ khi nào có thời gian bạn trả lời cũng được. Mong muốn nhận được trả lời trong vòng 7 ngày. Sau 7 ngày nếu không có trả lời, cho phép tôi coi đây là nhận xét vô căn cứ hoặc là bài spam, và sẽ xóa.
Chân thành cảm ơn bạn đã tham gia diễn đàn.
 
T

thanhphuongvip

Guest
Theo kiến thức ít ỏi của mình thì hàm ISNA chỉ bẫy lỗi NA, còn IFERROR sẽ bẫy tất cả các lỗi.
Nếu chỉ đơn giản là Nếu ko tìm thấy kết quả thì trả về giá trị XYZ nào đó thì nên dùng hàm ISNA. Giả sử dùng hàm IFERROR ở đây thì mọi lỗi sẽ đc trả về kq như đã đặt, ví dụ như lỗi REFF (Vùng dữ liệu ko tồn tại), Lỗi NAME khi đánh sai công thức...
Điều đó không tốt cho những người ko làm chủ đc hàm Excel đặt biệt là những người mới học. Vì khi nó trả về kết quả đã đặt như trong hàm IFERROR thì người ta cứ nghĩa là ko tìm thấy kết quả, chứ ko ngờ là nó có thể dính lỗi khác.

Nhưng với mình rành Excel rồi thì mình hay sài hàm IFERROR hơn, vì đơn giản là nó gọn :D

Có phải vậy ko bạn @dohuuduy ?
 

phamthach

Thành viên
Đúng như bác @thanhphuongvip nói. Nếu chưa làm chủ dc hàm trong excel thì không lên dùng các hàm như IFERROR,ISNA,ISNUMBER .... (các hàm bắt đầu bằng "IS").
Theo mình, đối với các bảng biểu tính toán của cá nhân thì k lên dùng các hàm này để phát hiện ra lỗi khi có phát sính.
Còn đối với các báo cáo, báo cày thì mới dùng để đạt các thể thức về báo cáo
 

tuhocvba

Administrator
Thành viên BQT
Tôi muốn các bạn trình bày như sau:
1. Làm thế nào để làm chủ? Cụ thể?
2. Nếu không quan tâm tới cái gì thì lỗi gì sẽ xảy ra.
Trình bày như thanhphuongvip là tạm ổn.

Các cách thảo luận như trên tôi coi là spam.
 

tuhocvba

Administrator
Thành viên BQT
Anh @tuhocvba oi, Hàm Vlookup trong excel có những nhược điểm như sau:
1- Không tìm được dữ liệu có từ 2 đáp án trở lên.
2- Chỉ tìm được từ trái sang phải (Không tìm từ cột phải sang trái được).
Vậy anh viết để cho hàm xử lý được 2 vấn đề nêu trên
Cảm ơn anh!
1. Đây là box hàm Excel. Không phải box lập trình.
2. Muốn nhờ BQT gúp đỡ hãy quay về Box Hỏi-Đáp-Trợ giúp
Nêu rõ nội dung: input, output muốn thể hiện như thế nào, data demo.

Cái mà bạn muốn nhờ, nó ở trình độ sơ cấp, sử dụng array, dictionary, split là được. Nên cho vào Box Thành Viên Tự Giúp Nhau chắc họ cũng hỗ trợ được. Diễn đàn có phải thiếu nhân tài đâu.
 
T

thanhphuongvip

Guest
@Hồng Phương : đã là tham chiếu giá trị thì ko thể nào một từ khoá ra 2 kết quả đc đâu bạn. Yêu cầu này thuộc một phạm vi khác rồi.

Còn việc tra từ phải sang trái ko sài hàm vlookup đc thì ta thay thế bằng hàm Index kết hợp hàm match. Bạn tìm hiểu 2 hàm này nhé!
 
T

thanhphuongvip

Guest
Ai bảo anh @thanhphuongvip là bắt buộc từ trái sang phải?
Hàm Lookup vẫn làm từ phải sang trái được đấy thôi.
Bạn này kỳ ghê, ở trên bạn nói nhược điêm của hàm VLookup là không do đc từ phải sang trái, nên mình chỉ cho bạn giải pháp, bạn lại quật ngược lại mình. Chịu rồi, mình sẽ ko bao giờ comment bài của bạn thêm một lần nào nữa! Vậy nhé!
 

giaiphapvba

Administrator
Thành viên BQT
Bạn này kỳ ghê, ở trên bạn nói nhược điêm của hàm VLookup là không do đc từ phải sang trái, nên mình chỉ cho bạn giải pháp, bạn lại quật ngược lại mình. Chịu rồi, mình sẽ ko bao giờ comment bài của bạn thêm một lần nào nữa! Vậy nhé!
Các bài của Hồng Phương trong topic này sẽ được xóa.
Hồng Phương bị treo nick 1 tuần kể từ ngày hôm nay.
Lý do: Thái độ thảo luận học thuật thiếu nghiêm túc, không có dẫn chứng.

Phiền anh @thanhphuongvip cho ví dụ Match và Index để làm rõ nội dung bài viết trên của anh có được không ạ.
Diễn đàn muốn có ảnh minh họa cho điều anh nói.
 
T

thanhphuongvip

Guest
Phiền anh @thanhphuongvip cho ví dụ Match và Index để làm rõ nội dung bài viết trên của anh có được không ạ.
Diễn đàn muốn có ảnh minh họa cho điều anh nói.
mình tưởng ở đây chỉ đc thảo luận hàm Vlookup, chứ minh họa thì dễ.
Công thức tại ô F3:
Mã:
=OFFSET($A$1,MATCH(E3,$B$2:$B$6,0),0)
Bạn cần đăng nhập để thấy hình ảnh


Bạn cần đăng nhập để thấy hình ảnh


Để rõ hơn hàm Index và Match mời bạn xem video sau:
Bạn cần đăng nhập để thấy đa phương tiện
Cuối video có hướng dẫn chi tiết về cách tra ngược từ phải sang trái.
 
Sửa lần cuối bởi điều hành viên:
Trạng thái
Không mở trả lời sau này.
Top