Kiến Thức Excel Hướng dẫn cách dùng hàm VLOOKUP giữa 2 Sheet trong Excel

Hướng dẫn cách dùng hàm VLOOKUP giữa 2 Sheet trong Excel

Khi muốn lấy dữ liệu từ sheet khác trong excel bằng hàm VLOOKUP ví dụ như lấy tên sản phẩm, giá bán, hoặc thông tin nhân viên từ bảng tổng hợp thì thực hiện như thế nào?

Cách dùng hàm VLOOKUP giữa 2 sheet thực chất không khác gì so với việc dùng trên 1 sheet. Điểm khác biệt duy nhất là ở phần chọn tham số table_array (vùng dữ liệu). Sau đây mình sẽ hướng dẫn bạn cách sử dụng hàm VLOOKUP giữa 2 sheet cực kỳ đơn giản và dễ hiểu:

1. Cú pháp hàm VLOOKUP dùng giữa 2 sheet

Công thức hàm VLOOKUP chung như sau:

=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

Trong đó:

Tham số Ý nghĩa
lookup_value Giá trị bạn muốn tìm kiếm
table_array Bảng dữ liệu chứa giá trị tìm kiếm (ở sheet khác)
col_index_num Số thứ tự cột chứa kết quả muốn trả về (tính từ cột đầu tiên trong vùng dữ liệu)
[range_lookup] Tùy chọn tìm chính xác hoặc gần đúng: FALSE = chính xác, TRUE = gần đúng

Để sử dụng hàm VLOOKUP giữa 2 sheet, ta sẽ điều chỉnh tham số table_array như sau:

=VLOOKUP(giá_trị_cần_tìm, tên_sheet!vùng_tra_cứu, số_thứ_tự_cột, [kiểu_tìm_kiếm])

Trong đó:

  • giá_trị_cần_tìm (lookup_value): là giá trị cần tìm.
  • tên_sheet!vùng_tra_cứu (table_array): Là vùng dữ liệu được tham chiếu trên sheet khác. Ví dụ như: Sheet2!$A$2:$C$10 tức là tham chiếu đến vùng A2:C10 của Sheet2
  • số_thứ_tự_cột (col_index_num): Là số thứ tự của cột chứa thông tin trong vùng tra cứu cần lấy về.
  • kiểu_tìm_kiếm ([range_lookup]): Sử dụng FALSE (hoặc 0) để tìm kiếm chính xác.

2. Cách sử dụng hàm VLOOKUP giữa 2 sheet

Giả sử ta có 2 sheet:

    • Sheet1: Danh sách bán hàng, chỉ có mã sản phẩm và số lượng.
    • Sheet2: Bảng danh mục sản phẩm, gồm Mã SP, Tên SP, Giá bán.

=> Bài toán: Giờ ta muốn lấy tên sản phẩm và giá bán từ Sheet2 sang Sheet1 dựa trên mã sản phẩm.

Bước 1: Xác định vùng dữ liệu nguồn:

Dữ liệu ở Sheet2 nằm trong vùng A2:C100, trong đó:

  • Cột A: Mã SP
  • Cột B: Tên SP
  • Cột C: Giá bán

dữ liệu mẫu để dùng hàm VLOOKUP giữa 2 sheet

Bước 2: Nhập công thức hàm VLOOKUP giữa 2 sheet:

Tại ô C2 trong Sheet1 cần hiển thị tên sản phẩm, nhập công thức:

=VLOOKUP(A2, Sheet2!A2:C100, 2, FALSE)

Trong đó:

 

  • A2: là mã sản phẩm trong Sheet1.
  • Sheet2!A2:C100: là vùng dữ liệu chứa thông tin sản phẩm.
  • 2: là cột thứ 2 trong vùng (cột “Tên SP”).
  • FALSE: tìm kiếm chính xác mã sản phẩm.

Kéo công thức xuống các dòng khác để tự động lấy dữ liệu tương ứng.

công thức hàm vlookup giữa 2 sheet

Tại ô D2 trong Sheet 1 cần hiển thị giá bán ta nhập công thức sau:

=VLOOKUP(A2, Sheet2!A2:C100, 3, FALSE)

