HÀM VLOOKUP

VLOOKUP

Hàm VLOOKUP sẽ dò tìm một hàng (Row) chứa giá trị mà bạn cần tìm ở cột đầu tiên (bên trái) của một bảng dữ liệu (chữ V trong VLOOKUP có nghĩa là Vertical), nếu tìm thấy, nó sẽ tìm tiếp trong hàng này, và sẽ lấy giá trị ở cột mà bạn đã chỉ định trước.

Cú pháp: =VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

lookup_value
: Giá trị dùng để tìm kiếm trong cột đầu tiên của table_array, giá trị này có thể là một số, một chuỗi, hoặc là một tham chiếu

table_array: Bảng dùng để dò tìm, có thể là một vùng tham chiếu hoặc là tên (Name) của một vùng đã được đặt tên

col_index_num: Số thứ tự của các cột trong table_array, chứa kết quả mà bạn muốn tìm kiếm. col_index_num: Số thứ tự này được tính từ trái sang phải (cột chứa lookup_value là cột thứ nhất)

range_lookup: Là một giá trị kiểu Boolean, để chỉ kiểu tìm kiếm: chính xác hay tương đối.
• TRUE (hoặc 1 là mặc định): Là kiểu dò tìm tương đối VLOOKUP sẽ tìm giá trị lookup_value đầu tiên mà nó tìm được trong cột đầu tiên của table_array. Trong trường hợp không tìm ra, nó sẽ trả về giá trị lớn nhất mà nhỏ hơn lookup_value
• FALSE (hoặc 0): Là kiểu dò tìm chính xác VLOOKUP sẽ tìm chính xác giá trị lookup_value trong cột đầu tiên của table_array. Trong trường hợp không có, hoặc lookup_value nhỏ hơn giá trị nhỏ nhất trong cột đầu tiên của table_array, nó sẽ báo lỗi #N/A!

Lưu ý:
• Để có kết quả chính xác khi range_lookup = TRUE, bạn phải sắp xếp các giá trị các giá trị trong cột đầu tiên của table_array từ nhỏ đến lớn.
• Nếu cột đầu tiên của table_array chứa các giá trị kiểu Text, bạn có thể dùng các ký tự đại diện cho lookup_value (dấu * đại diện cho nhiều ký tự / hoặc dấu ? đại diện cho một ký tự)
• Nếu lookup_value nhỏ hơn giá trị nhỏ nhất trong cột đầu tiên của table_array, hàm sẽ báo lỗi #N/A!
• Lỗi này thường gặp khi bạn gõ dư một khoảng trắng ở cuối lookup_value
• Nếu không tìm thấy lookup_value khi range_lookup = FALSE, hàm sẽ báo lỗi #N/A!
• Nếu col_index_num nhỏ hơn 1, hàm sẽ báo lỗi #VALUE!, còn nếu col_index_num lớn hơn số cột trong table_array, hàm sẽ báo lỗi #REF!

Ví dụ:
1574388625420.png
 

File đính kèm

Bình luận

Theo ý kiến của cá nhân tôi, nếu được bạn có thể thêm 1 vài ví dụ cho:
1. Sửa lỗi đối với hàm Vlookup
2. Hàm Vlookup kết hợp với 1 số hàm khác.
Xin cảm ơn.
Chỉ cần thêm phần chỉ dẫn kết hợp với Match hoặc HLookup trong tham số thứ 3 (col_index_num) thôi.
Những kết hợp khác (như Choose) thuộc về phần nâng cao.

@thớt:
Cần nhấn mạnh ở điểm TRUE trong tham số thứ tư (range_lookup).
Nếu dãy dò tìm không được sắp xếp theo thứ tự từ nhỏ đến lớn thì kết quả có thể sẽ được trả về không đúng.
Nếu bạn muốn thì có thể bàn thêm về kiến thức nâng cao:
Khi tham số thứ tư là TRUE thì VLOOKUP sẽ dò theo phương pháp nhị phân. Phương pháp này rất nhanh nhưng chỉ áp dụng cho sê ri tăng/giảm dần. Vì vậy, nếu sê ri không theo thứ tự thì kết quả sẽ sai.
 
Ở phần tham số range lookup = false nếu lookup value < giá trị nhỏ nhất của cột đầu tiên thì đương nhiên không thể dò tìm đúng được. Vì thế "nếu lookup_value < giá trị nhỏ nhất..." là lưu ý khi range_lookup=true.
 
Ở phần tham số range lookup = false nếu lookup value < giá trị nhỏ nhất của cột đầu tiên thì đương nhiên không thể dò tìm đúng được. Vì thế "nếu lookup_value < giá trị nhỏ nhất..." là lưu ý khi range_lookup=true.
VLOOKUP là hàm căn bản của Excel.
Hầu như tất cả những người chuyên sử dụng bảng tính đều hiểu rằng hàm này ngầm chứa một sự quan hệ giữa trị cần dò tìm và bảng dò. Và trên cơ sở làm việc, mọi người cần hiểu rằng hàm này dựa trên bảng dò chuẩn. Vì vậy, nếu dùng range lookup mà trả về #N/A thì là chuyện hiển nhiên để người dùng hiểu rằng trị cần tìm nằm ngoài cái range của bảng dò.

