Hướng dẫn

Cách Dùng VLOOKUP Giữa Các Sheet Khác Nhau Trong Google Sheets [2026]

Tuân HoangTuân Hoang
8 tháng 8, 2026
Cập nhật: 21 tháng 8, 2026
7 phút đọc
Ảnh minh họa bài viết: Cách Dùng VLOOKUP Giữa Các Sheet Khác Nhau Trong Google Sheets [2026]

VLOOKUP giữa 2 sheet khác nhau: cú pháp và cách hoạt động

Khi dữ liệu tra cứu nằm ở một sheet khác (ví dụ sheet "Đơn hàng" cần lấy giá từ sheet "Bảng giá"), VLOOKUP vẫn hoạt động bình thường — chỉ khác ở cách bạn viết tham chiếu vùng dữ liệu (range) trong tham số thứ 2. Cú pháp đầy đủ:

=VLOOKUP(giá_trị_cần_tìm, 'Tên_Sheet'!vùng_dữ_liệu, số_cột_trả_về, FALSE)

Ví dụ thực tế: sheet "Đơn hàng" có cột mã sản phẩm ở A2, và sheet "Bảng giá" có mã sản phẩm ở cột A, giá ở cột C (cột thứ 3 tính từ A). Công thức đặt tại sheet "Đơn hàng" sẽ là:

=VLOOKUP(A2, 'Bảng giá'!A:C, 3, FALSE)

Đây chính là cách dùng hàm VLOOKUP giữa 2 sheet trong Google Sheets: chỉ cần thêm tên sheet nguồn (đặt trong dấu nháy đơn) ngay trước vùng dữ liệu, phần còn lại của công thức VLOOKUP giữ nguyên như khi tra cứu trong cùng một sheet.

Lưu ý dấu nháy đơn quanh tên sheet — bắt buộc nếu tên sheet có khoảng trắng (như "Bảng giá"), số, hoặc ký tự đặc biệt. Nếu tên sheet chỉ có chữ cái liền không dấu cách (ví dụ BangGia), bạn có thể bỏ dấu nháy, nhưng Google Sheets vẫn tự thêm vào khi bạn chọn vùng bằng chuột nên cứ để mặc định cho an toàn.