Sau đó cũng kéo công thức xuống các dòng để tự động lấy dữ liệu:

Ví dụ công thức hàm VLOOKUP giữa 2 sheet

>>> Xem thêm: Cách sử dụng hàm VLOOKUP trong cùng Sheet, khác Sheet và khác file

3. Lưu ý khi sử dụng hàm VLOOKUP giữa 2 sheet

Khi sử dụng hàm VLOOKUP giữa 2 sheet, ta cần chú ý 1 số vấn đề quan trọng sau:

Lưu ý 1: Luôn cố vùng tra cứu dữ liệu để kéo công thức không bị sai lệch

Ở trong ví dụ ở mục 2, ta sử dụng vùng tra cứu dữ liệu là Sheet2!A2:C100 khiến cho khi ta kéo công thức xuống các dòng khác thì vùng tra cứu này sẽ tự động nhảy theo khiến kết quả bị sai lệch. Ví dụ quan sát hình ảnh dưới đây:

minh họa việc không cố định vùng tra cứu dữ liệu khi sử dụng vlookup
Ta quan sát thấy rằng khi kéo công thức từ D2 xuống D6 thì vùng tra cứu dữ liệu bị nhảy theo

Do đó, khi sử dụng hàm VLOOKUP giữa 2 sheet và kéo công thức để áp dụng nhiều dòng, ta sẽ cố định vùng tra cứu dữ liệu:

  • Cách 1 – sử dụng dấu $ bằng cách ấn phím F4: Sheet2!$A$2:$C$100
  • Cách 2 – biến vùng dữ liệu thành dạng bảng (Table) rồi dùng tên để tham chiếu (bằng cách bôi đen vùng dữ liệu => Insert => Table). Ví dụ biến vùng A2:C100 thành “Dulieu” thì sẽ thành Dulieu để thay thế cho Sheet2!A2:C100

Do đó công thức chuẩn hàm VLOOKUP dùng cho 2 sheet để kéo công thức là:

  • Sử dụng dấu $: =VLOOKUP(A2, Sheet2!$A$2:$C$100, 3, FALSE)
  • Sử dụng table: =VLOOKUP(A2, Dulieu, 3, FALSE)

Lưu ý 2: Xử lý lỗi #N/A khi sử dụng hàm VLOOKUP

Khi sử dụng hàm VLOOKUP mà không tìm thấy giá trị, nó sẽ trả về lỗi #N/A. Ta có thể sử dụng hàm IFERROR để thay thế lỗi bằng một giá trị khác:

=IFERROR(VLOOKUP(A2, Sheet2_SanPham!$A$2:$C$6, 2, FALSE), "Không tìm thấy")

Trong đó:

  • Cú pháp hàm: IFERROR(giá_trị_cần_kiểm_tra, giá_trị_khi_lỗi)
  • Ta có thể đổi thông điệp, ví dụ: “Chưa có mã“, “” (để trống), hoặc một giá trị khác.

Một số lưu ý khác

Ngoài ra, khi sử dụng hàm VLOOKUP giữa 2 sheet nói riêng, và khi sử dụng hàm VLOOKUP nói chung thì ta cần lưu ý các yếu tố sau:

  • Chọn FALSE cho tham số cuối để tìm chính xác. TRUE chỉ dùng tra cứu gần đúng khi cột tra cứu đã sắp tăng dần.
  • Cột tra cứu luôn phải đứng đầu trong table_array. Nếu không sắp xếp lại được, cân nhắc XLOOKUP hoặc INDEX+MATCH.
  • Khóa cột chỉ số (col_index_num) đúng vị trí mong muốn. Nếu bạn chèn/xóa cột trong vùng, chỉ số có thể lệch → Ưu tiên XLOOKUP/INDEX+MATCH (không phụ thuộc số thứ tự cột).
  • Đồng nhất kiểu dữ liệu (Mã SP đều là Text hoặc đều là Number). Trộn lẫn sẽ gây #N/A.

Trên đây là hướng dẫn chi tiết về cách sử dụng hàm VLOOKUP giữa 2 trang tính trong Excel. Chúc các bạn áp dụng thành công!