Chú: vì các bạn quen dùng bảng tính để làm báo cáo cuối cùng cho nên quen bẫy lỗi. Đối với người sử dụng bảng tính thông thường, ba cái lỗi là cơ hội để họ nhận định những dạng "không chuẩn/ngoại lệ" (exception/outlier) của bảng dữ liệu.
 
Sử dụng vlookup(choose()))).
Lookup. Offset(match())).
Sai vì giá trị dò. Dò không tìm thấy nó báo lỗi #NA.
Hàm Lookup đòi hỏi bảng dò phải được sắp xếp. Chỉ tương đương VLookup với tham số cuối là 1 (True)
Hàm Offset là hàm động (volatile). Mỗi lần bảng tính thay đổi, bất cứ chỗ nào nó cũng tính lại. Khác với hàm thường, chỉ tính lại khi có thay đổi trong dữ liệu tham chiếu.
 
Các bác cho em hỏi sao em tìm kiếm ngày tháng bị lỗi như vậy? Tks tất cả mọi người
Lưu ý:
1. Trong công thức bạn phải cố định ít nhất là dòng của vùng dò và kết quả. Hiện thời bạn không cố định nên khi copy công thức H3 xuống dưới thì vùng dò thay đổi.

2. Nếu tôi hiểu được dụng ý thì cột dò phải là cột C. Tức không phải B3: D6 mà là C3: D6

3. Giá trị trả về là cột nào? Nếu là cột D thì phải là 2. Tức công thức cho H3
Mã:
=VLOOKUP(G3,C$3:D$6,2)
4. Nếu cột dò là C mà cột kết quả là B thì lại phải xoay xở
Công thức cho H3
Mã:
=VLOOKUP(G3,CHOOSE({1;2},C$3:C$6,B$3:B$6),2)
Nếu thấy lỗi thì thử đổi thành {1,2}. Tôi dùng Excel phiên bản Ba Lan nên nó hơi khác ({1\2})

Nếu tôi hiểu đúng thì bạn có trường hợp này.

5. Hiện thời B3 và B4 không là ngày tháng. Chúng chỉ là text giả bộ ngày tháng. Nếu trong tương lai chúng dùng để tính toán thì sẽ sai.
 
Lần chỉnh sửa cuối:
mọi người ơi giúp em trường hợp này với. em muốn trừ tồn cho cho cột ITEM (dữ liệu cần trừ là bảng bên cạnh) nhưng đồng thời trừ phải tương ứng với cột SEAL. minh dùng hàm vlookup kết hợp choose đúng không ạ?
Capture.JPG
 

File đính kèm

Mọi người chỉ em khách khắc phục lỗi #N/A trong Vlookup với,
Khi em copy và dán tên ( hàng hóa) vào cột E, thì Cột D không tự dò mà tương ứng, mà em phải chọn lại, mới ra mã,
xem hình giúp em nhé,
 

File đính kèm

Bạn ơi cho mình hỏi, mình dùng hàm vlookup để dò giá trị tương ứng trong sheet1 Cột A với Sheet 2 cột B nhưng bị lỗi phải nhấp đúp vô giá trị trong sheet1 cột A thì nó mới dò ra.

Các bạn xem giúp có cách nào khắc phục không ạ.

Mình gửi kèm file
 

File đính kèm

Mọi người chỉ em khách khắc phục lỗi #N/A trong Vlookup với,
Khi em copy và dán tên ( hàng hóa) vào cột E, thì Cột D không tự dò mà tương ứng, mà em phải chọn lại, mới ra mã,
xem hình giúp em nhé,
Bạn bẫy lỗi bằng cách lồng công thức vào trong hàm IFERROR, ví dụ =IFERROR(Vlookup( ... ),"Không tìm thấy")
Bài đã được tự động gộp:

Bạn ơi cho mình hỏi, mình dùng hàm vlookup để dò giá trị tương ứng trong sheet1 Cột A với Sheet 2 cột B nhưng bị lỗi phải nhấp đúp vô giá trị trong sheet1 cột A thì nó mới dò ra.

Các bạn xem giúp có cách nào khắc phục không ạ.

Mình gửi kèm file
Để bẫy lỗi #N/A thì bạn xem bài ở trên (sử dụng IFERROR bẫy lỗi).
Trường hợp không phải lỗi mà phải nhấp đúp vô giá trị trong sheet1 cột A thì nó mới dò ra thì có thể là do bạn để chế độ Excel tính toán thủ công, chuyển nó sang tự động: tab Formulas > Calculation Options > chọn Automatic.
 
