Chuyển đến nội dung chính

VLOOKUP() trong Google Sheets: Cách sử dụng + Ví dụ

Học cách dùng VLOOKUP() trong Google Sheets để tìm, đối sánh và lấy dữ liệu từ các tập dữ liệu lớn trong vài giây.
Đã cập nhật 4 thg 5, 2026  · 10 phút đọc

VLOOKUP() là một hàm trong Google Sheets dùng để tìm một giá trị trong một cột và trả về giá trị tương ứng từ cột khác trên cùng một hàng. Bạn đưa cho nó thứ cần tìm, chỉ cho nó nơi tìm, và nó trả về dữ liệu bạn cần.

Hàm này hữu ích nhất khi bạn làm việc với các tập dữ liệu lớn, nơi việc tìm kiếm và đối sánh thủ công sẽ mất quá nhiều thời gian. Nhưng bất cứ khi nào bạn cần kết nối hai bảng dữ liệu bằng một giá trị chung, VLOOKUP() là hàm nên dùng.

Trong hướng dẫn này, bạn sẽ học cú pháp, cách dùng từng bước, nguyên nhân dẫn đến kết quả sai và khi nào nên chọn các hàm thay thế như INDEX MATCH() hoặc XLOOKUP().

Cú pháp của VLOOKUP() trong Google Sheets là gì?

Cú pháp của VLOOKUP() là:

=VLOOKUP(search_key, range, index, [is_sorted])

Trong đó: 

  • search_key là giá trị bạn muốn tìm

  • range là bảng nơi thực hiện tìm kiếm

  • index là số thứ tự cột để trả về kết quả

  • [is_sorted] xác định bạn có muốn đối sánh chính xác hay không

Cách thực hiện VLOOKUP() trong Google Sheets?

Để thực hiện VLOOKUP() trong Google Sheets:

  1. Xác định giá trị bạn muốn tra cứu: Có thể là ID, tên hoặc bất kỳ giá trị duy nhất nào.

  2. Xác định phạm vi bảng: Đảm bảo cột chứa giá trị tra cứu của bạn là cột đầu tiên trong phạm vi đó.

  3. Chọn dữ liệu bạn muốn trả về: Đây là cột chứa kết quả (ví dụ: tên, giá, trạng thái).

  4. Nhập công thức VLOOKUP() vào một ô mới: Tham chiếu đến giá trị tra cứu, phạm vi bảng và cột bạn muốn trả về.

  5. Dùng đối sánh chính xác hoặc xấp xỉ (FALSE hoặc TRUE): Phần lớn trường hợp, bạn nên dùng đối sánh chính xác để tránh kết quả sai (sẽ nói thêm ở phần sau).

Nếu bạn có bảng sau:

A (ID)

B (Tên)

101

George

102

Sarah

103

Lily

Và bạn muốn tìm tên cho ID 102, hãy dùng:

=VLOOKUP(102, A2:B4, 2, FALSE)

Công thức này yêu cầu Google Sheets:

  • Tìm 102 trong cột A
  • Trả về giá trị từ cột B
  • Cho đối sánh chính xác

Kết quả bạn sẽ nhận được là Sarah.

Ví dụ VLOOKUP trên Google Sheets.

Ví dụ VLOOKUP(). Hình: Tác giả.

Cách VLOOKUP() hoạt động (logic từng bước)

VLOOKUP() tuân theo quy trình tìm kiếm dọc đơn giản. Nó luôn bắt đầu ở cột đầu tiên của phạm vi bạn chọn, sau đó quét xuống từng hàng cho đến khi tìm thấy kết quả khớp đầu tiên.

Khi đã tìm thấy kết quả khớp đó, nó vẫn ở cùng hàng. Sau đó di chuyển ngang sang cột bạn chỉ định và trả về giá trị.

Cách hoạt động từng bước:

  • Bắt đầu ở cột đầu tiên của phạm vi
  • Tìm kiếm xuống theo cột
  • Tìm giá trị khớp đầu tiên
  • Di chuyển ngang trên cùng hàng
  • Trả về dữ liệu từ cột đã chỉ định

