VLOOKUP là hàm tra cứu dọc, tìm giá trị ở cột đầu của vùng dữ liệu và trả về giá trị cùng hàng ở cột chỉ định. Cú pháp: =VLOOKUP(search_key, range, index, [is_sorted]).

Hàm VLOOKUP Google Sheets: Cách Dùng & Ví Dụ Chi Tiết

Hướng dẫn toàn diện hàm VLOOKUP: cú pháp, ví dụ tra giá sản phẩm, sửa lỗi #N/A, VLOOKUP nhiều điều kiện và liên sheet — kèm so sánh với INDEX MATCH.

Tại sao nên học hàm VLOOKUP?

Tra cứu nhanh

Tìm giá trị trong hàng nghìn dòng dữ liệu chỉ trong tích tắc — không cần tìm thủ công

Tự động điền dữ liệu

Nhập mã sản phẩm hoặc mã nhân viên, VLOOKUP tự kéo tên, giá, thông tin tương ứng

Kết hợp nhiều sheet

Tra cứu dữ liệu từ sheet khác hoặc file khác qua IMPORTRANGE mà không cần copy thủ công

Nền tảng tự động hóa

VLOOKUP là bước đệm để xây bảng lương, báo cáo, invoice tự động trên Google Sheets

Hướng dẫn từng bước

  1. 1

    Hiểu cú pháp hàm VLOOKUP

    Cú pháp đầy đủ: =VLOOKUP(search_key, range, index, [is_sorted]). Trong đó: search_key là giá trị cần tìm; range là vùng dữ liệu (cột đầu tiên phải chứa search_key); index là số thứ tự cột cần trả về (đếm từ 1); is_sorted là FALSE (0) để khớp chính xác hoặc TRUE (1) để tra gần đúng.

    Mẹo: Luôn dùng FALSE (hoặc 0) cho is_sorted khi tra mã, tên — chỉ dùng TRUE khi dữ liệu đã sắp xếp tăng dần và cần tra gần đúng như bảng lương thưởng

  2. 2

    Ví dụ thực tế: tra giá sản phẩm theo mã

    Sheet "SanPham" có cột A = Mã SP, cột B = Tên, cột C = Giá. Tại ô D2 của sheet đơn hàng, nhập mã SP vào A2 rồi dùng =VLOOKUP(A2, SanPham!A:C, 3, FALSE) để lấy giá tương ứng. VLOOKUP tìm A2 trong cột A của SanPham, trả về giá trị cột 3 (Giá).

    Mẹo: Khóa vùng dữ liệu bằng $ để copy công thức xuống: =VLOOKUP(A2, SanPham!$A:$C, 3, FALSE)

  3. 3

    Dùng FALSE/0 để tra khớp chính xác

    Tham số is_sorted=FALSE bắt buộc VLOOKUP tìm đúng giá trị, không chấp nhận gần đúng. Đây là lựa chọn đúng với 99% trường hợp tra mã hàng, mã nhân viên, tên khách hàng. Nếu bỏ trống tham số này, VLOOKUP mặc định TRUE và có thể trả kết quả sai khi dữ liệu chưa sắp xếp.

    Mẹo: Ghi rõ FALSE hoặc 0 để code dễ đọc; tránh bỏ trống tham số cuối vì dễ gây bug khó phát hiện

  4. 4

    Sửa lỗi #N/A — nguyên nhân và cách xử lý

    #N/A xuất hiện khi VLOOKUP không tìm thấy search_key. Nguyên nhân thường gặp: (1) Có khoảng trắng thừa — dùng TRIM(); (2) Kiểu dữ liệu khác nhau (text vs number) — dùng TEXT() hoặc VALUE(); (3) Giá trị thực sự không tồn tại trong vùng dữ liệu. Bọc IFERROR để xử lý: =IFERROR(VLOOKUP(...), "Không tìm thấy").

    Mẹo: Dùng =TRIM(A2) trước khi VLOOKUP nếu dữ liệu nhập tay — khoảng trắng thừa là nguyên nhân #N/A phổ biến nhất

  5. 5

    VLOOKUP nhiều điều kiện và liên sheet

    VLOOKUP chỉ tra theo 1 cột — để tra nhiều điều kiện, tạo cột phụ nối khóa: =A2&"-"&B2 rồi VLOOKUP theo cột phụ đó. Để tra dữ liệu từ file khác, kết hợp IMPORTRANGE: =VLOOKUP(A2, IMPORTRANGE("url_file","Sheet1!A:D"), 3, FALSE). Với nhu cầu phức tạp hơn, INDEX MATCH linh hoạt hơn VLOOKUP.

    Mẹo: IMPORTRANGE cần cấp quyền truy cập lần đầu; sau đó hoạt động tự động và cập nhật theo thời gian thực