Lần chỉnh sửa cuối:
Công ty mình có một số mã hàng đặt lại gần giống nhau như file đính kèm dưới đây. Khi mình đặt hàm vlookup để đối chiếu giữa các sheet thì hàm vlookup tìm ra nhầm kết quả. Những mã này mình không thay đổi được vì toàn công ty đều dùng mã này rồi. Vậy có giải pháp này cho trường hợp này không ạ. Có thể dùng hàm khác cũng được ạ.
(Kết quá của hàm vlookup ở ô D5 là sai đó ạ). Mình xin cám ơn ạ.
 

File đính kèm

Công ty mình có một số mã hàng đặt lại gần giống nhau như file đính kèm dưới đây. Khi mình đặt hàm vlookup để đối chiếu giữa các sheet thì hàm vlookup tìm ra nhầm kết quả. Những mã này mình không thay đổi được vì toàn công ty đều dùng mã này rồi. Vậy có giải pháp này cho trường hợp này không ạ. Có thể dùng hàm khác cũng được ạ.
(Kết quá của hàm vlookup ở ô D5 là sai đó ạ). Mình xin cám ơn ạ.
Mã:
D2=IF(RIGHT(B2,1)="*",SUMPRODUCT((LEFT($B$30:$B$48,LEN($B$30:$B$48)-1)=LEFT(B2,LEN(B2)-1))*(RIGHT($B$30:$B$48,1)="*")*$D$30:$D$48),VLOOKUP($B2,$B$30:$D$48,3,0))
 
XIN HỎI
table array có thể là hai mảng được không ạ. dúng hàm gì để ghép hai mảng với nhau?
VD
=VLOOKUP(G3,and('sheet 1'C$3:D$6,'sheet 2'C$3:D$6),2,1)
 
Chào các anh chị giúp đỡ em làm sao để đổi các giá trị ở ô B10:E11 từ số sang màu với ạ. Vì màu nó đổi theo ngày. Mà quy ước màu theo giá trị ở Hàng 1. Công thức ở B15:E16 sẽ là như thế nào ạ? Em cảm ơn!
Bài đã được tự động gộp:

Chào các anh chị giúp đỡ em làm sao để đổi các giá trị ở ô B10:E11 từ số sang màu với ạ. Vì màu nó đổi theo ngày. Mà quy ước màu theo giá trị ở Hàng 1. Công thức ở B15:E16 sẽ là như thế nào ạ? Em cảm ơn!
 

File đính kèm

Xin chào Anh/Chị/Em ạ

Em đang cần lấy cột tiền phụ cấp từ sheet phụ cấp sang bảng lương mà mày mò hoài không được ạ, Anh/Chị/Em hỗ trợ em với ạ, em có

- 1 cột phụ cấp (Bus và Phí visa) trong sheet lương
- 1 Cột là tăng ca trong sheet lương luôn ạ
- 1 Bảng phụ cấp bao gồm tất cả các loại phụ cấp, tăng ca

Giờ làm sao e làm công thức để lấy số tiền từ sheet phụ cấp sang 2 cột sheet lương ạ tương ứng ạ

Em có sử dụng hàm: IFERROR(VLOOKUP(cột mã nhân viên,bảng phụ cấp,lấy cột tiền,0),0) => kết quả 2 cột phụ cấp và tăng ca giống y chang nhau làm sao để e chèn điều kiện nếu cùng mã nhân viên mà ký hiệu phụ cấp là TC thì lấy tiền qua cột tăng ca ở bảng lương, còn nếu ký hiệu là BUS, VISA... thì lấy ở cột phụ cấp ạ

Em cảm ơn
 
Xin chào Anh/Chị/Em ạ
Em đang cần lấy cột tiền phụ cấp từ sheet phụ cấp sang bảng lương mà mày mò hoài không được ạ, Anh/Chị/Em hỗ trợ em với ạ, em có
- 1 cột phụ cấp (Bus và Phí visa) trong sheet lương
- 1 Cột là tăng ca trong sheet lương luôn ạ
- 1 Bảng phụ cấp bao gồm tất cả các loại phụ cấp, tăng ca
Giờ làm sao e làm công thức để lấy số tiền từ sheet phụ cấp sang 2 cột sheet lương ạ tương ứng ạ
Em có sử dụng hàm: IFERROR(VLOOKUP(cột mã nhân viên,bảng phụ cấp,lấy cột tiền,0),0) => kết quả 2 cột phụ cấp và tăng ca giống y chang nhau làm sao để e chèn điều kiện nếu cùng mã nhân viên mà ký hiệu phụ cấp là TC thì lấy tiền qua cột tăng ca ở bảng lương, còn nếu ký hiệu là BUS, VISA... thì lấy ở cột phụ cấp ạ
Em cảm ơn
Bạn gửi file lên xem sao, biết đâu có thành viên giúp được bạn.
 
Top Bottom