Giả sử bạn muốn tìm chức danh công việc cho Mã nhân viên E1007. Hãy dùng công thức sau:

=VLOOKUP("E1007", A:G, 5, FALSE)

VLOOKUP trong Google Sheets

VLOOKUP() trong Google Sheets. Hình: Tác giả.

Công thức này:

  • Tìm E1007 ở cột A

  • Di chuyển ngang trên cùng hàng đó

  • Trả về cột 5 (Chức danh công việc) 

  • Cho kết quả Software Engineer.

Lưu ý: VLOOKUP() chỉ có thể tìm kiếm từ trái sang phải. Nếu cột tra cứu của bạn không phải là cột đầu tiên trong phạm vi, hàm sẽ không hoạt động. Khi đó, bạn phải sắp xếp lại dữ liệu hoặc dùng hàm khác. Ta sẽ nói đến sau.

Đối sánh chính xác vs đối sánh xấp xỉ trong VLOOKUP()

Đối sánh chính xác chỉ trả về kết quả khi giá trị giống hệt. Đối sánh xấp xỉ trả về giá trị gần nhất khi không tìm thấy kết quả chính xác, thường dựa trên dữ liệu đã được sắp xếp.

Trong VLOOKUP(), điều này được điều khiển bởi tham số cuối cùng. Tham số cuối cùng, FALSE hoặc TRUE, là chỗ nhiều người nhầm vì TRUE trông vô hại nhưng thực ra không phải.

  • FALSE nghĩa là chỉ đối sánh chính xác. Nếu không có giá trị, bạn nhận #N/A, điều này thực ra hữu ích. 
  • TRUE trả về giá trị nhỏ hơn gần nhất khi không có đối sánh chính xác, nghe như dự phòng nhưng chính xác hơn là một câu trả lời sai một cách lặng lẽ. Nó cũng giả định dữ liệu của bạn đã sắp xếp. Nếu không, kết quả là không xác định. 

Tôi khuyên chỉ dùng TRUE cho các tra cứu theo bậc, như khung thuế hoặc thang điểm, nơi hành vi xấp xỉ là đúng theo thiết kế. Còn lại, hãy dùng FALSE.

Đối sánh chính xác (FALSE)

Điều này bảo VLOOKUP() “Chỉ trả về kết quả nếu tìm thấy đúng giá trị này.” Ví dụ, công thức =VLOOKUP("E1005", A:G, 7, FALSE) tìm E1005, trả về lương từ cột 7 và cho kết quả 90000.

Nếu giá trị không tồn tại, bạn sẽ nhận lỗi #N/A

Đối sánh chính xác gây lỗi trong VLOOKUP trên Google Sheets

Đối sánh chính xác trong VLOOKUP(). Hình: Tác giả.

Đối sánh xấp xỉ (TRUE)

Điều này bảo VLOOKUP(): “Nếu không tìm thấy đối sánh chính xác, hãy trả về giá trị gần nhất nhỏ hơn.” Nghe có vẻ hữu ích — đôi khi đúng, nhưng đôi khi nó âm thầm cho bạn câu trả lời sai.

Ví dụ, E1011 không tồn tại trong tập dữ liệu. Mã nhân viên cuối cùng là E1010. Vậy nếu bạn dùng công thức =VLOOKUP("E1011", A:G, 7, TRUE), VLOOKUP() sẽ không trả về lỗi. Thay vào đó, nó trả về giá trị cho kết quả nhỏ hơn gần nhất, tức E1010. Ô sẽ hiển thị 88000.

Vì vậy dù E1011 bị thiếu, VLOOKUP() vẫn cho kết quả vì TRUE cho phép đối sánh xấp xỉ.

Đối sánh xấp xỉ trong VLOOKUP Google Sheets.

Đối sánh xấp xỉ trong VLOOKUP(). Hình: Tác giả.

Giờ hãy tưởng tượng cùng dữ liệu đó bị xáo trật tự, và tôi nhập mã nhân viên hiện có vào công thức như sau: =VLOOKUP("E1011", A:G, 7, TRUE).