3 cách để lấy tham chiếu sheet khác chính xác

  • Gõ tay: nhanh nếu đã thuộc tên sheet và vùng dữ liệu, nhưng dễ gõ sai tên sheet (đặc biệt khi tên có dấu tiếng Việt).
  • Click chọn bằng chuột:=VLOOKUP(A2, rồi click sang tab sheet khác, bôi đen vùng dữ liệu — Sheets tự động điền đúng cú pháp 'Tên Sheet'!A:C. Đây là cách an toàn nhất cho người mới.
  • Dùng Named Range: đặt tên cho vùng dữ liệu (Data → Named ranges) rồi gọi thẳng tên đó trong công thức, ví dụ =VLOOKUP(A2, BangGia, 3, FALSE) — không cần quan tâm tên sheet nữa, hữu ích khi vùng dữ liệu được tham chiếu ở nhiều nơi.

Lỗi thường gặp khi VLOOKUP xuyên sheet và cách sửa

So với VLOOKUP trong cùng 1 sheet, tra cứu xuyên sheet phát sinh thêm vài lỗi đặc thù:

LỗiNguyên nhân phổ biếnCách sửa
#REF!Tên sheet bị đổi hoặc sheet bị xóa sau khi viết công thứcKiểm tra lại tên sheet trong công thức có khớp với tab hiện tại không
#N/AGiá trị tìm kiếm có khoảng trắng thừa, hoặc định dạng số/text lệch nhau giữa 2 sheetDùng TRIM() bọc giá trị tìm kiếm, kiểm tra định dạng cột bằng ISTEXT/ISNUMBER
Trả về sai giá trịCột đầu tiên trong vùng tham chiếu không phải cột chứa giá trị cần tìmVLOOKUP luôn tìm ở cột đầu tiên của vùng — sắp lại vùng hoặc đổi sang INDEX/MATCH
Công thức chạy chậm khi file lớnTham chiếu cả cột (A:C) trên sheet có hàng chục nghìn dòngGiới hạn vùng cụ thể, ví dụ A2:C5000 thay vì A:C

Nếu bạn gặp lỗi phức tạp hơn hoặc muốn hiểu sâu từng mã lỗi, tham khảo bài Lỗi VLOOKUP & INDEX-MATCH Trong Google Sheets: Nguyên Nhân & Cách Xử Lý Dứt Điểm — liệt kê gần như đầy đủ các trường hợp lỗi và cách xử lý dứt điểm.

Tra cứu qua nhiều sheet cùng lúc (multi-sheet lookup)

Trường hợp thực tế hay gặp: dữ liệu bán hàng được lưu theo tháng, mỗi tháng 1 sheet (Tháng 1, Tháng 2, Tháng 3...), và bạn cần tra cứu doanh số một mã sản phẩm mà không biết nó nằm ở sheet nào. VLOOKUP thường không xử lý được việc "tìm qua nhiều sheet" trực tiếp, nhưng có 2 cách workaround phổ biến:

Cách 1: Lồng IFERROR để thử lần lượt từng sheet

=IFERROR(VLOOKUP(A2,'Tháng 1'!A:B,2,FALSE),
  IFERROR(VLOOKUP(A2,'Tháng 2'!A:B,2,FALSE),
    VLOOKUP(A2,'Tháng 3'!A:B,2,FALSE)))

Công thức thử ở "Tháng 1" trước, không thấy thì rớt xuống "Tháng 2", tiếp tục cho tới khi tìm được. Cách này dễ hiểu nhưng cồng kềnh nếu có trên 4-5 sheet.

Cách 2: Gộp dữ liệu về 1 sheet tổng bằng QUERY hoặc IMPORTRANGE

Thực dụng hơn: dùng hàm QUERY kết hợp {ARRAY} để gộp toàn bộ dữ liệu các sheet tháng vào 1 sheet "Tổng hợp", sau đó VLOOKUP chỉ cần trỏ vào sheet tổng này. Cách này giúp công thức gọn, dễ bảo trì, và mở rộng thêm sheet mới chỉ cần thêm vào vùng {ARRAY} một lần.

Trong các mẫu quản lý bán hàng, kho, công nợ trên SheetStore, phần lớn dashboard đều dùng chiến lược "sheet tổng hợp" này thay vì tra cứu trực tiếp qua nhiều sheet rời rạc — vừa nhanh hơn, vừa tránh lỗi khi thêm sheet mới.

VLOOKUP xuyên file (khác Google Sheets file) bằng IMPORTRANGE

Nếu dữ liệu cần tra cứu nằm ở một file Google Sheets hoàn toàn khác (khác URL), VLOOKUP thuần không đọc được — bạn cần kết hợp với IMPORTRANGE:

=VLOOKUP(A2, IMPORTRANGE("URL_file_nguồn", "Bảng giá!A:C"), 3, FALSE)

Vài điểm cần lưu ý khi dùng cách này:

  • Lần đầu chạy, Sheets sẽ hiện thông báo yêu cầu Allow access — phải bấm cho phép thì công thức mới trả kết quả, thay vì báo lỗi #REF!.
  • IMPORTRANGE tải toàn bộ vùng dữ liệu về nên khá nặng nếu vùng lớn; nên giới hạn vùng cụ thể thay vì cả cột.
  • Tốc độ cập nhật chậm hơn tham chiếu nội bộ vài giây, không phù hợp cho dashboard cần realtime cao.
  • Nếu file nguồn bị xóa quyền chia sẻ, công thức sẽ lỗi ngay lập tức — nên cân nhắc dùng file trong cùng 1 Google Drive tổ chức để kiểm soát quyền dễ hơn.

Khi nào nên đổi từ VLOOKUP sang INDEX/MATCH hoặc XLOOKUP

Tra cứu xuyên sheet là lúc nhược điểm của VLOOKUP lộ rõ nhất: nó chỉ tìm được ở cột bên trái so với cột trả về, và bạn phải đếm số cột thủ công — dễ sai khi sheet nguồn có cấu trúc thay đổi. Hai trường hợp nên cân nhắc đổi hàm:

  • Cột cần lấy nằm bên trái cột tra cứu: VLOOKUP không làm được, phải dùng INDEX/MATCH.
  • Sheet nguồn hay chèn thêm/xóa cột: VLOOKUP dùng số thứ tự cột (3, 4, 5...) nên khi cấu trúc đổi, công thức trả sai dữ liệu mà không báo lỗi — rất nguy hiểm. INDEX/MATCH hoặc XLOOKUP tham chiếu theo tên cột nên ổn định hơn nhiều.

Ví dụ INDEX/MATCH tương đương với công thức VLOOKUP ở phần đầu bài:

=INDEX('Bảng giá'!C:C, MATCH(A2, 'Bảng giá'!A:A, 0))

Nếu tài khoản Google Workspace của bạn đã có XLOOKUP, cú pháp còn gọn hơn và mặc định tìm chính xác (không cần thêm FALSE):

=XLOOKUP(A2, 'Bảng giá'!A:A, 'Bảng giá'!C:C)

Bài VLOOKUP vs INDEX/MATCH vs XLOOKUP: Chọn Hàm Nào Trong Google Sheets? so sánh chi tiết hiệu năng và trường hợp dùng của 3 hàm này nếu bạn cần quyết định dứt khoát nên học/dùng hàm nào cho công việc lâu dài.

Mẹo giữ công thức VLOOKUP xuyên sheet ổn định lâu dài

Vài thói quen giúp tránh phải sửa lại hàng loạt công thức khi file phát triển lớn hơn:

  • Khóa vùng tham chiếu bằng $: viết 'Bảng giá'!$A$2:$C$1000 thay vì A:C khi copy công thức xuống nhiều dòng, tránh vùng bị dịch chuyển sai.
  • Không đổi tên sheet tùy tiện: đổi tên sheet sẽ tự động cập nhật trong công thức đã có, nhưng nếu bạn xóa sheet rồi tạo sheet mới cùng tên, công thức cũ vẫn báo #REF! vì Sheets coi đó là 2 đối tượng khác nhau.
  • Dùng Named Range cho các vùng tra cứu dùng lại nhiều lần: giúp công thức ngắn gọn, dễ đọc, và chỉ cần sửa 1 chỗ khi vùng dữ liệu thay đổi.
  • Kiểm tra định dạng dữ liệu trước khi nối 2 sheet: mã sản phẩm ở sheet A là text, sheet B lại là number, VLOOKUP sẽ không khớp dù nhìn giống hệt nhau — bọc thêm hàm TEXT() hoặc VALUE() để đồng bộ định dạng.

Nếu bạn mới bắt đầu với VLOOKUP và muốn ôn lại nền tảng trước khi áp dụng cho tra cứu xuyên sheet, có thể xem qua Google Sheets Cơ Bản Bài 4: VLOOKUP, HLOOKUP Và INDEX-MATCH, còn nếu đã nắm vững và cần các kỹ thuật nâng cao hơn (tra cứu nhiều điều kiện, wildcard, mảng), tham khảo VLOOKUP, INDEX-MATCH Nâng Cao Trong Google Sheets.

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

Làm sao để VLOOKUP dữ liệu từ một sheet (tab) khác trong cùng file Google Sheets?

Chỉ cần thêm tên sheet trước vùng dữ liệu, ngăn cách bằng dấu chấm than, ví dụ =VLOOKUP(A2,'Sheet2'!A:C,2,FALSE). Nếu tên sheet có khoảng trắng, phải đặt trong dấu nháy đơn.

VLOOKUP có lấy được dữ liệu từ một file Google Sheets khác không?

Không trực tiếp. Bạn cần dùng hàm IMPORRANGE để kéo dữ liệu từ file khác về trước, cấp quyền truy cập khi được yêu cầu, sau đó mới VLOOKUP trên vùng dữ liệu đã import.

Tại sao VLOOKUP từ sheet khác báo lỗi #REF! hoặc #N/A?

Thường do sai tên sheet, thiếu dấu nháy đơn khi tên sheet có khoảng trắng, hoặc vùng dữ liệu tham chiếu chưa được cấp quyền (với IMPORRANGE). Kiểm tra lại tên tab và quyền chia sẻ file nguồn.

Có thể VLOOKUP dữ liệu từ nhiều sheet cùng lúc không?

VLOOKUP chỉ tra trên một vùng dữ liệu mỗi lần, nhưng bạn có thể lồng nhiều hàm VLOOKUP với IFERROR để lần lượt tìm qua nhiều sheet cho đến khi ra kết quả.

Bạn muốn áp dụng ngay mà không phải tự xây từ đầu?

Khám phá các mẫu Google Sheets và phần mềm quản lý dựng sẵn cho doanh nghiệp Việt tại SheetStore Marketplace.

Chia sẻ bài viết:

Tuân Hoang

Tuân Hoang

Đội ngũ SheetStore

Google SheetsGoogle Apps ScriptCRMAutomationPhần mềm quản lý doanh nghiệp

Google Workspace Certified, 5+ years experience

Bạn thấy bài viết hữu ích?

Đăng ký nhận thông báo khi có bài viết mới.

Nhận thông báo khi có bài viết mới. Không spam, hứa luôn! 😊

Bình luận (0)

Vui lòng đăng nhập để tham gia thảo luận