Các công thức VLOOKUP thực tế

Công thứcMô tả
=VLOOKUP(A2, SanPham!A:C, 3, FALSE)Tra giá sản phẩm theo mã — khớp chính xác
=IFERROR(VLOOKUP(A2, DanhMuc!A:D, 2, FALSE), "Không tìm thấy")Bọc IFERROR để xử lý lỗi #N/A thân thiện
=VLOOKUP(A2, IMPORTRANGE("url","Sheet1!A:E"), 4, FALSE)Tra dữ liệu từ file Google Sheets khác
=VLOOKUP(A2&"-"&B2, CotPhu!A:D, 3, FALSE)VLOOKUP nhiều điều kiện qua cột phụ nối khóa
=VLOOKUP(A2, BangLuong!A:C, 3, TRUE)Tra gần đúng (is_sorted=TRUE) — dùng cho bảng lũy tiến đã sắp xếp
=ARRAYFORMULA(IFERROR(VLOOKUP(A2:A100, SanPham!A:C, 3, FALSE), ""))Áp dụng VLOOKUP cho toàn dải ô cùng lúc

Câu hỏi thường gặp

VLOOKUP khác INDEX MATCH như thế nào?

VLOOKUP chỉ tra từ trái sang phải và phụ thuộc vị trí cột (số thứ tự cố định). INDEX MATCH linh hoạt hơn: tra cứu theo cả hai chiều, không bị lệch khi thêm/xóa cột, và thường nhanh hơn với dữ liệu lớn. Với người mới bắt đầu, VLOOKUP dễ học hơn; khi thành thạo nên chuyển sang INDEX MATCH.

Tại sao VLOOKUP báo lỗi #N/A dù giá trị có trong bảng?

Nguyên nhân phổ biến nhất là khoảng trắng thừa (dùng TRIM() để loại bỏ), kiểu dữ liệu không khớp giữa khóa tìm và cột đầu bảng (text vs number), hoặc is_sorted để TRUE trong khi dữ liệu chưa sắp xếp. Bọc IFERROR(VLOOKUP(...), "") để ẩn lỗi tạm thời trong khi điều tra nguyên nhân.

VLOOKUP có thể tra và trả về nhiều cột cùng lúc không?

Mỗi hàm VLOOKUP chỉ trả về một cột. Để lấy nhiều cột, viết nhiều VLOOKUP song song với index khác nhau, hoặc dùng ARRAYFORMULA kết hợp VLOOKUP. Cách hiệu quả hơn là dùng hàm FILTER hoặc XLOOKUP (nếu có) để trả về nhiều cột trong một công thức.

VLOOKUP có phân biệt chữ hoa và chữ thường không?

Không, VLOOKUP không phân biệt hoa thường — "SP001" và "sp001" được coi là giống nhau. Nếu cần tra cứu phân biệt hoa thường, dùng công thức mảng kết hợp EXACT: =INDEX(range, MATCH(TRUE, EXACT(A2, cot_tim), 0)).

SheetStore có template dùng VLOOKUP sẵn không?

Có, các template tại SheetStore như bảng lương, quản lý kho, báo cáo doanh thu đều tích hợp sẵn VLOOKUP để tự động tra cứu dữ liệu giữa các sheet. Chỉ cần nhập dữ liệu nguồn, công thức tự kéo thông tin — không cần tự viết hàm.

Tiết kiệm thời gian với SheetStore

Template Google Sheets tích hợp sẵn VLOOKUP — tra cứu tự động, không cần tự viết công thức. Mua một lần, dùng mãi mãi với gói 699K trọn đời.

Xem template tại SheetStore

Hoặc xem thêm hướng dẫn khác · Từ điển Google Sheets

Xem thêm: INDEX MATCH · Pivot Table Google Sheets