Lần này, công thức trả về mức lương không đúng vì cột tra cứu không được sắp xếp, trong khi đối sánh xấp xỉ phụ thuộc vào dữ liệu đã sắp xếp.

Đối sánh xấp xỉ của VLOOKUP gây lỗi do danh sách chưa sắp xếp trong Google Sheets.

Đối sánh xấp xỉ của VLOOKUP() gây lỗi do danh sách chưa sắp xếp. Hình: Tác giả.

Lỗi thường gặp trong VLOOKUP() và cách khắc phục

Hãy xem một số vấn đề phổ biến bạn có thể gặp với VLOOKUP() và cách giải quyết: 

Lỗi #N/A

Lỗi #N/A nghĩa là VLOOKUP() không tìm thấy giá trị bạn yêu cầu.

Giả sử bạn có công thức: =VLOOKUP("E9999", A:G, 7, FALSE)

 Nếu E9999 không có ở cột đầu tiên của phạm vi, công thức trả về #N/A.

Điều này cũng có thể xảy ra nếu giá trị được nhập khác đi trong trang tính, chẳng hạn có khoảng trắng thừa hoặc vấn đề định dạng văn bản.

Cách khắc phục:

  • Đảm bảo giá trị tồn tại ở cột đầu tiên của phạm vi

  • Dùng tham chiếu ô đúng thay vì gõ tay giá trị khi có thể

  • Thêm dấu ngoặc kép nếu bạn mã hoá cứng một giá trị văn bản

  • Loại bỏ khoảng trắng ở đầu hoặc cuối dữ liệu

  • Chỉ dùng FALSE khi bạn cần đối sánh chính xác 

Sai chỉ số cột

Chỉ số cột cho VLOOKUP() biết cột nào để trả về trong phạm vi đã chọn. Nếu số chỉ mục quá lớn, công thức trả về #REF!.

Công thức =VLOOKUP("E1005", A:G, 8, FALSE) trả về #REF! vì phạm vi A:G chỉ có 7 cột.

Sai chỉ số cột gây lỗi trong VLOOKUP Google Sheets.

Sai chỉ số cột gây lỗi. Hình: Tác giả.

Bạn cũng có thể nhận kết quả sai nếu số cột hợp lệ nhưng trỏ đến cột không đúng.

Ví dụ:

=VLOOKUP("E1005", A:G, 5, FALSE)

Công thức này trả về chức danh công việc, không phải mức lương.

Cách khắc phục:

  • Đếm cột từ cột đầu tiên của phạm vi đã chọn
  • Kiểm tra số cột khớp với giá trị bạn muốn trả về
  • Đảm bảo cột đó tồn tại trong phạm vi

Vấn đề với đối sánh xấp xỉ

Nếu bạn dùng TRUE, VLOOKUP() sẽ tìm kết quả khớp gần nhất nhỏ hơn thay vì yêu cầu khớp chính xác.

Nếu bạn nhập =VLOOKUP("E1011", A:G, 7, TRUE) và không có E1011 trong tập dữ liệu, thay vì trả về lỗi, công thức trả về 88000, thuộc về E1010.

Kết quả đó có thể trông đúng, nhưng không phải đối sánh chính xác.

Cách khắc phục:

  • Dùng FALSE khi bạn cần kết quả chính xác

  • Chỉ dùng TRUE khi dữ liệu đã sắp xếp và chấp nhận kết quả xấp xỉ

Vấn đề về phạm vi

VLOOKUP() cũng có thể ngừng hoạt động khi phạm vi đã chọn không khớp với những gì công thức đang cố làm.

Ví dụ, =VLOOKUP("E1005", A:C, 7, FALSE) trả về #REF! vì phạm vi A:C chỉ có 3 cột, nhưng công thức yêu cầu cột 7.

Một vấn đề thường gặp khác là khi cột tra cứu không phải là cột đầu tiên trong phạm vi.

Xem công thức này:

=VLOOKUP("E1005", B:G, 7, FALSE)

Ở đây, cột đầu tiên trong phạm vi là cột B, không phải cột A. Vì VLOOKUP() chỉ tìm ở cột đầu tiên của phạm vi đã chọn, nó không thể tìm E1005.

Cách khắc phục:

  • Đảm bảo cột tra cứu là cột đầu tiên trong phạm vi
  • Đảm bảo phạm vi bao gồm cột bạn muốn trả về
  • Kiểm tra lại phạm vi đã chọn trước khi hoàn tất công thức

Phạm vi sai gây lỗi trong VLOOKUP Google Sheets

Phạm vi sai gây lỗi. Hình: Tác giả.

VLOOKUP() trên nhiều trang tính trong Google Sheets

Bạn có thể dùng VLOOKUP() để lấy dữ liệu từ một trang tính khác bằng cách thêm tên trang tính trước phạm vi.

Cú pháp như sau:

=VLOOKUP(search_key, SheetName!range, index, FALSE)

Phần SheetName! cho công thức biết cần tìm ở trang nào.

Giả sử dữ liệu của bạn nằm trong trang có tên Employees, và bạn đang làm ở trang khác. Để tìm phòng ban cho mã nhân viên E1005, hãy dùng:

=VLOOKUP("E1005", Employees!A:G, 4, FALSE)

Trong đó:

  • Employees!A:G tìm trong trang Employees

  • 4 trả về cột Department

Công thức trả về phòng ban cho E1005.

Tham chiếu trang tính khác trong VLOOKUP Google Sheets.

Tham chiếu trang tính khác trong VLOOKUP(). Hình: Tác giả.

Khi tên trang có khoảng trắng

Nếu tên trang có khoảng trắng, hãy bao trong dấu nháy đơn như sau: 

=VLOOKUP("E1005", 'Employee Data'!A:G, 7, FALSE)

Không có dấu nháy, công thức sẽ không hoạt động.

VLOOKUP() so với INDEX MATCH trong Google Sheets

VLOOKUP() tìm kiếm trong một cột cố định và trả về dữ liệu dựa trên vị trí, trong khi INDEX MATCH tìm giá trị bằng cách tham chiếu trực tiếp hàng và cột, nên hoạt động ngay cả khi cấu trúc bảng thay đổi.

VLOOKUP: viết nhanh, dễ hỏng

Bạn đã thấy =VLOOKUP("E1005", A:G, 7, FALSE) tìm mức lương cho E1005

Nó hoạt động tốt khi:

  • Cột tra cứu ở bên trái
  • Cấu trúc bảng không thay đổi

Vấn đề bắt đầu khi cấu trúc thay đổi.

Ví dụ:

  • Bạn chèn một cột mới
  • Cột lương dịch từ 7 sang 8
  • Công thức vẫn dùng 7

Giờ nó trả về giá trị sai mà không báo lỗi.

INDEX MATCH: dài hơn nhưng ổn định

Giờ hãy xem cùng tra cứu đó bằng INDEX MATCH:

=INDEX(G:G, MATCH("E1005", A:A, 0))

Trong đó:

  • MATCH() tìm vị trí của E1005 trong cột A

  • INDEX() trả về giá trị từ cột G tại vị trí đó

Cách này không phụ thuộc vào số cột, nên vẫn hoạt động ngay cả khi bảng thay đổi.

INDEX MATCH xử lý dữ liệu tốt hơn VLOOKUP

INDEX MATCH xử lý dữ liệu tốt hơn VLOOKUP(). Hình: Tác giả.

Khi nào thực sự hữu ích

Hãy dùng INDEX MATCH khi dữ liệu của bạn không sắp xếp từ trái sang phải. Giả sử Cột A chứa Mã nhân viên Cột C chứa Họ. Nếu bạn muốn tra theo Họ và trả về Mã nhân viên, đây là tra cứu từ phải sang trái.

VLOOKUP() không làm được điều này nếu không thay đổi bảng, nhưng INDEX MATCH xử lý trực tiếp:

=INDEX(A:A, MATCH("Wilson", C:C, 0))

Không cần sắp xếp lại dữ liệu của bạn.

VLOOKUP() so với XLOOKUP trong Google Sheets

VLOOKUP() tìm trong cấu trúc cố định và có giới hạn, trong khi XLOOKUP() cho phép tra cứu theo bất kỳ hướng nào. Hàm này được thêm vào Google Sheets năm 2022 và hiện là lựa chọn tốt hơn trong nhiều trường hợp.

Giả sử bạn muốn tìm Mã nhân viên dựa trên Họ Wilson. Đây là tra cứu từ phải sang trái. VLOOKUP() không xử lý được nếu không sắp xếp lại bảng, còn XLOOKUP() thì có thể:

=XLOOKUP("Wilson", C:C, A:A)

Công thức này:

  • Tìm Họ (cột C)
  • Trả về Mã nhân viên (cột A)

XLOOKUP trong Google Sheets

XLOOKUP() trong Google Sheets. Hình: Tác giả.

XLOOKUP() tốt hơn vì nó: 

  • Hoạt động theo mọi hướng (trái hoặc phải)
  • Không dùng số cột
  • Mặc định trả về đối sánh chính xác
  • Cho phép tuỳ chỉnh đầu ra khi không tìm thấy kết quả 

Tổng kết 

Nếu chỉ được khuyên một điều: hãy dùng VLOOKUP() trong một bảng tính thật mà bạn thực sự quan tâm thay vì trang luyện tập. Lỗi sẽ “đau” hơn khi dữ liệu quan trọng. Bạn sẽ nhớ vì sao FALSE tồn tại ngay lần đầu TRUE âm thầm cho bạn mức lương sai của ai đó.

Khi đã quen, hãy thử các kiểu đối sánh khác nhau, điều chỉnh phạm vi và để ý khi nào kết quả bắt đầu vô lý. Đó thường là lúc một lựa chọn linh hoạt hơn như INDEX MATCH() hoặc XLOOKUP() hợp lý hơn. 


Laiba Siddiqui's photo
Author
Laiba Siddiqui
LinkedIn
Twitter

Tôi là một chiến lược gia nội dung, yêu thích việc đơn giản hóa các chủ đề phức tạp. Tôi đã giúp các công ty như Splunk, Hackernoon và Tiiny Host tạo nội dung hấp dẫn và giàu thông tin cho khán giả của họ.

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

Tôi có thể dùng `VLOOKUP()` với ký tự đại diện không?

Có. Bạn có thể dùng * (bất kỳ số lượng ký tự) và ? (một ký tự) trong khóa tìm kiếm khi dùng đối sánh chính xác.

Ví dụ, =VLOOKUP("E10*", A:G, 2, FALSE)

`VLOOKUP()` có xử lý tìm kiếm phân biệt hoa thường trong Google Sheets không?

Không. VLOOKUP() không phân biệt chữ hoa thường. Nó coi “apple” và “Apple” là cùng một giá trị. Để tra cứu có phân biệt hoa thường, bạn cần dùng các hàm như FILTER() hoặc EXACT().

Tại sao `VLOOKUP()` đôi khi trả về kết quả trống?

Điều này xảy ra khi ô đối sánh trống vì nó cho thấy công thức hoạt động đúng, nhưng không có dữ liệu để hiển thị.

`VLOOKUP()` có thể tham chiếu phạm vi được đặt tên không?

Có. Thay vì dùng A:G, bạn có thể đặt tên cho phạm vi (ví dụ: EmployeeData) và dùng trong công thức.

Ví dụ cách thực hiện:

=VLOOKUP("E1005", EmployeeData, 7, FALSE)

Chủ đề

Học Google Sheets cùng DataCamp

Courses

Nhập môn Thống kê với Google Sheets

4 giờ
46.7K
Xem chi tiếtRight Arrow
Bắt đầu khóa học
Xem thêmRight Arrow
Có liên quan

blogs

Claude Opus 4.6: Tính năng, điểm chuẩn, các bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu bảng xếp hạng về mã hóa theo hướng tác nhân và suy luận phức tạp. Thêm nữa, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem thêmXem thêm